From: azv Date: Fri, 31 Mar 2017 08:18:58 +0000 (+0300) Subject: Issue #2074: Constraint on mirrored segment X-Git-Tag: V_2.7.0~118 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=921377a696e24a77acb49b47fbf62828ddbe22ac;p=modules%2Fshaper.git Issue #2074: Constraint on mirrored segment Check list of conflicting constraint even if solver reports about Success calculation. --- diff --git a/src/SketchSolver/PlaneGCSSolver/PlaneGCSSolver_Solver.cpp b/src/SketchSolver/PlaneGCSSolver/PlaneGCSSolver_Solver.cpp index 8d15b1680..47d783dce 100644 --- a/src/SketchSolver/PlaneGCSSolver/PlaneGCSSolver_Solver.cpp +++ b/src/SketchSolver/PlaneGCSSolver/PlaneGCSSolver_Solver.cpp @@ -87,13 +87,12 @@ PlaneGCSSolver_Solver::SolveStatus PlaneGCSSolver_Solver::solve() GCS::SolveStatus aResult = (GCS::SolveStatus)myEquationSystem->solve(myParameters); Events_LongOp::end(this); - GCS::VEC_I aRedundant; - myEquationSystem->getRedundant(aRedundant); - if (!aRedundant.empty()) { - collectConflicting(); - if (!myConflictingIDs.empty()) - aResult = GCS::Failed; - } + // collect information about conflicting constraints every time, + // sometimes solver reports about succeeded recalculation but has conflicting constraints + // (for example, apply horizontal constraint for a copied feature) + collectConflicting(); + if (!myConflictingIDs.empty()) + aResult = GCS::Failed; SolveStatus aStatus; if (aResult == GCS::Failed)