]> SALOME platform Git repositories - modules/geom.git/blobdiff - src/GEOMImpl/GEOMImpl_IShapesOperations.hxx
Salome HOME
0022686: [CEA 1268] Explode a shape into edges sorted in a row from a starting point
[modules/geom.git] / src / GEOMImpl / GEOMImpl_IShapesOperations.hxx
index e620817feaf4f3a5ad3538d399c11f2b741557e2..59af88e00f70dae336ea2834ef39c0e95c4d799f 100644 (file)
@@ -54,6 +54,15 @@ class Handle(TColStd_HArray1OfInteger);
 class GEOMImpl_IShapesOperations : public GEOM_IOperations
 {
  public:
+
+  enum SubShapeType {
+    None      = 0x00,
+    Groups    = 0x01,
+    Fields    = 0x02,
+    SubShapes = 0x04,
+    All       = Groups | Fields | SubShapes,
+  };
+
   Standard_EXPORT GEOMImpl_IShapesOperations(GEOM_Engine* theEngine, int theDocID);
   Standard_EXPORT ~GEOMImpl_IShapesOperations();
 
@@ -106,10 +115,11 @@ class GEOMImpl_IShapesOperations : public GEOM_IOperations
                                                            const Standard_Real theTolerance,
                                                            std::list<Handle(GEOM_Object)> theEdges);
 
-  Standard_EXPORT Handle(TColStd_HSequenceOfTransient) GetExistingSubObjects
-    (Handle(GEOM_Object)    theShape,
-     const Standard_Boolean theGroupsOnly);
-
+  Standard_EXPORT Handle(TColStd_HSequenceOfTransient) GetExistingSubObjects(Handle(GEOM_Object)    theShape,
+                                                                            const Standard_Boolean theGroupsOnly);
+  Standard_EXPORT Handle(TColStd_HSequenceOfTransient) GetExistingSubObjects(Handle(GEOM_Object)    theShape,
+                                                                            const Standard_Integer theTypes = All);
+  
   enum ExplodeType {
     EXPLODE_OLD_INCLUDE_MAIN,
     EXPLODE_NEW_INCLUDE_MAIN,
@@ -373,6 +383,16 @@ class GEOMImpl_IShapesOperations : public GEOM_IOperations
                                        const Standard_Integer theShapeType,
                                        GEOMAlgo_State theState);
 
+  /*!
+   * \brief Explode a shape into edges sorted in a row from a starting point.
+   * \param theShape - the shape to be exploded on edges.
+   * \param theStartPoint - the starting point.
+   * \return Ordered list of edges sorted in a row from a starting point.
+   */
+  Standard_EXPORT Handle(TColStd_HSequenceOfTransient)
+    GetSubShapeEdgeSorted (const Handle(GEOM_Object) &theShape,
+                           const Handle(GEOM_Object) &theStartPoint);
+
  private:
   Handle(GEOM_Object) MakeShape (std::list<Handle(GEOM_Object)>      theShapes,
                                  const Standard_Integer         theObjectType,
@@ -495,6 +515,16 @@ class GEOMImpl_IShapesOperations : public GEOM_IOperations
                        const Handle(TColStd_HSequenceOfInteger)& theShapeIDs,
                        TCollection_AsciiString &                 theShapeEntries);
 
+  /*!
+   * \brief Explode a shape into edges sorted in a row from a starting point.
+   * \param theShape - the shape to be exploded on edges.
+   * \param theStartPoint - the starting point.
+   * \return Ordered list of edges sorted in a row from a starting point.
+   */
+  Handle(TColStd_HSequenceOfInteger) getSubShapeEdgeSortedIDs
+                                (const Handle(GEOM_Object) &theShape,
+                                 const Handle(GEOM_Object) &theStartPoint);
+
   /*!
    * \brief Select the object created last
    * \param theObj1 - Object 1