- bool toCreateSingleSolid = GroupSolid->CheckButton1->isChecked();
-
- if ( toCreateSingleSolid ) {
- GEOM::GEOM_Object_var anObj = GEOM::GEOM_IShapesOperations::_narrow(
- getOperation() )->MakeSolidShells( myShells );
-
- if ( !anObj->_is_nil() )
- objects.push_back( anObj._retn() );
- }
- else {
- for ( int i = 0, n = myShells.length(); i< n; i++ ) {
- GEOM::GEOM_Object_var anObj = GEOM::GEOM_IShapesOperations::_narrow(
- getOperation() )->MakeSolidShell( myShells[ i ] );
+ GEOM::GEOM_IShapesOperations_var anOper = GEOM::GEOM_IShapesOperations::_narrow( getOperation() );
+ GEOM::GEOM_Object_var anObj;
+
+ switch (getConstructorId()) {
+ case 0:
+ {
+ if ( GroupSolid->CheckButton1->isChecked() ) {
+ GEOM::ListOfGO_var objlist = new GEOM::ListOfGO();
+ objlist->length( myShells.count() );
+ for ( int i = 0; i < myShells.count(); i++ )
+ objlist[i] = myShells[i].copy();
+
+ anObj = anOper->MakeSolidShells( objlist.in() );
+
+ if ( !anObj->_is_nil() ) objects.push_back( anObj._retn() );
+ }
+ else {
+ for ( int i = 0, n = myShells.count(); i< n; i++ ){
+ anObj = anOper->MakeSolidShell( myShells[ i ].get() );
+
+ if ( !anObj->_is_nil() ) objects.push_back( anObj._retn() );
+ }
+ }
+ break;
+ }
+ case 1:
+ {
+ GEOM::ListOfGO_var objlist = new GEOM::ListOfGO();
+ objlist->length( myShells.count() );
+ for ( int i = 0; i < myShells.count(); i++ )
+ objlist[i] = myShells[i].copy();