X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSketchPlugin%2FSketchPlugin_Feature.h;h=ca61e4b97b789bd8bc13bca99e758d574ed0a45c;hb=2b0abbe05a15767d4952f2a36b3e9df3bde15c3e;hp=486b8495ff102786dac42918dfcd357486dfd64a;hpb=0fcae5b2e143e67306603d26f0b5e01cbe33d2bb;p=modules%2Fshaper.git diff --git a/src/SketchPlugin/SketchPlugin_Feature.h b/src/SketchPlugin/SketchPlugin_Feature.h index 486b8495f..ca61e4b97 100644 --- a/src/SketchPlugin/SketchPlugin_Feature.h +++ b/src/SketchPlugin/SketchPlugin_Feature.h @@ -1,3 +1,5 @@ +// Copyright (C) 2014-20xx CEA/DEN, EDF R&D --> + // File: SketchPlugin_Feature.h // Created: 27 Mar 2014 // Author: Mikhail PONIKAROV @@ -11,6 +13,7 @@ #include #include #include +#include class SketchPlugin_Sketch; class GeomAPI_Pnt2d; @@ -21,13 +24,9 @@ class Handle_AIS_InteractiveObject; * \brief Feature for creation of the new feature in PartSet. This is an abstract class to give * an interface to create the sketch feature preview. */ -class SketchPlugin_Feature : public ModelAPI_Feature +class SketchPlugin_Feature : public ModelAPI_Feature, public GeomAPI_ICustomPrs { public: - /// Simple creation of interactive object by the result of the object - static AISObjectPtr simpleAISObject(boost::shared_ptr theRes, - AISObjectPtr thePrevious); - /// Reference to the external edge or vertex as a AttributeSelection inline static const std::string& EXTERNAL_ID() { @@ -48,7 +47,7 @@ class SketchPlugin_Feature : public ModelAPI_Feature /// Return the distance between the feature and the point /// \param thePoint the point - virtual double distanceToPoint(const boost::shared_ptr& thePoint) = 0; + virtual double distanceToPoint(const std::shared_ptr& thePoint) = 0; /// Construction result is allways recomuted on the fly SKETCHPLUGIN_EXPORT virtual bool isPersistentResult() {return false;} @@ -64,6 +63,17 @@ class SketchPlugin_Feature : public ModelAPI_Feature return false; } + /// Customize presentation of the feature + virtual void customisePresentation(AISObjectPtr thePrs) + { + // if this is an edge + if (thePrs->getShapeType() == 6) + thePrs->setWidth(3); + // if this is a vertex + //else if (thePrs->getShapeType() == 7) + // thePrs->setPointMarker(6, 2.); + } + /// Returns the sketch of this feature SketchPlugin_Sketch* sketch(); protected: @@ -78,7 +88,7 @@ protected: friend class SketchPlugin_Sketch; private: - boost::shared_ptr myPreview; ///< the preview shape + std::shared_ptr myPreview; ///< the preview shape SketchPlugin_Sketch* mySketch; /// sketch that contains this feature };