123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198 |
- #include "dialogroadobject_material.h"
- #include "ui_dialogroadobject_material.h"
- #include <QMessageBox>
- DialogRoadObject_material::DialogRoadObject_material(Object * pObject,QWidget *parent) :
- QDialog(parent),
- ui(new Ui::DialogRoadObject_material)
- {
- ui->setupUi(this);
- mpObject = pObject;
- UpdateList();
- setWindowTitle("Edit Object Material");
- }
- DialogRoadObject_material::~DialogRoadObject_material()
- {
- delete ui;
- }
- void DialogRoadObject_material::UpdateList()
- {
- ui->comboBox_material->clear();
- ui->lineEdit_friction->setText("");
- ui->lineEdit_surface->setText("");
- ui->lineEdit_roughness->setText("");
- if(mpObject == 0)return;
- Object * pObject = mpObject;
- if(pObject->GetObjectmaterialCount() == 0)return;
- unsigned int i;
- for(i=0;i<pObject->GetObjectmaterialCount();i++)
- {
- Object_material * pObject_material = pObject->GetObjectmaterial(i);
- if(pObject_material == 0)return;
- ui->comboBox_material->addItem("material"+QString::number(i));
- }
- }
- void DialogRoadObject_material::on_comboBox_material_currentIndexChanged(int index)
- {
- if(index<0)return;
- if(mpObject == 0)return;
- Object * pObject = mpObject;
- Object_material * pobject_material = pObject->GetObjectmaterial(index);
- string surface;
- double friction,roughness;
- if(pobject_material->Getsurface(surface) == 1)
- {
- ui->lineEdit_surface->setText(surface.data());
- }
- else
- {
- ui->lineEdit_surface->setText("");
- }
- if(pobject_material->Getfriction(friction) == 1)
- {
- ui->lineEdit_friction->setText(QString::number(friction));
- }
- else
- {
- ui->lineEdit_friction->setText("");
- }
- if(pobject_material->Getroughness(roughness) == 1)
- {
- ui->lineEdit_roughness->setText(QString::number(roughness));
- }
- else
- {
- ui->lineEdit_roughness->setText("");
- }
- }
- void DialogRoadObject_material::on_pushButton_Add_clicked()
- {
- if(mpObject == 0)
- {
- QMessageBox::warning(this,"Warning","Object is NULL.",QMessageBox::YesAll);
- return;
- }
- Object * pObject = mpObject;
- pObject->AddObjectmaterial();
- Object_material * pObject_material = pObject->GetLastAddedObjectmaterial();
- if(pObject_material == 0)return;
- if(ui->lineEdit_surface->text() != "")
- {
- string surface = ui->lineEdit_surface->text().toStdString();
- pObject_material->Setsurface(surface);
- }
- if(ui->lineEdit_friction->text() != "")
- {
- pObject_material->Setfriction(ui->lineEdit_friction->text().toDouble());
- }
- if(ui->lineEdit_roughness->text() != "")
- {
- pObject_material->Setroughness(ui->lineEdit_roughness->text().toDouble());
- }
- UpdateList();
- }
- void DialogRoadObject_material::on_pushButton_Delete_clicked()
- {
- if(mpObject == 0)
- {
- QMessageBox::warning(this,"Warning","Object is NULL.",QMessageBox::YesAll);
- return;
- }
- Object * pObject = mpObject;
- if(pObject->GetObjectmaterialCount() == 0)
- {
- QMessageBox::information(this,"Info","No material",QMessageBox::YesAll);
- return;
- }
- int index = ui->comboBox_material->currentIndex();
- pObject->DeleteObjectmaterial(index);
- UpdateList();
- }
- void DialogRoadObject_material::on_pushButton_Change_clicked()
- {
- if(mpObject == 0)
- {
- QMessageBox::warning(this,"Warning","Object is NULL.",QMessageBox::YesAll);
- return;
- }
- Object * pObject = mpObject;
- if(pObject->GetObjectmaterialCount() == 0)
- {
- QMessageBox::warning(this,"Warning","No material",QMessageBox::YesAll);
- return;
- }
- int index = ui->comboBox_material->currentIndex();
- Object_material * pObject_material = pObject->GetObjectmaterial(index);
- if(pObject_material == 0)return;
- if(ui->lineEdit_surface->text() != "")
- {
- string surface = ui->lineEdit_surface->text().toStdString();
- pObject_material->Setsurface(surface);
- }
- else
- {
- pObject_material->Clearsurface();
- }
- if(ui->lineEdit_friction->text() != "")
- {
- pObject_material->Setfriction(ui->lineEdit_friction->text().toDouble());
- }
- else
- {
- pObject_material->Clearfriction();
- }
- if(ui->lineEdit_roughness->text() != "")
- {
- pObject_material->Setroughness(ui->lineEdit_roughness->text().toDouble());
- }
- else
- {
- pObject_material->Clearroughness();
- }
- QMessageBox::information(this,"Info","Change Object Material Successfully.",QMessageBox::YesAll);
- UpdateList();
- ui->comboBox_material->setCurrentIndex(index);
- }
|