Salome HOME
Merge branch 'Dev_1.1.0' of newgeom:newgeom into Dev_1.1.0
[modules/shaper.git] / src / SketchPlugin / SketchPlugin_Sketch.h
index 6a07b55c9038696881c6c1d43ae52c78804bb9f2..c4721f547bfb114dbd7d50a0f6d9c948d3d4b966 100644 (file)
@@ -1,3 +1,5 @@
+// Copyright (C) 2014-20xx CEA/DEN, EDF R&D -->
+
 // File:        SketchPlugin_Sketch.h
 // Created:     27 Mar 2014
 // Author:      Mikhail PONIKAROV
 #include <GeomAPI_IPresentable.h>
 #include <list>
 
-/// the plane edge color
-#define SKETCH_PLANE_COLOR "#700000" 
-
-/// the plane edge width
-#define SKETCH_WIDTH        "4"
-
-/// face of the square-face displayed for selection of general plane
-#define PLANE_SIZE          "200"     
+#define YZ_PLANE_COLOR "#ff0000"
+#define XZ_PLANE_COLOR "#00ff00"
+#define XY_PLANE_COLOR "#0000ff"
 
 /**\class SketchPlugin_Sketch
- * \ingroup DataModel
+ * \ingroup Plugins
  * \brief Feature for creation of the new part in PartSet.
  */
-class SketchPlugin_Sketch : public ModelAPI_CompositeFeature, public GeomAPI_IPresentable
+class SketchPlugin_Sketch : public ModelAPI_CompositeFeature//, public GeomAPI_IPresentable
 {
  public:
   /// Sketch feature kind
@@ -88,14 +85,14 @@ class SketchPlugin_Sketch : public ModelAPI_CompositeFeature, public GeomAPI_IPr
 
   /// Return the distance between the feature and the point
   /// \param thePoint the point
-  virtual double distanceToPoint(const boost::shared_ptr<GeomAPI_Pnt2d>& thePoint)
+  virtual double distanceToPoint(const std::shared_ptr<GeomAPI_Pnt2d>& thePoint)
   {
     return 0;
   }
   ;
 
   /// Converts a 2D sketch space point into point in 3D space
-  SKETCHPLUGIN_EXPORT boost::shared_ptr<GeomAPI_Pnt> to3D(const double theX, const double theY);
+  SKETCHPLUGIN_EXPORT std::shared_ptr<GeomAPI_Pnt> to3D(const double theX, const double theY);
 
   /// Returns true if this feature must be displayed in the history (top level of Part tree)
   SKETCHPLUGIN_EXPORT virtual bool isInHistory()
@@ -107,20 +104,24 @@ class SketchPlugin_Sketch : public ModelAPI_CompositeFeature, public GeomAPI_IPr
   SketchPlugin_Sketch();
 
   /// Returns the basis plane for the sketch
-  boost::shared_ptr<GeomAPI_Pln> plane();
+  std::shared_ptr<GeomAPI_Pln> plane();
 
-  virtual AISObjectPtr getAISObject(AISObjectPtr thePrevious);
+  //virtual AISObjectPtr getAISObject(AISObjectPtr thePrevious);
 
   /// removes also all sub-sketch elements
   SKETCHPLUGIN_EXPORT virtual void erase();
 
-  SKETCHPLUGIN_EXPORT virtual boost::shared_ptr<ModelAPI_Feature> addFeature(std::string theID);
+  /// appends a feature to the sketch sub-elements container
+  SKETCHPLUGIN_EXPORT virtual std::shared_ptr<ModelAPI_Feature> addFeature(std::string theID);
+
+  /// Just to synchronise the container of sub-features
+  virtual void removeFeature(std::shared_ptr<ModelAPI_Feature> theFeature);
 
   /// Returns the number of sub-elements
   SKETCHPLUGIN_EXPORT virtual int numberOfSubs() const;
 
   /// Returns the sub-feature by zero-base index
-  SKETCHPLUGIN_EXPORT virtual boost::shared_ptr<ModelAPI_Feature> 
+  SKETCHPLUGIN_EXPORT virtual std::shared_ptr<ModelAPI_Feature> 
     subFeature(const int theIndex) const;
 
   /// Returns the sub-feature unique identifier in this composite feature by zero-base index
@@ -133,18 +134,10 @@ class SketchPlugin_Sketch : public ModelAPI_CompositeFeature, public GeomAPI_IPr
   SKETCHPLUGIN_EXPORT virtual bool isPersistentResult() {return false;}
 
   /// Returns the point projected into the sketch plane
-  boost::shared_ptr<GeomAPI_Pnt2d> to2D(const boost::shared_ptr<GeomAPI_Pnt>& thePnt);
+  std::shared_ptr<GeomAPI_Pnt2d> to2D(const std::shared_ptr<GeomAPI_Pnt>& thePnt);
 
-  SKETCHPLUGIN_EXPORT virtual void attributeChanged();
+  SKETCHPLUGIN_EXPORT virtual void attributeChanged(const std::string& theID);
 protected:
-  /// Creates a plane and append it to the list
-  /// \param theX the X normal value
-  /// \param theY the Y normal value
-  /// \param theZ the Z normal value
-  /// \param theShapes the list of result shapes
-  //void addPlane(double theX, double theY, double theZ,
-  //              std::list<boost::shared_ptr<GeomAPI_Shape> >& theShapes) const;
-
   /// Checks whether the plane is set in the sketch.
   /// \returns the boolean state
   bool isPlaneSet();