Salome HOME
Compsolid result should not be concealed when it is created.
[modules/shaper.git] / src / FeaturesPlugin / FeaturesPlugin_Revolution.cpp
index 26cd5fe0be67b565d59433c8eb3688bc8dd2c088..7716583e1c436bcf655226ae02e640c524c7eab2 100644 (file)
@@ -65,12 +65,12 @@ void FeaturesPlugin_Revolution::execute()
   std::shared_ptr<GeomAPI_Edge> anEdge;
   std::shared_ptr<ModelAPI_AttributeSelection> anObjRef = selection(AXIS_OBJECT_ID());
   if(anObjRef && anObjRef->value() && anObjRef->value()->isEdge()) {
-    anEdge = std::make_shared<GeomAPI_Edge>(anObjRef->value());
+    anEdge = std::shared_ptr<GeomAPI_Edge>(new GeomAPI_Edge(anObjRef->value()));
   } else if(anObjRef->context() && anObjRef->context()->shape() && anObjRef->context()->shape()->isEdge()) {
-    anEdge = std::make_shared<GeomAPI_Edge>(anObjRef->context()->shape());
+    anEdge = std::shared_ptr<GeomAPI_Edge>(new GeomAPI_Edge(anObjRef->context()->shape()));
   }
   if(anEdge) {
-    anAxis = std::make_shared<GeomAPI_Ax1>(anEdge->line()->location(), anEdge->line()->direction());
+    anAxis = std::shared_ptr<GeomAPI_Ax1>(new GeomAPI_Ax1(anEdge->line()->location(), anEdge->line()->direction()));
   }
 
   // Getting angles.
@@ -179,18 +179,15 @@ void FeaturesPlugin_Revolution::LoadNamingDS(GeomAlgoAPI_Revolution& theFeature,
                                              std::shared_ptr<GeomAPI_Shape> theBasis,
                                              std::shared_ptr<GeomAPI_Shape> theContext)
 {
-  //load result
-  ModelAPI_BodyBuilder* aResultBuilder = theResultBody->getBodyBuilder();
-
   if(theBasis->isEqual(theContext))
-    aResultBuilder->store(theFeature.shape());
+    theResultBody->store(theFeature.shape());
   else
-    aResultBuilder->storeGenerated(theContext, theFeature.shape());
+    theResultBody->storeGenerated(theContext, theFeature.shape());
 
   std::shared_ptr<GeomAPI_DataMapOfShapeShape> aSubShapes = theFeature.mapOfShapes();
 
   std::string aGeneratedName = "LateralFace";
-  aResultBuilder->loadAndOrientGeneratedShapes(theFeature.makeShape().get(), theBasis, EDGE,_LATERAL_TAG, aGeneratedName, *aSubShapes);
+  theResultBody->loadAndOrientGeneratedShapes(theFeature.makeShape().get(), theBasis, EDGE,_LATERAL_TAG, aGeneratedName, *aSubShapes);
 
   //Insert from face
   std::string aBotName = "FromFace";
@@ -199,7 +196,7 @@ void FeaturesPlugin_Revolution::LoadNamingDS(GeomAlgoAPI_Revolution& theFeature,
     if(aSubShapes->isBound(aBottomFace)) {
       aBottomFace = aSubShapes->find(aBottomFace);
     }
-    aResultBuilder->generated(aBottomFace, aBotName, _FROM_TAG);
+    theResultBody->generated(aBottomFace, aBotName, _FROM_TAG);
   }
 
   //Insert to face
@@ -209,7 +206,7 @@ void FeaturesPlugin_Revolution::LoadNamingDS(GeomAlgoAPI_Revolution& theFeature,
     if (aSubShapes->isBound(aTopFace)) {
       aTopFace = aSubShapes->find(aTopFace);
     }
-    aResultBuilder->generated(aTopFace, aTopName, _TO_TAG);
+    theResultBody->generated(aTopFace, aTopName, _TO_TAG);
   }
 
 }