3 #include "MonEditZone.h"
5 #include "SalomeApp_Tools.h"
6 #include "HOMARDGUI_Utils.h"
10 // ------------------------------------------------------------------------
11 MonEditZone::MonEditZone( MonCreateHypothesis* parent, bool modal,
12 HOMARD::HOMARD_Gen_var myHomardGen,
13 QString caseName, QString zoneName ):
14 // ------------------------------------------------------------------------
15 /* Constructs a MonEditZone
16 herite de MonCreateZone
18 MonCreateZone(parent, myHomardGen, caseName)
20 MESSAGE("Debut de MonEditZone pour " << zoneName.toStdString().c_str());
21 setWindowTitle(QObject::tr("HOM_ZONE_EDIT_WINDOW_TITLE"));
23 aZone = _myHomardGen->GetZone(_aZoneName.toStdString().c_str());
26 // ------------------------------------------------------------------------
27 MonEditZone::~MonEditZone()
28 // ------------------------------------------------------------------------
30 // no need to delete child widgets, Qt does it all for us
32 // ------------------------------------------------------------------------
33 void MonEditZone::InitValEdit()
34 // ------------------------------------------------------------------------
36 LEZoneName->setText(_aZoneName);
37 LEZoneName->setReadOnly(true);
38 _ZoneType = aZone->GetZoneType();
40 if (_aCaseName != QString("")) InitValZone();
43 case 2 : // il s agit d une boite
49 case 4 : // il s agit d une sphere
57 // ------------------------------------------------------------------------
58 void MonEditZone::InitValZoneLimit()
59 // ------------------------------------------------------------------------
61 HOMARD::double_array_var mesCoordLimits = aZone->GetLimit();
62 ASSERT(mesCoordLimits->length() == 3 );
63 _Xincr=mesCoordLimits[0];
64 _Yincr=mesCoordLimits[1];
65 _Zincr=mesCoordLimits[2];
68 // ------------------------------------------------------------------------
69 void MonEditZone::InitValZoneBox()
70 // ------------------------------------------------------------------------
72 HOMARD::double_array_var mesCoordZones = aZone->GetBox();
73 ASSERT(mesCoordZones->length() == 6 );
74 _ZoneXmin=mesCoordZones[0]; _ZoneXmax=mesCoordZones[1];
75 _ZoneYmin=mesCoordZones[2]; _ZoneYmax=mesCoordZones[3];
76 _ZoneZmin=mesCoordZones[4]; _ZoneZmax=mesCoordZones[5];
79 // ------------------------------------------------------------------------
80 void MonEditZone::InitValZoneSphere()
81 // ------------------------------------------------------------------------
83 HOMARD::double_array_var mesCoordZones = aZone->GetSphere();
84 ASSERT(mesCoordZones->length() == 4 );
85 _ZoneXcentre=mesCoordZones[0];
86 _ZoneYcentre=mesCoordZones[1];
87 _ZoneZcentre=mesCoordZones[2];
88 _ZoneRayon=mesCoordZones[3];
91 // ------------------------------------------------------------------------
92 void MonEditZone::SetBox()
93 // ------------------------------------------------------------------------
96 gBSphere->setVisible(0);
100 RBSphere->setDisabled(true);
103 SpinBox_Xmini->setValue(_ZoneXmin);
104 SpinBox_Xmaxi->setValue(_ZoneXmax);
107 if ( _Xincr > 0 ) {incr=_Xincr;} else{incr=1.;}
108 SpinBox_Xmini->setSingleStep(incr);
109 SpinBox_Xmaxi->setSingleStep(incr);
111 SpinBox_Ymini->setValue(_ZoneYmin);
112 SpinBox_Ymaxi->setValue(_ZoneYmax);
113 if ( _Yincr > 0 ) {incr=_Yincr;} else{incr=1.;}
114 SpinBox_Ymini->setSingleStep(incr);
115 SpinBox_Ymaxi->setSingleStep(incr);
117 SpinBox_Zmini->setValue(_ZoneZmin);
118 SpinBox_Zmaxi->setValue(_ZoneZmax);
119 if ( _Zincr > 0 ) {incr=_Zincr;} else{incr=1.;}
120 SpinBox_Zmini->setSingleStep(incr);
121 SpinBox_Zmaxi->setSingleStep(incr);
124 // ------------------------------------------------------------------------
125 void MonEditZone::SetSphere()
126 // ------------------------------------------------------------------------
128 gBBox->setVisible(0);
129 gBSphere->setVisible(1);
130 RBSphere->setChecked(1);
131 RBBox->setDisabled(true);
135 SpinBox_Xcentre->setValue(_ZoneXcentre);
136 if ( _Xincr > 0) { SpinBox_Xcentre->setSingleStep(_Xincr); }
137 else { SpinBox_Xcentre->setSingleStep(1) ; }
139 SpinBox_Ycentre->setValue(_ZoneYcentre);
140 if ( _Yincr > 0) { SpinBox_Ycentre->setSingleStep(_Yincr); }
141 else { SpinBox_Ycentre->setSingleStep(1) ; }
143 SpinBox_Zcentre->setValue(_ZoneZcentre);
144 if ( _Zincr > 0) { SpinBox_Zcentre->setSingleStep(_Zincr); }
145 else { SpinBox_Zcentre->setSingleStep(1);}
147 SpinBox_Rayon->setMinimum(0.);
148 SpinBox_Rayon->setValue(_ZoneRayon);
152 // ---------------------------------------------------
153 bool MonEditZone::CreateOrUpdateZone()
154 //----------------------------------------------------
155 // Pas de Creation de la zone
156 // Mise a jour des attributs de la Zone
161 aZone->SetZoneType(_ZoneType);
162 aZone->SetBox(_ZoneXmin, _ZoneXmax, _ZoneYmin, _ZoneYmax, _ZoneZmin, _ZoneZmax);
163 aZone->SetSphere(_ZoneXcentre, _ZoneYcentre, _ZoneZcentre, _ZoneRayon);
164 if (Chgt) _myHomardGen->InvalideZone(_aZoneName.toStdString().c_str());
165 HOMARD_UTILS::updateObjBrowser();
167 catch( const SALOME::SALOME_Exception& S_ex ) {
168 SalomeApp_Tools::QtCatchCorbaException( S_ex );