#include <ModelAPI_AttributeSelection.h>
#include <GeomAPI_ICustomPrs.h>
+#include <Config_PropManager.h>
+
+#define SKETCH_EDGE_COLOR "#ff0000"
+#define SKETCH_POINT_COLOR "#ff0000"
+#define SKETCH_EXTERNAL_EDGE_COLOR "#00ff00"
+
class SketchPlugin_Sketch;
class GeomAPI_Pnt2d;
class Handle_AIS_InteractiveObject;
/// Customize presentation of the feature
virtual void customisePresentation(AISObjectPtr thePrs)
{
+ std::vector<int> aRGB;
// if this is an edge
if (thePrs->getShapeType() == 6) {
thePrs->setWidth(3);
- if (isExternal())
- thePrs->setColor(0,255,0);
+ if (isExternal()) {
+ // Set color from preferences
+ aRGB = Config_PropManager::color("Visualization", "sketch_external_color",
+ SKETCH_EXTERNAL_EDGE_COLOR);
+ }
+ else {
+ // Set color from preferences
+ aRGB = Config_PropManager::color("Visualization", "sketch_edge_color",
+ SKETCH_EDGE_COLOR);
+ }
+ }
+ else if (thePrs->getShapeType() == 7) { // otherwise this is a vertex
+ // Set color from preferences
+ aRGB = Config_PropManager::color("Visualization", "sketch_point_color",
+ SKETCH_POINT_COLOR);
}
// if this is a vertex
//else if (thePrs->getShapeType() == 7)
// thePrs->setPointMarker(6, 2.);
+ if (!aRGB.empty())
+ thePrs->setColor(aRGB[0], aRGB[1], aRGB[2]);
}
- /// removes also all sub-sketch elements
- SKETCHPLUGIN_EXPORT virtual void erase()
- {
- /*SketchPlugin_Sketch* aSketch = sketch();
- if (aSketch)
- aSketch->removeFeature(this);
- */
- ModelAPI_Feature::erase();
- }
-
/// Returns the sketch of this feature
SketchPlugin_Sketch* sketch();
protected:
#include <GeomAPI_IPresentable.h>
#include <list>
+#define YZ_PLANE_COLOR "#ff0000"
+#define XZ_PLANE_COLOR "#00ff00"
+#define XY_PLANE_COLOR "#0000ff"
+
/**\class SketchPlugin_Sketch
* \ingroup Plugins
* \brief Feature for creation of the new part in PartSet.
/// appends a feature to the sketch sub-elements container
SKETCHPLUGIN_EXPORT virtual std::shared_ptr<ModelAPI_Feature> addFeature(std::string theID);
- /// appends a feature from the sketch sub-elements container
- SKETCHPLUGIN_EXPORT virtual void removeFeature(ModelAPI_Feature* theFeature);
+ /// 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;