#include "SketchPlugin.h"
#include "SketchPlugin_ConstraintBase.h"
-#include <SketchPlugin_Sketch.h>
+#include "SketchPlugin_Sketch.h"
+
+#include <GeomAPI_ICustomPrs.h>
+
#include <list>
class GeomDataAPI_Point2D;
-#define LENGTH_COLOR "#ff00ff"
-
/** \class SketchPlugin_ConstraintLength
* \ingroup Plugins
* \brief Feature for creation of a new constraint which defines a length of a line segment
* SketchPlugin_Constraint::VALUE() (length) and SketchPlugin_Constraint::ENTITY_A() (segment),
* SketchPlugin_Constraint::FLYOUT_VALUE_PNT() (distance of a constraints handle)
*/
-class SketchPlugin_ConstraintLength : public SketchPlugin_ConstraintBase
+class SketchPlugin_ConstraintLength : public SketchPlugin_ConstraintBase, public GeomAPI_ICustomPrs
{
public:
/// Length constraint kind
/// \param theID identifier of changed attribute
SKETCHPLUGIN_EXPORT virtual void attributeChanged(const std::string& theID);
+ /// Customize presentation of the feature
+ virtual bool customisePresentation(ResultPtr theResult, AISObjectPtr thePrs,
+ std::shared_ptr<GeomAPI_ICustomPrs> theDefaultPrs);
+
/// \brief Use plugin manager for features creation
SketchPlugin_ConstraintLength();
std::shared_ptr<GeomAPI_Pnt>& thePoint1, std::shared_ptr<GeomAPI_Pnt>& thePoint2,
std::shared_ptr<GeomDataAPI_Point2D>& theStartPoint,
std::shared_ptr<GeomDataAPI_Point2D>& theEndPoint);
+
+private:
+ bool myFlyoutUpdate; ///< to avoid cyclic dependencies on automatic updates of flyout point
};
#endif