X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSketchPlugin%2FSketchPlugin_Sketch.h;h=371943ec599254f9b1d520c90cf87404ffa41704;hb=8e193b0425317ba19a21a752accaaf59909f52b2;hp=a2b63388a83d7d4a75af49ae21cd2071671865e1;hpb=69be9f7dcd37595b9b98c9839c77105f2e704def;p=modules%2Fshaper.git diff --git a/src/SketchPlugin/SketchPlugin_Sketch.h b/src/SketchPlugin/SketchPlugin_Sketch.h index a2b63388a..371943ec5 100644 --- a/src/SketchPlugin/SketchPlugin_Sketch.h +++ b/src/SketchPlugin/SketchPlugin_Sketch.h @@ -7,11 +7,19 @@ #include "SketchPlugin.h" #include +#include +#include -#include - -/// part reference attribute -const std::string PART_ATTR_DOC_REF = "SketchDocument"; +/// Origin point of the sketcher in 3D space +const std::string SKETCH_ATTR_ORIGIN("Origin"); +/// Vector X inside of the sketch plane +const std::string SKETCH_ATTR_DIRX("DirX"); +/// Vector Y inside of the sketch plane +const std::string SKETCH_ATTR_DIRY("DirY"); +/// Vector Z, normal to the sketch plane +const std::string SKETCH_ATTR_NORM("Norm"); +/// All features of this sketch (list of references) +const std::string SKETCH_ATTR_FEATURES("Features"); /**\class SketchPlugin_Sketch * \ingroup DataModel @@ -35,10 +43,30 @@ public: SKETCHPLUGIN_EXPORT virtual void initAttributes(); /// Returns the sketch preview - SKETCHPLUGIN_EXPORT virtual const TopoDS_Shape& preview(); + SKETCHPLUGIN_EXPORT virtual const boost::shared_ptr& preview(); + + /// Adds sub-feature of the higher level feature (sub-element of the sketch) + /// \param theFeature sub-feature + SKETCHPLUGIN_EXPORT virtual const void addSub( + const boost::shared_ptr& theFeature); + + /// Converts a 2D sketch space point into point in 3D space + SKETCHPLUGIN_EXPORT boost::shared_ptr 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() {return true;} /// Use plugin manager for features creation SketchPlugin_Sketch(); +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 >& theShapes) const; }; #endif