X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSketchPlugin%2FSketchPlugin_Plugin.cpp;h=07768577649ec2cd8d3a8c974c111350f987817e;hb=e2d663d27bdf897cebc9e5f0468214d531a57e3d;hp=bbbbd878e55ae9b791ddae879d7c0b9981293837;hpb=55ad86799133b4560ed637387201406170a52248;p=modules%2Fshaper.git diff --git a/src/SketchPlugin/SketchPlugin_Plugin.cpp b/src/SketchPlugin/SketchPlugin_Plugin.cpp index bbbbd878e..077685776 100644 --- a/src/SketchPlugin/SketchPlugin_Plugin.cpp +++ b/src/SketchPlugin/SketchPlugin_Plugin.cpp @@ -6,52 +6,89 @@ #include "SketchPlugin_Arc.h" #include "SketchPlugin_ConstraintCoincidence.h" #include "SketchPlugin_ConstraintDistance.h" -#include "SketchPlugin_ConstraintDiameter.h" +#include "SketchPlugin_ConstraintLength.h" #include "SketchPlugin_ConstraintParallel.h" #include "SketchPlugin_ConstraintPerpendicular.h" -#include +#include "SketchPlugin_ConstraintRadius.h" +#include "SketchPlugin_ConstraintRigid.h" +#include "SketchPlugin_Validators.h" +#include "SketchPlugin_ResultValidators.h" +#include #include +#include + +#include using namespace std; // the only created instance of this plugin -static SketchPlugin_Plugin* MY_INSTANCE = new SketchPlugin_Plugin(); +static SketchPlugin_Plugin* MY_SKETCH_INSTANCE = new SketchPlugin_Plugin(); -SketchPlugin_Plugin::SketchPlugin_Plugin() +SketchPlugin_Plugin::SketchPlugin_Plugin() { + SessionPtr aMgr = ModelAPI_Session::get(); + ModelAPI_ValidatorsFactory* aFactory = aMgr->validators(); + aFactory->registerValidator("SketchPlugin_DistanceAttr", + new SketchPlugin_DistanceAttrValidator); + aFactory->registerValidator("SketchPlugin_DifferentObjects", + new SketchPlugin_DifferentObjectsValidator); + aFactory->registerValidator("SketchPlugin_ResultPoint", new SketchPlugin_ResultPointValidator); + aFactory->registerValidator("SketchPlugin_ResultLine", new SketchPlugin_ResultLineValidator); + aFactory->registerValidator("SketchPlugin_ResultArc", new SketchPlugin_ResultArcValidator); + // register this plugin - ModelAPI_PluginManager::get()->registerPlugin(this); + ModelAPI_Session::get()->registerPlugin(this); + + // register sketcher properties + Config_PropManager::registerProp("Sketch planes", "planes_color", "Color", Config_Prop::Color, + SKETCH_PLANE_COLOR); + Config_PropManager::registerProp("Sketch planes", "planes_size", "Size", Config_Prop::Double, + PLANE_SIZE); + Config_PropManager::registerProp("Sketch planes", "planes_thickness", "Thickness", + Config_Prop::Integer, SKETCH_WIDTH); + + Config_PropManager::registerProp("Visualization", "parallel_color", "Parallel constraint color", + Config_Prop::Color, PARALLEL_COLOR); + Config_PropManager::registerProp("Visualization", "perpendicular_color", + "Perpendicular constraint color", Config_Prop::Color, + PERPENDICULAR_COLOR); + Config_PropManager::registerProp("Visualization", "distance_color", "Distance color", + Config_Prop::Color, DISTANCE_COLOR); + Config_PropManager::registerProp("Visualization", "length_color", "Length color", + Config_Prop::Color, LENGTH_COLOR); + Config_PropManager::registerProp("Visualization", "radius_color", "Radius color", + Config_Prop::Color, RADIUS_COLOR); + Config_PropManager::registerProp("Visualization", "fixing_color", "Fixing color", + Config_Prop::Color, FIXING_COLOR); } -boost::shared_ptr SketchPlugin_Plugin::createFeature(string theFeatureID) +FeaturePtr SketchPlugin_Plugin::createFeature(string theFeatureID) { - if (theFeatureID == "Sketch") { - return boost::shared_ptr(new SketchPlugin_Sketch); - } - else if (theFeatureID == "SketchPoint") { - return boost::shared_ptr(new SketchPlugin_Point); - } - else if (theFeatureID == "SketchLine") { - return boost::shared_ptr(new SketchPlugin_Line); - } - else if (theFeatureID == "SketchCircle") { - return boost::shared_ptr(new SketchPlugin_Circle); - } - else if (theFeatureID == "SketchConstraintCoincidence") { - return boost::shared_ptr(new SketchPlugin_ConstraintCoincidence); - } - else if (theFeatureID == "SketchConstraintDistance") { - return boost::shared_ptr(new SketchPlugin_ConstraintDistance); - } - else if (theFeatureID == "SketchConstraintDiameter") { - return boost::shared_ptr(new SketchPlugin_ConstraintDiameter); - } - else if (theFeatureID == "SketchConstraintParallel") { - return boost::shared_ptr(new SketchPlugin_ConstraintParallel); - } - else if (theFeatureID == "SketchConstraintPerpendicular") { - return boost::shared_ptr(new SketchPlugin_ConstraintPerpendicular); + if (theFeatureID == SketchPlugin_Sketch::ID()) { + return FeaturePtr(new SketchPlugin_Sketch); + } else if (theFeatureID == SketchPlugin_Point::ID()) { + return FeaturePtr(new SketchPlugin_Point); + } else if (theFeatureID == SketchPlugin_Line::ID()) { + return FeaturePtr(new SketchPlugin_Line); + } else if (theFeatureID == SketchPlugin_Circle::ID()) { + return FeaturePtr(new SketchPlugin_Circle); + } else if (theFeatureID == SketchPlugin_Arc::ID()) { + return FeaturePtr(new SketchPlugin_Arc); + } else if (theFeatureID == SketchPlugin_ConstraintCoincidence::ID()) { + return FeaturePtr(new SketchPlugin_ConstraintCoincidence); + } else if (theFeatureID == SketchPlugin_ConstraintDistance::ID()) { + return FeaturePtr(new SketchPlugin_ConstraintDistance); + } else if (theFeatureID == SketchPlugin_ConstraintLength::ID()) { + return FeaturePtr(new SketchPlugin_ConstraintLength); + } else if (theFeatureID == SketchPlugin_ConstraintParallel::ID()) { + return FeaturePtr(new SketchPlugin_ConstraintParallel); + } else if (theFeatureID == SketchPlugin_ConstraintPerpendicular::ID()) { + return FeaturePtr(new SketchPlugin_ConstraintPerpendicular); + } else if (theFeatureID == SketchPlugin_ConstraintRadius::ID()) { + return FeaturePtr(new SketchPlugin_ConstraintRadius); + } else if (theFeatureID == SketchPlugin_ConstraintRigid::ID()) { + return FeaturePtr(new SketchPlugin_ConstraintRigid); } // feature of such kind is not found - return boost::shared_ptr(); + return FeaturePtr(); }