-// Copyright (C) 2014-2017 CEA/DEN, EDF R&D
+// Copyright (C) 2014-2019 CEA/DEN, EDF R&D
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
-// See http://www.salome-platform.org/ or
-// email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com>
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
#include <GDMLPlugin_Ellipsoid.h>
+#include <GeomAPI_ShapeExplorer.h>
+
#include <ModelAPI_Data.h>
#include <ModelAPI_ResultBody.h>
#include <ModelAPI_AttributeDouble.h>
#include <ModelAPI_AttributeString.h>
+#include <sstream>
+
//=================================================================================================
GDMLPlugin_Ellipsoid::GDMLPlugin_Ellipsoid() // Nothing to do during instantiation
{
theEllipsoidAlgo->prepareNamingFaces();
// Insert to faces
- int num = 1;
+ // Naming for faces and edges
std::map< std::string, std::shared_ptr<GeomAPI_Shape> > listOfFaces =
- theEllipsoidAlgo->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;
- theResultEllipsoid->generated(aFace, (*it).first, num++);
+ theEllipsoidAlgo->getCreatedFaces();
+ for (std::map< std::string, std::shared_ptr<GeomAPI_Shape> >::iterator it = listOfFaces.begin();
+ it!=listOfFaces.end();
+ ++it)
+ {
+ theResultEllipsoid->generated((*it).second, (*it).first);
+ }
+
+ // Naming vertices
+ GeomAPI_DataMapOfShapeShape aVertices;
+ int anIndex = 1;
+ for (GeomAPI_ShapeExplorer aVertExp(theEllipsoidAlgo->shape(), GeomAPI_Shape::VERTEX);
+ aVertExp.more();
+ aVertExp.next())
+ {
+ if (!aVertices.isBound(aVertExp.current())) {
+ std::ostringstream aStream;
+ aStream<<"Vertex_"<<anIndex++;
+ theResultEllipsoid->generated(aVertExp.current(), aStream.str());
+ aVertices.bind(aVertExp.current(), aVertExp.current());
+ }
}
}