Salome HOME
Remove extra files
[modules/shaper.git] / src / Model / Model_SelectionNaming.h
index 1ecf4ad42828f2bef21875b565f31bbc50bd9870..f97e284fd47fc5a495d1fa7a40a633c3aaa46b5b 100644 (file)
@@ -12,6 +12,9 @@
 #include <Model_Document.h>
 #include <TDF_Label.hxx>
 #include <TopoDS_Shape.hxx>
+#include <NCollection_DataMap.hxx>
+#include <Geom_Curve.hxx>
+#include <TopoDS_Edge.hxx>
 
 /**\class Model_SelectionNaming
  * \ingroup DataModel
@@ -27,7 +30,7 @@ public:
 
   /// Produces the string-name for the selected shape
   std::string namingName(ResultPtr& theContext, std::shared_ptr<GeomAPI_Shape> theSubSh,
-    const std::string& theDefaultName);
+    const std::string& theDefaultName, const bool theAnotherDoc);
   
   /// Makes a selection by the string-name
   /// \param theType string of the type of the shape
@@ -39,9 +42,33 @@ public:
     std::shared_ptr<Model_Document> theDoc, std::shared_ptr<GeomAPI_Shape>& theShapeToBeSelected,
     std::shared_ptr<ModelAPI_Result>& theCont);
 
+  /// Searches the face more appropriate to the given curves 
+  /// (with higher level of matched parameters)
+  /// \param theConstr construction result that contains one or several  faces
+  /// \param theCurves map from the face edges curves to orientation 
+  ///                  (-1 reversed, 0 unknown, 1 forward)
+  /// \param theIsWire for wire algorithm isquite the same, 
+  ///                  but if in face several wires, it returns the needed wire
+  /// \returns faces fron this construction if found
+  static std::shared_ptr<GeomAPI_Shape> findAppropriateFace(
+    std::shared_ptr<ModelAPI_Result>& theConstr, 
+    NCollection_DataMap<Handle(Geom_Curve), int>& theCurves, const bool theIsWire);
+
+  /// Returns orientation of the edge in the context shape
+  static int edgeOrientation(const TopoDS_Shape& theContext, TopoDS_Edge& theEdge);
+
+  /// Returns the name of sketch sub-element, shortened by exclusion of some symbols and with added
+  /// the vertex position (if needed)
+  /// \param theConstr result with name - basis for the name
+  /// \param theEdgeVertexPos position of the vertex on edge: 1 - first , 2 - second
+  /// \returns the generated name
+  static std::string shortName(std::shared_ptr<ModelAPI_ResultConstruction>& theConstr,
+    const int theEdgeVertexPos = 0);
+
 protected:
   /// Gets the stored name from the document
-  std::string getShapeName(std::shared_ptr<Model_Document> theDoc, const TopoDS_Shape& theShape);
+  std::string getShapeName(std::shared_ptr<Model_Document> theDoc, const TopoDS_Shape& theShape,
+    ResultPtr& theContext, const bool theAnotherDoc, const bool theWholeContext);
 };
 
 #endif