00001 #include <qvalidator.h>
00002 #include <qlineedit.h>
00003 #include <qcombobox.h>
00004
00005 #include "SIGEL_MasterGUI/SIG_EnvironmentView.h"
00006
00007 #include "pointvector.h"
00008
00009 namespace SIGEL_MasterGUI
00010 {
00011
00012
00013
00014
00015 SIG_EnvironmentView::SIG_EnvironmentView( QWidget* parent, const char* name, WFlags fl, SIGEL_GP::SIG_GPExperiment &theExperiment )
00016 : SIG_EnvironmentBase( parent, name, fl ), theExperiment( theExperiment )
00017 {
00018
00019 lineeditGravityX->setValidator( new QDoubleValidator( lineeditGravityX , "ValidatorGravityX") );
00020 lineeditGravityY->setValidator( new QDoubleValidator( lineeditGravityY , "ValidatorGravityY") );
00021 lineeditGravityZ->setValidator( new QDoubleValidator( lineeditGravityZ , "ValidatorGravityZ") );
00022
00023
00024 lineeditYPlaneLevel->setValidator( new QDoubleValidator( lineeditYPlaneLevel, "ValidatorYPlaneLevel") );
00025
00026
00027 lineeditStartPositionX->setValidator( new QDoubleValidator( lineeditStartPositionX , "ValidatorStartPositionX") );
00028 lineeditStartPositionY->setValidator( new QDoubleValidator( lineeditStartPositionY , "ValidatorStartPositionY") );
00029 lineeditStartPositionZ->setValidator( new QDoubleValidator( lineeditStartPositionZ , "ValidatorStartPositionZ") );
00030
00031
00032 lineeditPlanarSpringConstant->setValidator( new QDoubleValidator(lineeditPlanarSpringConstant) );
00033 lineeditNormalSpringConstant->setValidator( new QDoubleValidator(lineeditNormalSpringConstant) );
00034 lineeditPlanarDamperConstant->setValidator( new QDoubleValidator(lineeditPlanarDamperConstant) );
00035 lineeditNormalDamperConstant->setValidator( new QDoubleValidator(lineeditNormalDamperConstant) );
00036 lineeditStaticFrictionCoefficient->setValidator( new QDoubleValidator(lineeditStaticFrictionCoefficient) );
00037 lineeditKineticFrictionCoefficient->setValidator( new QDoubleValidator(lineeditKineticFrictionCoefficient) );
00038 }
00039
00040
00041
00042
00043 SIG_EnvironmentView::~SIG_EnvironmentView()
00044 {
00045
00046 }
00047
00048 void SIG_EnvironmentView::putIntoExperiment()
00049 {
00050
00051 DL_vector gravityVector( lineeditGravityX->text().toDouble(),
00052 lineeditGravityY->text().toDouble(),
00053 lineeditGravityZ->text().toDouble() );
00054 theExperiment.environment.setGravity( gravityVector );
00055
00056
00057
00058 theExperiment.environment.setFloorMaterialName( comboboxMaterialName->currentText() );
00059
00060 theExperiment.environment.setYPlaneLevel( lineeditYPlaneLevel->text().toDouble() );
00061
00062 DL_vector startPositionVector( lineeditStartPositionX->text().toDouble(),
00063 lineeditStartPositionY->text().toDouble(),
00064 lineeditStartPositionZ->text().toDouble() );
00065 theExperiment.environment.setStartPosition( startPositionVector );
00066
00067
00068 theExperiment.environment.setGroundPlanarSpringConstant( lineeditPlanarSpringConstant->text().toDouble() );
00069 theExperiment.environment.setGroundNormalSpringConstant( lineeditNormalSpringConstant->text().toDouble() );
00070 theExperiment.environment.setGroundPlanarDamperConstant( lineeditPlanarDamperConstant->text().toDouble() );
00071 theExperiment.environment.setGroundNormalDamperConstant( lineeditNormalDamperConstant->text().toDouble() );
00072 theExperiment.environment.setFrictionCoeff_u_s( lineeditStaticFrictionCoefficient->text().toDouble() );
00073 theExperiment.environment.setFrictionCoeff_u_k( lineeditKineticFrictionCoefficient->text().toDouble() );
00074 };
00075
00076 void SIG_EnvironmentView::getOutOfExperiment()
00077 {
00078
00079 DL_vector gravityVector = theExperiment.environment.getGravity();
00080 lineeditGravityX->setText( QString::number( gravityVector.x) );
00081 lineeditGravityY->setText( QString::number( gravityVector.y) );
00082 lineeditGravityZ->setText( QString::number( gravityVector.z) );
00083
00084
00085
00086
00087
00088 comboboxMaterialName->clear();
00089 QDictIterator<SIGEL_Robot::SIG_Material> materialIter = theExperiment.robot.getMaterialIter();
00090 for(; materialIter.current(); ++materialIter )
00091 {
00092 comboboxMaterialName->insertItem( materialIter.current()->getName() );
00093 }
00094 bool wasAlreadyInserted = false;
00095 for( int i=0; i < comboboxMaterialName->count(); i++ )
00096 {
00097 if( comboboxMaterialName->text(i) == theExperiment.environment.getFloorMaterialName() )
00098 {
00099 comboboxMaterialName->setCurrentItem( i );
00100 wasAlreadyInserted = true;
00101 break;
00102 }
00103 }
00104 if( !wasAlreadyInserted)
00105 comboboxMaterialName->insertItem( theExperiment.environment.getFloorMaterialName() );
00106
00107
00108
00109 QString yPlaneLevel;
00110 yPlaneLevel.setNum( theExperiment.environment.getYPlaneLevel() );
00111 lineeditYPlaneLevel->setText( yPlaneLevel );
00112
00113
00114 DL_vector startPositionVector = theExperiment.environment.getStartPosition();
00115 lineeditStartPositionX->setText( QString::number( startPositionVector.x ) );
00116 lineeditStartPositionY->setText( QString::number( startPositionVector.y ) );
00117 lineeditStartPositionZ->setText( QString::number( startPositionVector.z ) );
00118
00119
00120 lineeditPlanarSpringConstant->setText( QString::number( theExperiment.environment.getGroundPlanarSpringConstant() ) );
00121 lineeditNormalSpringConstant->setText( QString::number( theExperiment.environment.getGroundNormalSpringConstant() ) );
00122 lineeditPlanarDamperConstant->setText( QString::number( theExperiment.environment.getGroundPlanarDamperConstant() ) );
00123 lineeditNormalDamperConstant->setText( QString::number( theExperiment.environment.getGroundNormalDamperConstant() ) );
00124 lineeditStaticFrictionCoefficient->setText( QString::number( theExperiment.environment.getFrictionCoeff_u_s() ) );
00125 lineeditKineticFrictionCoefficient->setText( QString::number( theExperiment.environment.getFrictionCoeff_u_k() ) );
00126 };
00127
00128 }