X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSketchSolver%2FSketchSolver_ConstraintMultiTranslation.cpp;h=4f1741e7662916798ecae0c844f21434d02118ed;hb=4f565b2204d3fba046aa8c851abada2a5a17bf6c;hp=dd740003a3654babe6ea50769994edfa856991f8;hpb=fd7266e083c3fb837b8b195b1db746fdbd7b2be8;p=modules%2Fshaper.git diff --git a/src/SketchSolver/SketchSolver_ConstraintMultiTranslation.cpp b/src/SketchSolver/SketchSolver_ConstraintMultiTranslation.cpp index dd740003a..4f1741e76 100644 --- a/src/SketchSolver/SketchSolver_ConstraintMultiTranslation.cpp +++ b/src/SketchSolver/SketchSolver_ConstraintMultiTranslation.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2014-20xx CEA/DEN, EDF R&D + #include #include #include @@ -60,7 +62,8 @@ void SketchSolver_ConstraintMultiTranslation::process() std::list aNewConstraints = aBuilder->createConstraint(myBaseConstraint, myGroupID, mySketchID, myType, 0.0, aFullValue, aStartPoint, aEndPoint, std::list(1, *anEntIt)); - aTransConstraints.insert(aTransConstraints.end(), aNewConstraints.begin(), aNewConstraints.end()); + aTransConstraints.insert(aTransConstraints.end(), + aNewConstraints.begin(), aNewConstraints.end()); } myStorage->addConstraint(myBaseConstraint, aTransConstraints); @@ -111,7 +114,8 @@ void SketchSolver_ConstraintMultiTranslation::updateLocal() aSLast = aConstraintEntities.end(); EntityWrapperPtr aStartEntity = *aSIt++; if (aStartPointChanged) { - AttributePtr aStartPointAttr = aData->attribute(SketchPlugin_MultiTranslation::START_POINT_ID()); + AttributePtr aStartPointAttr = + aData->attribute(SketchPlugin_MultiTranslation::START_POINT_ID()); myStorage->update(aStartPointAttr); aStartEntity = myStorage->entity(aStartPointAttr); } @@ -119,7 +123,8 @@ void SketchSolver_ConstraintMultiTranslation::updateLocal() EntityWrapperPtr anEndEntity = *aSIt++; if (anEndPointChanged) { - AttributePtr anEndPointAttr = aData->attribute(SketchPlugin_MultiTranslation::END_POINT_ID()); + AttributePtr anEndPointAttr = + aData->attribute(SketchPlugin_MultiTranslation::END_POINT_ID()); myStorage->update(anEndPointAttr); anEndEntity = myStorage->entity(anEndPointAttr); } @@ -148,9 +153,15 @@ void SketchSolver_ConstraintMultiTranslation::adjustConstraint() EntityWrapperPtr aEnd = myStorage->entity( myBaseConstraint->attribute(SketchPlugin_MultiTranslation::END_POINT_ID())); std::list aEndParams = aEnd->parameters(); + myDelta[0] = aEndParams.front()->value() - aStartParams.front()->value(); myDelta[1] = aEndParams.back()->value() - aStartParams.back()->value(); + if (myIsFullValue && myNumberOfCopies > 0) { + myDelta[0] /= myNumberOfCopies; + myDelta[1] /= myNumberOfCopies; + } + SketchSolver_ConstraintMulti::adjustConstraint(); }