+ switch (_Type)
+ {
+ case 11 : // il s agit d un rectangle, dans le plan (X,Y)
+ { aZone = myHomardGen->CreateZoneBox2D(CORBA::string_dup(_Name.toStdString().c_str()), \
+ _ZoneXmin, _ZoneXmax, _ZoneYmin, _ZoneYmax, _Orient );
+ break;
+ }
+ case 12 : // il s agit d un rectangle, dans le plan (Y,Z)
+ { aZone = myHomardGen->CreateZoneBox2D(CORBA::string_dup(_Name.toStdString().c_str()), \
+ _ZoneYmin, _ZoneYmax, _ZoneZmin, _ZoneZmax, _Orient );
+ break;
+ }
+ case 13 : // il s agit d un rectangle, dans le plan (Z,X)
+ { aZone = myHomardGen->CreateZoneBox2D(CORBA::string_dup(_Name.toStdString().c_str()), \
+ _ZoneZmin, _ZoneZmax, _ZoneXmin, _ZoneXmax, _Orient );
+ break;
+ }
+ case 2 : // il s agit d un parallelepipede
+ { aZone = myHomardGen->CreateZoneBox(CORBA::string_dup(_Name.toStdString().c_str()), \
+ _ZoneXmin, _ZoneXmax, _ZoneYmin, _ZoneYmax, _ZoneZmin, _ZoneZmax );
+ break;
+ }
+ case 4 : // il s agit d une sphere
+ { aZone = myHomardGen->CreateZoneSphere(CORBA::string_dup(_Name.toStdString().c_str()), \
+ _ZoneXcentre, _ZoneYcentre, _ZoneZcentre, _ZoneRayon );
+ break;
+ }
+ case 31 : // il s agit d un disque issu d'un cylindre, dans le plan (X,Y)
+ { aZone = myHomardGen->CreateZoneDisk(CORBA::string_dup(_Name.toStdString().c_str()), \
+ _ZoneXcentre, _ZoneYcentre, _ZoneRayon, _Orient );
+ break;
+ }
+ case 32 : // il s agit d un disque issu d'un cylindre, dans le plan (Y,Z)
+ { aZone = myHomardGen->CreateZoneDisk(CORBA::string_dup(_Name.toStdString().c_str()), \
+ _ZoneYcentre, _ZoneZcentre, _ZoneRayon, _Orient );
+ break;
+ }
+ case 33 : // il s agit d un disque issu d'un cylindre, dans le plan (Z,X)
+ { aZone = myHomardGen->CreateZoneDisk(CORBA::string_dup(_Name.toStdString().c_str()), \
+ _ZoneZcentre, _ZoneXcentre, _ZoneRayon, _Orient );
+ break;
+ }
+ case 5 : // il s agit d un cylindre
+ { aZone = myHomardGen->CreateZoneCylinder(CORBA::string_dup(_Name.toStdString().c_str()), \
+ _ZoneXcentre, _ZoneYcentre, _ZoneZcentre, _ZoneXaxis, _ZoneYaxis, _ZoneZaxis, _ZoneRayon, _ZoneHaut );
+ break;
+ }
+ case 61 : // il s agit d un disque avec trou, dans le plan (X,Y)
+ { aZone = myHomardGen->CreateZoneDiskWithHole(CORBA::string_dup(_Name.toStdString().c_str()), \
+ _ZoneXcentre, _ZoneYcentre, _ZoneRayon, _ZoneRayonInt, _Orient );
+ break;
+ }
+ case 62 : // il s agit d un disque avec trou, dans le plan (Y,Z)
+ { aZone = myHomardGen->CreateZoneDiskWithHole(CORBA::string_dup(_Name.toStdString().c_str()), \
+ _ZoneYcentre, _ZoneZcentre, _ZoneRayon, _ZoneRayonInt, _Orient );
+ break;
+ }
+ case 63 : // il s agit d un disque avec trou, dans le plan (Z,X)
+ { aZone = myHomardGen->CreateZoneDiskWithHole(CORBA::string_dup(_Name.toStdString().c_str()), \
+ _ZoneZcentre, _ZoneXcentre, _ZoneRayon, _ZoneRayonInt, _Orient );
+ break;
+ }
+ case 7 : // il s agit d un tuyau
+ { aZone = myHomardGen->CreateZonePipe(CORBA::string_dup(_Name.toStdString().c_str()), \
+ _ZoneXcentre, _ZoneYcentre, _ZoneZcentre, _ZoneXaxis, _ZoneYaxis, _ZoneZaxis, _ZoneRayon, _ZoneHaut, _ZoneRayonInt );
+ break;
+ }
+ }
+ }
+ catch( SALOME::SALOME_Exception& S_ex )
+ {
+ QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+ QObject::tr(CORBA::string_dup(S_ex.details.text)) );
+ return false ;
+ }
+ _parent->addZoneinTWZone(_Name) ;