#include <PrimitivesPlugin_Sphere.h>
+#include <GeomAPI_ShapeExplorer.h>
+
#include <GeomAlgoAPI_PointBuilder.h>
#include <ModelAPI_AttributeDouble.h>
#include <ModelAPI_ResultConstruction.h>
#include <ModelAPI_Session.h>
+#include <sstream>
+
//=================================================================================================
PrimitivesPlugin_Sphere::PrimitivesPlugin_Sphere()
{
theSphereAlgo->prepareNamingFaces();
// Insert to faces
- int num = 1;
+ // Naming for faces and edges
std::map< std::string, std::shared_ptr<GeomAPI_Shape> > listOfFaces =
theSphereAlgo->getCreatedFaces();
- for (std::map< std::string, std::shared_ptr<GeomAPI_Shape> >::iterator
- it=listOfFaces.begin(); it!=listOfFaces.end(); ++it) {
- std::shared_ptr<GeomAPI_Shape> aFace = (*it).second;
- theResultSphere->generated(aFace, (*it).first, num++);
+ for (std::map< std::string, std::shared_ptr<GeomAPI_Shape> >::iterator it = listOfFaces.begin();
+ it != listOfFaces.end();
+ ++it)
+ {
+ theResultSphere->generated((*it).second, (*it).first);
+ }
+
+ // Naming vertices
+ GeomAPI_DataMapOfShapeShape aVertices;
+ int anIndex = 1;
+ for (GeomAPI_ShapeExplorer aVertExp(theSphereAlgo->shape(), GeomAPI_Shape::VERTEX);
+ aVertExp.more();
+ aVertExp.next())
+ {
+ if (!aVertices.isBound(aVertExp.current())) {
+ std::ostringstream aStream;
+ aStream<<"Vertex_"<<anIndex++;
+ theResultSphere->generated(aVertExp.current(), aStream.str());
+ aVertices.bind(aVertExp.current(), aVertExp.current());
+ }
}
}