X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FGeomAlgoAPI%2FGeomAlgoAPI_MakeShape.cpp;h=f28779de5f60f244d5c41124d2541b00fdeefcbf;hb=60e95a5502a6940c6c27ce5d561b3c684b0b0a4f;hp=679526befc0e3e94fad7d9fa0f636cd8516ac822;hpb=ba8a9c21c83e3ab7e65e5a1aa961bbd1df6850a2;p=modules%2Fshaper.git diff --git a/src/GeomAlgoAPI/GeomAlgoAPI_MakeShape.cpp b/src/GeomAlgoAPI/GeomAlgoAPI_MakeShape.cpp index 679526bef..f28779de5 100644 --- a/src/GeomAlgoAPI/GeomAlgoAPI_MakeShape.cpp +++ b/src/GeomAlgoAPI/GeomAlgoAPI_MakeShape.cpp @@ -1,30 +1,43 @@ +// Copyright (C) 2014-20xx CEA/DEN, EDF R&D + // File: GeomAlgoAPI_MakeShape.cpp // Created: 20 Oct 2014 // Author: Sergey ZARITCHNY #include +#include #include #include GeomAlgoAPI_MakeShape::GeomAlgoAPI_MakeShape(void* theMkShape) - : GeomAPI_Interface(theMkShape) + : GeomAPI_Interface(theMkShape),myShape(new GeomAPI_Shape()) +{ + myShape->setImpl((void *)&implPtr()->Shape()); +} + +GeomAlgoAPI_MakeShape::GeomAlgoAPI_MakeShape() + : GeomAPI_Interface(),myShape(new GeomAPI_Shape()) {} +void GeomAlgoAPI_MakeShape::init(void* theMkShape) +{ + setImpl((void *)implPtr()); +} -const boost::shared_ptr GeomAlgoAPI_MakeShape::shape() const +const std::shared_ptr GeomAlgoAPI_MakeShape::shape() const { return myShape; } /// Returns the list of shapes generated from the shape void GeomAlgoAPI_MakeShape::generated( - const boost::shared_ptr theShape, ListOfShape& theHistory) + const std::shared_ptr theShape, ListOfShape& theHistory) { BRepBuilderAPI_MakeShape* aBuilder = implPtr(); if(aBuilder) { const TopTools_ListOfShape& aList = aBuilder->Generated(theShape->impl()); TopTools_ListIteratorOfListOfShape it(aList); for(;it.More();it.Next()) { - boost::shared_ptr aShape(new GeomAPI_Shape()); - aShape->setImpl(&(it.Value())); + std::shared_ptr aShape(new GeomAPI_Shape()); + aShape->setImpl(new TopoDS_Shape(it.Value())); theHistory.push_back(aShape); } } @@ -32,22 +45,22 @@ void GeomAlgoAPI_MakeShape::generated( /// Returns the list of shapes modified from the shape void GeomAlgoAPI_MakeShape::modified( - const boost::shared_ptr theShape, ListOfShape& theHistory) + const std::shared_ptr theShape, ListOfShape& theHistory) { BRepBuilderAPI_MakeShape* aBuilder = implPtr(); if(aBuilder) { const TopTools_ListOfShape& aList = aBuilder->Modified(theShape->impl()); TopTools_ListIteratorOfListOfShape it(aList); for(;it.More();it.Next()) { - boost::shared_ptr aShape(new GeomAPI_Shape()); - aShape->setImpl(&(it.Value())); + std::shared_ptr aShape(new GeomAPI_Shape()); + aShape->setImpl(new TopoDS_Shape(it.Value())); theHistory.push_back(aShape); } } } /// Returns whether the shape is an edge -bool GeomAlgoAPI_MakeShape::isDeleted(const boost::shared_ptr theShape) +bool GeomAlgoAPI_MakeShape::isDeleted(const std::shared_ptr theShape) { bool isDeleted(false); BRepBuilderAPI_MakeShape* aBuilder = implPtr();