Salome HOME
updated copyright message
[modules/shaper.git] / src / GDMLPlugin / GDMLPlugin_Ellipsoid.cpp
index 1ab4ce05d6dad80a124556f739ba0a7194e0c538..19066f21f59320d515d1a62db155f90142d7e378 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2014-2017  CEA/DEN, EDF R&D
+// Copyright (C) 2014-2023  CEA, EDF
 //
 // 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
 {
@@ -108,13 +111,29 @@ void GDMLPlugin_Ellipsoid::loadNamingDS(std::shared_ptr<GeomAlgoAPI_Ellipsoid> t
   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());
+    }
   }
 }