Salome HOME
Issue #2169 Segmentation fault when drawing sketch line with undocked property panel
[modules/shaper.git] / src / SketcherPrs / SketcherPrs_PositionMgr.h
index 8c8445de8d2b9195e91e2710873fc4edd3e72d92..d91e9af32dc235cab9397c65b1f8fdc0c487fbb7 100644 (file)
@@ -11,6 +11,7 @@
 
 #include <GeomAPI_Shape.h>
 #include <gp_Pnt.hxx>
+#include <ModelAPI_Object.h>
 
 #include <map>
 
@@ -26,31 +27,32 @@ public:
   static SketcherPrs_PositionMgr* get();
 
   /// Returns position of symbol for the given presentation
-  /// \param theLine constrained object 
+  /// \param theLine constrained object
   /// \param thePrs a presentation of constraint
-  gp_Pnt getPosition(std::shared_ptr<GeomAPI_Shape> theLine, Handle(SketcherPrs_SymbolPrs) thePrs);
+  /// \param theStep step between symbols
+  gp_Pnt getPosition(ObjectPtr theLine, const SketcherPrs_SymbolPrs* thePrs, double theStep = 20);
 
   /// Deletes constraint object from internal structures. Has to be called on constraint delete.
   /// \param thePrs a constraint presentation
-  void deleteConstraint(Handle(SketcherPrs_SymbolPrs) thePrs);
+  void deleteConstraint(const SketcherPrs_SymbolPrs* thePrs);
 
 private:
   /// Constructor
   SketcherPrs_PositionMgr();
 
   /// Returns position index of the given constraint
-  /// \param theLine constrained object 
+  /// \param theLine constrained object
   /// \param thePrs a presentation of constraint
-  int getPositionIndex(std::shared_ptr<GeomAPI_Shape> theLine, Handle(SketcherPrs_SymbolPrs) thePrs);
+  int getPositionIndex(ObjectPtr theLine, const SketcherPrs_SymbolPrs* thePrs);
 
 private:
-  typedef std::map<void*, int> PositionsMap;
+  typedef std::map<const SketcherPrs_SymbolPrs*, int> PositionsMap;
 
   /// The map which contains position of presentation
   PositionsMap myIndexes;
 
-  /// The map contains position index 
-  std::map<std::shared_ptr<GeomAPI_Shape>, PositionsMap> myShapes;
+  /// The map contains position index
+  std::map<ObjectPtr, PositionsMap> myShapes;
 };
 
 #endif
\ No newline at end of file