X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSketchPlugin%2FSketchPlugin_Plugin.cpp;h=490a1d77d7a7d38c256e10ae5994083daef97374;hb=e8b0963c64ad81be042fffe660ce874ae4d3abd5;hp=a392b6ef74c1536958545b24cd07f46460f5fbce;hpb=cff305b5e67d360123748369da91be12b93a2d11;p=modules%2Fshaper.git diff --git a/src/SketchPlugin/SketchPlugin_Plugin.cpp b/src/SketchPlugin/SketchPlugin_Plugin.cpp index a392b6ef7..490a1d77d 100644 --- a/src/SketchPlugin/SketchPlugin_Plugin.cpp +++ b/src/SketchPlugin/SketchPlugin_Plugin.cpp @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2017 CEA/DEN, EDF R&D +// Copyright (C) 2014-2020 CEA/DEN, EDF R&D // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -12,10 +12,9 @@ // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or -// email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include @@ -25,9 +24,12 @@ #include #include #include +#include +#include #include #include #include +#include #include #include #include @@ -45,6 +47,7 @@ #include #include #include +#include #include #include #include @@ -54,6 +57,10 @@ #include #include #include +#include +#include +#include +#include #include @@ -77,7 +84,7 @@ #define SKETCH_ENTITY_COLOR "225,0,0" #define SKETCH_EXTERNAL_COLOR "170,0,225" #define SKETCH_AUXILIARY_COLOR "0,85,0" -#define SKETCH_OVERCONSTRAINT_COLOR "0,0,0" +#define SKETCH_OVERCONSTRAINT_COLOR "255,0,0" #define SKETCH_FULLY_CONSTRAINED_COLOR "0,150,0" //#define SET_PLANES_COLOR_IN_PREFERENCES @@ -95,6 +102,8 @@ SketchPlugin_Plugin::SketchPlugin_Plugin() new SketchPlugin_ExternalValidator); aFactory->registerValidator("SketchPlugin_TangentAttr", new SketchPlugin_TangentAttrValidator); + aFactory->registerValidator("SketchPlugin_PerpendicularAttr", + new SketchPlugin_PerpendicularAttrValidator); aFactory->registerValidator("SketchPlugin_NotFixed", new SketchPlugin_NotFixedValidator); aFactory->registerValidator("SketchPlugin_EqualAttr", @@ -117,6 +126,8 @@ SketchPlugin_Plugin::SketchPlugin_Plugin() new SketchPlugin_MiddlePointAttrValidator); aFactory->registerValidator("SketchPlugin_ArcTangentPoint", new SketchPlugin_ArcTangentPointValidator); + aFactory->registerValidator("SketchPlugin_ArcTransversalPoint", + new SketchPlugin_ArcTransversalPointValidator); aFactory->registerValidator("SketchPlugin_IntersectionValidator", new SketchPlugin_IntersectionValidator); aFactory->registerValidator("SketchPlugin_ProjectionValidator", @@ -140,6 +151,8 @@ SketchPlugin_Plugin::SketchPlugin_Plugin() new SketchPlugin_SketchFeatureValidator); aFactory->registerValidator("SketchPlugin_MultiRotationAngleValidator", new SketchPlugin_MultiRotationAngleValidator); + aFactory->registerValidator("SketchPlugin_BSplineValidator", + new SketchPlugin_BSplineValidator); // register this plugin ModelAPI_Session::get()->registerPlugin(this); @@ -156,10 +169,6 @@ SketchPlugin_Plugin::SketchPlugin_Plugin() "Sketch auxiliary entity color", Config_Prop::Color, SKETCH_AUXILIARY_COLOR); - Config_PropManager::registerProp("Visualization", "sketch_dimension_color", - "Sketch dimension color", - Config_Prop::Color, SKETCH_DIMENSION_COLOR); - Config_PropManager::registerProp("Visualization", "sketch_overconstraint_color", "Sketch overconstraint color", Config_Prop::Color, SKETCH_OVERCONSTRAINT_COLOR); @@ -168,6 +177,10 @@ SketchPlugin_Plugin::SketchPlugin_Plugin() "Sketch fully constrained color", Config_Prop::Color, SKETCH_FULLY_CONSTRAINED_COLOR); + Config_PropManager::registerProp("Visualization", "sketch_line_width", + "Sketch line width", + Config_Prop::IntSpin, "3"); + // register sketcher properties #ifdef SET_PLANES_COLOR_IN_PREFERENCES Config_PropManager::registerProp("Visualization", "yz_plane_color", "YZ plane color", @@ -178,18 +191,6 @@ SketchPlugin_Plugin::SketchPlugin_Plugin() Config_Prop::Color, XY_PLANE_COLOR); #endif - Config_PropManager::registerProp(SKETCH_TAB_NAME, "dimension_font", "Dimension font", - Config_Prop::String, "Times-bold"); - std::ostringstream aStream; - aStream << SketcherPrs_Tools::getDefaultTextHeight(); - - Config_PropManager::registerProp(SKETCH_TAB_NAME, "dimension_value_size", - "Dimension value size", Config_Prop::IntSpin, aStream.str()); - aStream.str(""); - aStream.clear(); - aStream << SketcherPrs_Tools::getDefaultArrowSize(); - Config_PropManager::registerProp(SKETCH_TAB_NAME, "dimension_arrow_size", - "Dimension arrow size", Config_Prop::IntSpin, aStream.str()); } FeaturePtr SketchPlugin_Plugin::createFeature(std::string theFeatureID) @@ -206,10 +207,16 @@ FeaturePtr SketchPlugin_Plugin::createFeature(std::string theFeatureID) return FeaturePtr(new SketchPlugin_Circle); } else if (theFeatureID == SketchPlugin_Arc::ID()) { return FeaturePtr(new SketchPlugin_Arc); + } else if (theFeatureID == SketchPlugin_BSpline::ID()) { + return FeaturePtr(new SketchPlugin_BSpline); + } else if (theFeatureID == SketchPlugin_BSplinePeriodic::ID()) { + return FeaturePtr(new SketchPlugin_BSplinePeriodic); } else if (theFeatureID == SketchPlugin_Projection::ID()) { return FeaturePtr(new SketchPlugin_Projection); } else if (theFeatureID == SketchPlugin_ConstraintCoincidence::ID()) { return FeaturePtr(new SketchPlugin_ConstraintCoincidence); + } else if (theFeatureID == SketchPlugin_ConstraintCoincidenceInternal::ID()) { + return FeaturePtr(new SketchPlugin_ConstraintCoincidenceInternal); } else if (theFeatureID == SketchPlugin_ConstraintCollinear::ID()) { return FeaturePtr(new SketchPlugin_ConstraintCollinear); } else if (theFeatureID == SketchPlugin_ConstraintDistance::ID()) { @@ -254,17 +261,30 @@ FeaturePtr SketchPlugin_Plugin::createFeature(std::string theFeatureID) return FeaturePtr(new SketchPlugin_Trim); } else if (theFeatureID == SketchPlugin_MacroArc::ID()) { return FeaturePtr(new SketchPlugin_MacroArc); + } else if (theFeatureID == SketchPlugin_MacroBSpline::ID()) { + return FeaturePtr(new SketchPlugin_MacroBSpline); + } else if (theFeatureID == SketchPlugin_MacroBSplinePeriodic::ID()) { + return FeaturePtr(new SketchPlugin_MacroBSplinePeriodic); } else if (theFeatureID == SketchPlugin_MacroCircle::ID()) { return FeaturePtr(new SketchPlugin_MacroCircle); } else if (theFeatureID == SketchPlugin_Ellipse::ID()) { return FeaturePtr(new SketchPlugin_Ellipse); } else if (theFeatureID == SketchPlugin_MacroEllipse::ID()) { return FeaturePtr(new SketchPlugin_MacroEllipse); + } else if (theFeatureID == SketchPlugin_EllipticArc::ID()) { + return FeaturePtr(new SketchPlugin_EllipticArc); + } else if (theFeatureID == SketchPlugin_MacroEllipticArc::ID()) { + return FeaturePtr(new SketchPlugin_MacroEllipticArc); + } else if (theFeatureID == SketchPlugin_SketchDrawer::ID()) { + return FeaturePtr(new SketchPlugin_SketchDrawer); + } else if (theFeatureID == SketchPlugin_SketchCopy::ID()) { + return FeaturePtr(new SketchPlugin_SketchCopy); } // feature of such kind is not found return FeaturePtr(); } +// LCOV_EXCL_START void SketchPlugin_Plugin::processEvent(const std::shared_ptr& theMessage) { const Events_ID kRequestEvent = @@ -302,9 +322,13 @@ std::shared_ptr SketchPlugin_Plugin aMsg->setState(SketchPlugin_Line::ID(), aHasSketchPlane); aMsg->setState(SketchPlugin_Circle::ID(), aHasSketchPlane); aMsg->setState(SketchPlugin_Arc::ID(), aHasSketchPlane); + aMsg->setState(SketchPlugin_BSpline::ID(), aHasSketchPlane); + aMsg->setState(SketchPlugin_BSplinePeriodic::ID(), aHasSketchPlane); aMsg->setState(SketchPlugin_Ellipse::ID(), aHasSketchPlane); + aMsg->setState(SketchPlugin_EllipticArc::ID(), aHasSketchPlane); aMsg->setState(SketchPlugin_Projection::ID(), aHasSketchPlane); aMsg->setState(SketchPlugin_ConstraintCoincidence::ID(), aHasSketchPlane); + aMsg->setState(SketchPlugin_ConstraintCoincidenceInternal::ID(), aHasSketchPlane); aMsg->setState(SketchPlugin_ConstraintCollinear::ID(), aHasSketchPlane); aMsg->setState(SketchPlugin_ConstraintDistance::ID(), aHasSketchPlane); aMsg->setState(SketchPlugin_ConstraintLength::ID(), aHasSketchPlane); @@ -325,7 +349,11 @@ std::shared_ptr SketchPlugin_Plugin aMsg->setState(SketchPlugin_Split::ID(), aHasSketchPlane); aMsg->setState(SketchPlugin_Trim::ID(), aHasSketchPlane); aMsg->setState(SketchPlugin_MacroArc::ID(), aHasSketchPlane); + aMsg->setState(SketchPlugin_MacroBSpline::ID(), aHasSketchPlane); + aMsg->setState(SketchPlugin_MacroBSplinePeriodic::ID(), aHasSketchPlane); aMsg->setState(SketchPlugin_MacroCircle::ID(), aHasSketchPlane); + aMsg->setState(SketchPlugin_MacroEllipse::ID(), aHasSketchPlane); + aMsg->setState(SketchPlugin_MacroEllipticArc::ID(), aHasSketchPlane); aMsg->setState(SketchPlugin_ConstraintDistanceHorizontal::ID(), aHasSketchPlane); aMsg->setState(SketchPlugin_ConstraintDistanceVertical::ID(), aHasSketchPlane); // SketchRectangle is a python feature, so its ID is passed just as a string @@ -334,3 +362,4 @@ std::shared_ptr SketchPlugin_Plugin } return aMsg; } +// LCOV_EXCL_STOP