From 7270446ff9feaf88a60f859dd37db2e9f3932a35 Mon Sep 17 00:00:00 2001 From: Abdullah Tahiri Date: Fri, 15 Jun 2018 16:12:43 +0200 Subject: [PATCH] GCS: Extension of ConstraintEqual to allow for a proportionality factor --- src/Mod/Sketcher/App/planegcs/Constraints.cpp | 5 +++-- src/Mod/Sketcher/App/planegcs/Constraints.h | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Mod/Sketcher/App/planegcs/Constraints.cpp b/src/Mod/Sketcher/App/planegcs/Constraints.cpp index 4152400d9e..2ee3d60325 100644 --- a/src/Mod/Sketcher/App/planegcs/Constraints.cpp +++ b/src/Mod/Sketcher/App/planegcs/Constraints.cpp @@ -97,8 +97,9 @@ int Constraint::findParamInPvec(double *param) } // Equal -ConstraintEqual::ConstraintEqual(double *p1, double *p2) +ConstraintEqual::ConstraintEqual(double *p1, double *p2, double p1p2ratio) { + ratio = p1p2ratio; pvec.push_back(p1); pvec.push_back(p2); origpvec = pvec; @@ -117,7 +118,7 @@ void ConstraintEqual::rescale(double coef) double ConstraintEqual::error() { - return scale * (*param1() - *param2()); + return scale * (*param1() - ratio *(*param2())); } double ConstraintEqual::grad(double *param) diff --git a/src/Mod/Sketcher/App/planegcs/Constraints.h b/src/Mod/Sketcher/App/planegcs/Constraints.h index 55437b9af3..02020651f9 100644 --- a/src/Mod/Sketcher/App/planegcs/Constraints.h +++ b/src/Mod/Sketcher/App/planegcs/Constraints.h @@ -131,10 +131,11 @@ namespace GCS class ConstraintEqual : public Constraint { private: + double ratio; inline double* param1() { return pvec[0]; } inline double* param2() { return pvec[1]; } public: - ConstraintEqual(double *p1, double *p2); + ConstraintEqual(double *p1, double *p2, double p1p2ratio=1.0); virtual ConstraintType getTypeId(); virtual void rescale(double coef=1.); virtual double error();