X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSketchSolver%2FSketchSolver_Builder.cpp;h=718ea18cacc6bdb7ccc6d2ef6f50f170faea00ef;hb=4f565b2204d3fba046aa8c851abada2a5a17bf6c;hp=ff34136493468ad554df9d61b17ed0fba4badf95;hpb=d41ac12929f019bc1cd679de4610592f85dacf3d;p=modules%2Fshaper.git diff --git a/src/SketchSolver/SketchSolver_Builder.cpp b/src/SketchSolver/SketchSolver_Builder.cpp index ff3413649..718ea18ca 100644 --- a/src/SketchSolver/SketchSolver_Builder.cpp +++ b/src/SketchSolver/SketchSolver_Builder.cpp @@ -8,10 +8,13 @@ #include #include #include +#include #include #include #include +#include #include +#include #include #include #include @@ -19,7 +22,7 @@ #include #ifdef _DEBUG -#include +#include #include #include #include @@ -27,9 +30,11 @@ #include #include +#include #include #include #include +#include #include #include #include @@ -56,7 +61,8 @@ SolverConstraintPtr SketchSolver_Builder::createConstraint(ConstraintPtr theCons ResultConstructionPtr aRC = std::dynamic_pointer_cast(aRefAttr->object()); if (!aRC) - Events_Error::send(SketchSolver_Error::NEED_OBJECT_NOT_FEATURE(), this); + Events_InfoMessage("SketchSolver_Builder", + SketchSolver_Error::NEED_OBJECT_NOT_FEATURE(), this).send(); } continue; } @@ -68,7 +74,8 @@ SolverConstraintPtr SketchSolver_Builder::createConstraint(ConstraintPtr theCons ResultConstructionPtr aRC = std::dynamic_pointer_cast(*aListIter); if (*aListIter && !aRC) - Events_Error::send(SketchSolver_Error::NEED_OBJECT_NOT_FEATURE(), this); + Events_InfoMessage("SketchSolver_Builder", + SketchSolver_Error::NEED_OBJECT_NOT_FEATURE(), this).send(); } } } @@ -76,12 +83,16 @@ SolverConstraintPtr SketchSolver_Builder::createConstraint(ConstraintPtr theCons if (theConstraint->getKind() == SketchPlugin_ConstraintCoincidence::ID()) { return SolverConstraintPtr(new SketchSolver_ConstraintCoincidence(theConstraint)); + } else if (theConstraint->getKind() == SketchPlugin_ConstraintCollinear::ID()) { + return SolverConstraintPtr(new SketchSolver_ConstraintCollinear(theConstraint)); } else if (theConstraint->getKind() == SketchPlugin_ConstraintDistance::ID()) { return SolverConstraintPtr(new SketchSolver_ConstraintDistance(theConstraint)); } else if (theConstraint->getKind() == SketchPlugin_ConstraintEqual::ID()) { return SolverConstraintPtr(new SketchSolver_ConstraintEqual(theConstraint)); } else if (theConstraint->getKind() == SketchPlugin_ConstraintLength::ID()) { return SolverConstraintPtr(new SketchSolver_ConstraintLength(theConstraint)); + } else if (theConstraint->getKind() == SketchPlugin_ConstraintMiddle::ID()) { + return SolverConstraintPtr(new SketchSolver_ConstraintMiddle(theConstraint)); } else if (theConstraint->getKind() == SketchPlugin_ConstraintMirror::ID()) { return SolverConstraintPtr(new SketchSolver_ConstraintMirror(theConstraint)); } else if (theConstraint->getKind() == SketchPlugin_ConstraintTangent::ID()) { @@ -107,6 +118,14 @@ SolverConstraintPtr SketchSolver_Builder::createFixedConstraint(FeaturePtr theFi return SolverConstraintPtr(new SketchSolver_ConstraintFixed(theFixedFeature)); } +SolverConstraintPtr SketchSolver_Builder::createFixedArcRadiusConstraint(FeaturePtr theArc) const +{ + DataPtr aData = theArc->data(); + if (!aData || !aData->isValid()) + return SolverConstraintPtr(); + return SolverConstraintPtr(new SketchSolver_ConstraintFixedArcRadius(theArc)); +} + SolverConstraintPtr SketchSolver_Builder::createMovementConstraint(FeaturePtr theFixedFeature) const { DataPtr aData = theFixedFeature->data();