Salome HOME
Merge branch 'occ/shaper2smesh'
[modules/shaper.git] / src / GeomAPI / GeomAPI_Shape.h
index 2202d022664622308452afc0ec41863a2f40dfab..61fd4f5bc36372462ed275eaed21fa02e3edb47d 100644 (file)
@@ -33,6 +33,7 @@ class GeomAPI_Wire;
 class GeomAPI_Face;
 class GeomAPI_Shell;
 class GeomAPI_Solid;
+class GeomAPI_Trsf;
 
 /**\class GeomAPI_Shape
  * \ingroup DataModel
@@ -191,7 +192,7 @@ public:
 
   /// Returns the shape as BRep stream
   GEOMAPI_EXPORT
-  std::string getShapeStream() const;
+  std::string getShapeStream(const bool theWithTriangulation = true) const;
 
   /// Returns intersection of shapes
   GEOMAPI_EXPORT
@@ -205,6 +206,10 @@ public:
   GEOMAPI_EXPORT
   void translate(const std::shared_ptr<GeomAPI_Dir> theDir, const double theOffset);
 
+  /// Moves the shape with the given transformation matrix.
+  GEOMAPI_EXPORT
+    void move(const std::shared_ptr<GeomAPI_Trsf> theTransformation);
+
   /// Returns type of shapes in the compound.
   // If shapes are of different type then it will return SHAPE type
   GEOMAPI_EXPORT ShapeType typeOfCompoundShapes() const;
@@ -244,6 +249,25 @@ public:
       bool operator ()(const std::shared_ptr<GeomAPI_Shape>& theShape1,
                        const std::shared_ptr<GeomAPI_Shape>& theShape2) const;
   };
+
+  /// \brief Hash code for the shape
+  class Hash
+  {
+  public:
+    /// Return Hash value according to the address of the shape
+    GEOMAPI_EXPORT
+    int operator ()(const std::shared_ptr<GeomAPI_Shape>& theShape) const;
+  };
+
+  /// \brief Compare addresses of shapes
+  class Equal
+  {
+  public:
+    /// Return \c true if the address of the shapes are equal
+    GEOMAPI_EXPORT
+    bool operator ()(const std::shared_ptr<GeomAPI_Shape>& theShape1,
+                     const std::shared_ptr<GeomAPI_Shape>& theShape2) const;
+  };
 };
 
 //! Pointer on list of shapes