From: azv Date: Tue, 31 May 2016 05:32:54 +0000 (+0300) Subject: Revert unsuitable changes in the Middle point constraint X-Git-Tag: V_2.3.1~24 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=4ed131ce78969b71c4ba5b44bda8cc3d5aee99a6;p=modules%2Fshaper.git Revert unsuitable changes in the Middle point constraint --- diff --git a/src/SketchSolver/SketchSolver_ConstraintMiddle.cpp b/src/SketchSolver/SketchSolver_ConstraintMiddle.cpp index 5c1a98604..545fa4687 100644 --- a/src/SketchSolver/SketchSolver_ConstraintMiddle.cpp +++ b/src/SketchSolver/SketchSolver_ConstraintMiddle.cpp @@ -44,31 +44,3 @@ void SketchSolver_ConstraintMiddle::notifyCoincidenceChanged( process(); } } - -void SketchSolver_ConstraintMiddle::adjustConstraint() -{ - BuilderPtr aBuilder = SketchSolver_Manager::instance()->builder(); - - ConstraintWrapperPtr aConstraint = myStorage->constraint(myBaseConstraint).front(); - const std::list& aSubs = aConstraint->entities(); - std::shared_ptr aMidPoint, aStart, aEnd; - std::list::const_iterator aSIt = aSubs.begin(); - for (; aSIt != aSubs.end(); ++aSIt) { - if ((*aSIt)->type() == ENTITY_POINT) - aMidPoint = aBuilder->point(*aSIt); - else if ((*aSIt)->type() == ENTITY_LINE) { - const std::list& aLinePoints = (*aSIt)->subEntities(); - aStart = aBuilder->point(aLinePoints.front()); - aEnd = aBuilder->point(aLinePoints.back()); - } - } - - if (aMidPoint && aStart && aEnd) { - std::shared_ptr aMP = aMidPoint->xy(); - double aDot = aMP->decreased(aStart->xy())->dot(aMP->decreased(aEnd->xy())); - if (aDot > 0.0) { - aBuilder->adjustConstraint(aConstraint); - myStorage->addConstraint(myBaseConstraint, aConstraint); - } - } -} diff --git a/src/SketchSolver/SketchSolver_ConstraintMiddle.h b/src/SketchSolver/SketchSolver_ConstraintMiddle.h index fadcadab2..b86e714f5 100644 --- a/src/SketchSolver/SketchSolver_ConstraintMiddle.h +++ b/src/SketchSolver/SketchSolver_ConstraintMiddle.h @@ -23,10 +23,6 @@ public: /// \brief Notify constraint, that coincidence appears or removed virtual void notifyCoincidenceChanged(EntityWrapperPtr theCoincAttr1, EntityWrapperPtr theCoincAttr2); - -protected: - /// \brief This method is used in derived objects to check consistence of constraint. - virtual void adjustConstraint(); }; #endif diff --git a/src/SketchSolver/SolveSpaceSolver/SolveSpaceSolver_Builder.cpp b/src/SketchSolver/SolveSpaceSolver/SolveSpaceSolver_Builder.cpp index d5d039040..9792467c1 100644 --- a/src/SketchSolver/SolveSpaceSolver/SolveSpaceSolver_Builder.cpp +++ b/src/SketchSolver/SolveSpaceSolver/SolveSpaceSolver_Builder.cpp @@ -56,8 +56,6 @@ static void adjustAngle(ConstraintWrapperPtr theConstraint); static void adjustMirror(ConstraintWrapperPtr theConstraint); /// \brief Update a sign of the point-line distance constraint static void adjustPtLineDistance(ConstraintWrapperPtr theConstraint); -/// \brief Update point to be a middle of a line -static void adjustMiddlePoint(ConstraintWrapperPtr theConstraint); /// \brief Transform points to be symmetric regarding to the mirror line static void makeMirrorPoints(EntityWrapperPtr theOriginal, @@ -299,8 +297,6 @@ void SolveSpaceSolver_Builder::adjustConstraint(ConstraintWrapperPtr theConstrai adjustMirror(theConstraint); else if (aType == CONSTRAINT_PT_LINE_DISTANCE) adjustPtLineDistance(theConstraint); - else if (aType == CONSTRAINT_MIDDLE_POINT) - adjustMiddlePoint(theConstraint); } EntityWrapperPtr SolveSpaceSolver_Builder::createFeature( @@ -831,26 +827,3 @@ void adjustPtLineDistance(ConstraintWrapperPtr theConstraint) if (aPtLineVec->cross(aLineVec) * theConstraint->value() < 0.0) theConstraint->setValue(theConstraint->value() * (-1.0)); } - -void adjustMiddlePoint(ConstraintWrapperPtr theConstraint) -{ - BuilderPtr aBuilder = SolveSpaceSolver_Builder::getInstance(); - - const std::list& aSubs = theConstraint->entities(); - std::shared_ptr aStart, aEnd; - std::shared_ptr aMidPoint; - std::list::const_iterator aSIt = aSubs.begin(); - for (; aSIt != aSubs.end(); ++aSIt) { - if ((*aSIt)->type() == ENTITY_POINT) - aMidPoint = std::dynamic_pointer_cast((*aSIt)->baseAttribute()); - else if ((*aSIt)->type() == ENTITY_LINE) { - const std::list& aLinePoints = (*aSIt)->subEntities(); - aStart = aBuilder->point(aLinePoints.front()); - aEnd = aBuilder->point(aLinePoints.back()); - } - } - if (aMidPoint && aStart && aEnd) { - std::shared_ptr aMid = aStart->xy()->added(aEnd->xy())->multiplied(0.5); - aMidPoint->setValue(aMid->x(), aMid->y()); - } -}