#include <GCS.h>

Public Member Functions

int addConstraint (Constraint *constr)
 
int addConstraintAngleViaPoint (Curve &crv1, Curve &crv2, Point &p, double *angle, int tagId=0, bool driving=true)
 
int addConstraintArcDiameter (Arc &a, double *diameter, int tagId=0, bool driving=true)
 
int addConstraintArcOfEllipseRules (ArcOfEllipse &a, int tagId=0, bool driving=true)
 
int addConstraintArcOfHyperbolaRules (ArcOfHyperbola &a, int tagId=0, bool driving=true)
 
int addConstraintArcOfParabolaRules (ArcOfParabola &a, int tagId=0, bool driving=true)
 
int addConstraintArcRadius (Arc &a, double *radius, int tagId=0, bool driving=true)
 
int addConstraintArcRules (Arc &a, int tagId=0, bool driving=true)
 
int addConstraintCircleDiameter (Circle &c, double *diameter, int tagId=0, bool driving=true)
 
int addConstraintCircleRadius (Circle &c, double *radius, int tagId=0, bool driving=true)
 
int addConstraintCoordinateX (Point &p, double *x, int tagId=0, bool driving=true)
 
int addConstraintCoordinateY (Point &p, double *y, int tagId=0, bool driving=true)
 
int addConstraintCurveValue (Point &p, Curve &a, double *u, int tagId=0, bool driving=true)
 
int addConstraintDifference (double *param1, double *param2, double *difference, int tagId=0, bool driving=true)
 
int addConstraintEqual (double *param1, double *param2, int tagId=0, bool driving=true)
 
int addConstraintEqualFocus (ArcOfParabola &a1, ArcOfParabola &a2, int tagId=0, bool driving=true)
 
int addConstraintEqualLength (Line &l1, Line &l2, int tagId=0, bool driving=true)
 
int addConstraintEqualRadii (ArcOfHyperbola &a1, ArcOfHyperbola &a2, int tagId=0, bool driving=true)
 
int addConstraintEqualRadii (Ellipse &e1, Ellipse &e2, int tagId=0, bool driving=true)
 
int addConstraintEqualRadius (Arc &a1, Arc &a2, int tagId=0, bool driving=true)
 
int addConstraintEqualRadius (Circle &c1, Arc &a2, int tagId=0, bool driving=true)
 
int addConstraintEqualRadius (Circle &c1, Circle &c2, int tagId=0, bool driving=true)
 
int addConstraintHorizontal (Line &l, int tagId=0, bool driving=true)
 
int addConstraintHorizontal (Point &p1, Point &p2, int tagId=0, bool driving=true)
 
int addConstraintInternalAlignmentBSplineControlPoint (BSpline &b, Circle &c, int poleindex, int tag=0, bool driving=true)
 
int addConstraintInternalAlignmentEllipseFocus1 (Ellipse &e, Point &p1, int tagId=0, bool driving=true)
 
int addConstraintInternalAlignmentEllipseFocus2 (Ellipse &e, Point &p1, int tagId=0, bool driving=true)
 
int addConstraintInternalAlignmentEllipseMajorDiameter (Ellipse &e, Point &p1, Point &p2, int tagId=0, bool driving=true)
 
int addConstraintInternalAlignmentEllipseMinorDiameter (Ellipse &e, Point &p1, Point &p2, int tagId=0, bool driving=true)
 
int addConstraintInternalAlignmentHyperbolaFocus (Hyperbola &e, Point &p1, int tagId=0, bool driving=true)
 
int addConstraintInternalAlignmentHyperbolaMajorDiameter (Hyperbola &e, Point &p1, Point &p2, int tagId=0, bool driving=true)
 
int addConstraintInternalAlignmentHyperbolaMinorDiameter (Hyperbola &e, Point &p1, Point &p2, int tagId=0, bool driving=true)
 
int addConstraintInternalAlignmentParabolaFocus (Parabola &e, Point &p1, int tagId=0, bool driving=true)
 
int addConstraintInternalAlignmentPoint2Ellipse (Ellipse &e, Point &p1, InternalAlignmentType alignmentType, int tagId=0, bool driving=true)
 
int addConstraintInternalAlignmentPoint2Hyperbola (Hyperbola &e, Point &p1, InternalAlignmentType alignmentType, int tagId=0, bool driving=true)
 
int addConstraintL2LAngle (Line &l1, Line &l2, double *angle, int tagId=0, bool driving=true)
 
int addConstraintL2LAngle (Point &l1p1, Point &l1p2, Point &l2p1, Point &l2p2, double *angle, int tagId=0, bool driving=true)
 
int addConstraintMidpointOnLine (Line &l1, Line &l2, int tagId=0, bool driving=true)
 
int addConstraintMidpointOnLine (Point &l1p1, Point &l1p2, Point &l2p1, Point &l2p2, int tagId=0, bool driving=true)
 
int addConstraintP2LDistance (Point &p, Line &l, double *distance, int tagId=0, bool driving=true)
 
int addConstraintP2PAngle (Point &p1, Point &p2, double *angle, double incrAngle, int tagId=0, bool driving=true)
 
int addConstraintP2PAngle (Point &p1, Point &p2, double *angle, int tagId=0, bool driving=true)
 
int addConstraintP2PCoincident (Point &p1, Point &p2, int tagId=0, bool driving=true)
 
int addConstraintP2PDistance (Point &p1, Point &p2, double *distance, int tagId=0, bool driving=true)
 
int addConstraintP2PSymmetric (Point &p1, Point &p2, Line &l, int tagId=0, bool driving=true)
 
int addConstraintP2PSymmetric (Point &p1, Point &p2, Point &p, int tagId=0, bool driving=true)
 
int addConstraintParallel (Line &l1, Line &l2, int tagId=0, bool driving=true)
 
int addConstraintPerpendicular (Line &l1, Line &l2, int tagId=0, bool driving=true)
 
int addConstraintPerpendicular (Point &l1p1, Point &l1p2, Point &l2p1, Point &l2p2, int tagId=0, bool driving=true)
 
int addConstraintPerpendicularArc2Arc (Arc &a1, bool reverse1, Arc &a2, bool reverse2, int tagId=0, bool driving=true)
 
int addConstraintPerpendicularArc2Circle (Arc &a, Point &center, double *radius, int tagId=0, bool driving=true)
 
int addConstraintPerpendicularArc2Line (Arc &a, Point &p1, Point &p2, int tagId=0, bool driving=true)
 
int addConstraintPerpendicularCircle2Arc (Point &center, double *radius, Arc &a, int tagId=0, bool driving=true)
 
int addConstraintPerpendicularLine2Arc (Point &p1, Point &p2, Arc &a, int tagId=0, bool driving=true)
 
int addConstraintPointOnArc (Point &p, Arc &a, int tagId=0, bool driving=true)
 
int addConstraintPointOnCircle (Point &p, Circle &c, int tagId=0, bool driving=true)
 
int addConstraintPointOnEllipse (Point &p, Ellipse &e, int tagId=0, bool driving=true)
 
int addConstraintPointOnHyperbolicArc (Point &p, ArcOfHyperbola &e, int tagId=0, bool driving=true)
 
int addConstraintPointOnLine (Point &p, Line &l, int tagId=0, bool driving=true)
 
int addConstraintPointOnLine (Point &p, Point &lp1, Point &lp2, int tagId=0, bool driving=true)
 
int addConstraintPointOnParabolicArc (Point &p, ArcOfParabola &e, int tagId=0, bool driving=true)
 
int addConstraintPointOnPerpBisector (Point &p, Line &l, int tagId=0, bool driving=true)
 
int addConstraintPointOnPerpBisector (Point &p, Point &lp1, Point &lp2, int tagId=0, bool driving=true)
 
int addConstraintProportional (double *param1, double *param2, double ratio, int tagId, bool driving=true)
 
int addConstraintSnellsLaw (Curve &ray1, Curve &ray2, Curve &boundary, Point p, double *n1, double *n2, bool flipn1, bool flipn2, int tagId, bool driving=true)
 
int addConstraintTangent (Arc &a1, Arc &a2, int tagId=0, bool driving=true)
 
int addConstraintTangent (Circle &c, Arc &a, int tagId=0, bool driving=true)
 
int addConstraintTangent (Circle &c1, Circle &c2, int tagId=0, bool driving=true)
 
int addConstraintTangent (Line &l, Arc &a, int tagId=0, bool driving=true)
 
int addConstraintTangent (Line &l, Circle &c, int tagId=0, bool driving=true)
 
int addConstraintTangent (Line &l, Ellipse &e, int tagId=0, bool driving=true)
 
int addConstraintTangentCircumf (Point &p1, Point &p2, double *rd1, double *rd2, bool internal=false, int tagId=0, bool driving=true)
 
int addConstraintVertical (Line &l, int tagId=0, bool driving=true)
 
int addConstraintVertical (Point &p1, Point &p2, int tagId=0, bool driving=true)
 
void applySolution ()
 
double calculateAngleViaPoint (const Curve &crv1, const Curve &crv2, Point &p) const
 
double calculateAngleViaPoint (const Curve &crv1, const Curve &crv2, Point &p1, Point &p2) const
 
double calculateConstraintErrorByTag (int tagId)
 
void calculateNormalAtPoint (const Curve &crv, const Point &p, double &rtnX, double &rtnY) const
 
void clear ()
 
void clearByTag (int tagId)
 
void declareDrivenParams (VEC_pD &params)
 
void declareUnknowns (VEC_pD &params)
 
int diagnose (Algorithm alg=DogLeg)
 
int dofsNumber () const
 
void getConflicting (VEC_I &conflictingOut) const
 
void getDependentParams (VEC_pD &pdependentparameterlist) const
 
void getDependentParamsGroups (std::vector< std::vector< double * >> &pdependentparametergroups) const
 
double getFinePrecision ()
 
void getPartiallyRedundant (VEC_I &partiallyredundantOut) const
 
void getRedundant (VEC_I &redundantOut) const
 
bool hasConflicting () const
 
bool hasPartiallyRedundant () const
 
bool hasRedundant () const
 
void initSolution (Algorithm alg=DogLeg)
 
void invalidatedDiagnosis ()
 
bool isEmptyDiagnoseMatrix () const
 
void removeConstraint (Constraint *constr)
 
void rescaleConstraint (int id, double coeff)
 
int solve (bool isFine=true, Algorithm alg=DogLeg, bool isRedundantsolving=false)
 
int solve (SubSystem *subsys, bool isFine=true, Algorithm alg=DogLeg, bool isRedundantsolving=false)
 
int solve (SubSystem *subsysA, SubSystem *subsysB, bool isFine=true, bool isRedundantsolving=false)
 
int solve (VEC_pD &params, bool isFine=true, Algorithm alg=DogLeg, bool isRedundantsolving=false)
 
 System ()
 
void undoSolution ()
 
 ~System ()
 

Public Attributes

double convergence
 
double convergenceRedundant
 
DebugMode debugMode
 
double DL_tolf
 
double DL_tolfRedundant
 
double DL_tolg
 
double DL_tolgRedundant
 
double DL_tolx
 
double DL_tolxRedundant
 
DogLegGaussStep dogLegGaussStep
 
double LM_eps
 
double LM_eps1
 
double LM_eps1Redundant
 
double LM_epsRedundant
 
double LM_tau
 
double LM_tauRedundant
 
int maxIter
 
int maxIterRedundant
 
QRAlgorithm qrAlgorithm
 
double qrpivotThreshold
 
bool sketchSizeMultiplier
 
bool sketchSizeMultiplierRedundant
 

Constructor & Destructor Documentation

◆ System()

GCS::System::System ( )

◆ ~System()

GCS::System::~System ( )

References clear().

Member Function Documentation

◆ addConstraint()

◆ addConstraintAngleViaPoint()

int GCS::System::addConstraintAngleViaPoint ( Curve crv1,
Curve crv2,
Point p,
double *  angle,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintArcDiameter()

int GCS::System::addConstraintArcDiameter ( Arc a,
double *  diameter,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintArcOfEllipseRules()

int GCS::System::addConstraintArcOfEllipseRules ( ArcOfEllipse a,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintArcOfHyperbolaRules()

int GCS::System::addConstraintArcOfHyperbolaRules ( ArcOfHyperbola a,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintArcOfParabolaRules()

int GCS::System::addConstraintArcOfParabolaRules ( ArcOfParabola a,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintArcRadius()

int GCS::System::addConstraintArcRadius ( Arc a,
double *  radius,
int  tagId = 0,
bool  driving = true 
)

References addConstraintEqual().

◆ addConstraintArcRules()

int GCS::System::addConstraintArcRules ( Arc a,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintCircleDiameter()

int GCS::System::addConstraintCircleDiameter ( Circle c,
double *  diameter,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintCircleRadius()

int GCS::System::addConstraintCircleRadius ( Circle c,
double *  radius,
int  tagId = 0,
bool  driving = true 
)

References addConstraintEqual().

◆ addConstraintCoordinateX()

int GCS::System::addConstraintCoordinateX ( Point p,
double *  x,
int  tagId = 0,
bool  driving = true 
)

References addConstraintEqual().

◆ addConstraintCoordinateY()

int GCS::System::addConstraintCoordinateY ( Point p,
double *  y,
int  tagId = 0,
bool  driving = true 
)

References addConstraintEqual().

◆ addConstraintCurveValue()

int GCS::System::addConstraintCurveValue ( Point p,
Curve a,
double *  u,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintDifference()

int GCS::System::addConstraintDifference ( double *  param1,
double *  param2,
double *  difference,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintEqual()

◆ addConstraintEqualFocus()

int GCS::System::addConstraintEqualFocus ( ArcOfParabola a1,
ArcOfParabola a2,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintEqualLength()

int GCS::System::addConstraintEqualLength ( Line l1,
Line l2,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintEqualRadii() [1/2]

int GCS::System::addConstraintEqualRadii ( ArcOfHyperbola a1,
ArcOfHyperbola a2,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintEqualRadii() [2/2]

int GCS::System::addConstraintEqualRadii ( Ellipse e1,
Ellipse e2,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintEqualRadius() [1/3]

int GCS::System::addConstraintEqualRadius ( Arc a1,
Arc a2,
int  tagId = 0,
bool  driving = true 
)

References addConstraintEqual().

◆ addConstraintEqualRadius() [2/3]

int GCS::System::addConstraintEqualRadius ( Circle c1,
Arc a2,
int  tagId = 0,
bool  driving = true 
)

References addConstraintEqual().

◆ addConstraintEqualRadius() [3/3]

int GCS::System::addConstraintEqualRadius ( Circle c1,
Circle c2,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintHorizontal() [1/2]

int GCS::System::addConstraintHorizontal ( Line l,
int  tagId = 0,
bool  driving = true 
)

References addConstraintEqual().

◆ addConstraintHorizontal() [2/2]

int GCS::System::addConstraintHorizontal ( Point p1,
Point p2,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintInternalAlignmentBSplineControlPoint()

int GCS::System::addConstraintInternalAlignmentBSplineControlPoint ( BSpline b,
Circle c,
int  poleindex,
int  tag = 0,
bool  driving = true 
)

References addConstraintEqual().

◆ addConstraintInternalAlignmentEllipseFocus1()

int GCS::System::addConstraintInternalAlignmentEllipseFocus1 ( Ellipse e,
Point p1,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintInternalAlignmentEllipseFocus2()

int GCS::System::addConstraintInternalAlignmentEllipseFocus2 ( Ellipse e,
Point p1,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintInternalAlignmentEllipseMajorDiameter()

int GCS::System::addConstraintInternalAlignmentEllipseMajorDiameter ( Ellipse e,
Point p1,
Point p2,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintInternalAlignmentEllipseMinorDiameter()

int GCS::System::addConstraintInternalAlignmentEllipseMinorDiameter ( Ellipse e,
Point p1,
Point p2,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintInternalAlignmentHyperbolaFocus()

int GCS::System::addConstraintInternalAlignmentHyperbolaFocus ( Hyperbola e,
Point p1,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintInternalAlignmentHyperbolaMajorDiameter()

int GCS::System::addConstraintInternalAlignmentHyperbolaMajorDiameter ( Hyperbola e,
Point p1,
Point p2,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintInternalAlignmentHyperbolaMinorDiameter()

int GCS::System::addConstraintInternalAlignmentHyperbolaMinorDiameter ( Hyperbola e,
Point p1,
Point p2,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintInternalAlignmentParabolaFocus()

int GCS::System::addConstraintInternalAlignmentParabolaFocus ( Parabola e,
Point p1,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintInternalAlignmentPoint2Ellipse()

int GCS::System::addConstraintInternalAlignmentPoint2Ellipse ( Ellipse e,
Point p1,
InternalAlignmentType  alignmentType,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintInternalAlignmentPoint2Hyperbola()

int GCS::System::addConstraintInternalAlignmentPoint2Hyperbola ( Hyperbola e,
Point p1,
InternalAlignmentType  alignmentType,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintL2LAngle() [1/2]

int GCS::System::addConstraintL2LAngle ( Line l1,
Line l2,
double *  angle,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintL2LAngle() [2/2]

int GCS::System::addConstraintL2LAngle ( Point l1p1,
Point l1p2,
Point l2p1,
Point l2p2,
double *  angle,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintMidpointOnLine() [1/2]

int GCS::System::addConstraintMidpointOnLine ( Line l1,
Line l2,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintMidpointOnLine() [2/2]

int GCS::System::addConstraintMidpointOnLine ( Point l1p1,
Point l1p2,
Point l2p1,
Point l2p2,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintP2LDistance()

int GCS::System::addConstraintP2LDistance ( Point p,
Line l,
double *  distance,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintP2PAngle() [1/2]

int GCS::System::addConstraintP2PAngle ( Point p1,
Point p2,
double *  angle,
double  incrAngle,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintP2PAngle() [2/2]

int GCS::System::addConstraintP2PAngle ( Point p1,
Point p2,
double *  angle,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintP2PCoincident()

int GCS::System::addConstraintP2PCoincident ( Point p1,
Point p2,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintP2PDistance()

int GCS::System::addConstraintP2PDistance ( Point p1,
Point p2,
double *  distance,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintP2PSymmetric() [1/2]

int GCS::System::addConstraintP2PSymmetric ( Point p1,
Point p2,
Line l,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintP2PSymmetric() [2/2]

int GCS::System::addConstraintP2PSymmetric ( Point p1,
Point p2,
Point p,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintParallel()

int GCS::System::addConstraintParallel ( Line l1,
Line l2,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintPerpendicular() [1/2]

int GCS::System::addConstraintPerpendicular ( Line l1,
Line l2,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintPerpendicular() [2/2]

int GCS::System::addConstraintPerpendicular ( Point l1p1,
Point l1p2,
Point l2p1,
Point l2p2,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintPerpendicularArc2Arc()

int GCS::System::addConstraintPerpendicularArc2Arc ( Arc a1,
bool  reverse1,
Arc a2,
bool  reverse2,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintPerpendicularArc2Circle()

int GCS::System::addConstraintPerpendicularArc2Circle ( Arc a,
Point center,
double *  radius,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintPerpendicularArc2Line()

int GCS::System::addConstraintPerpendicularArc2Line ( Arc a,
Point p1,
Point p2,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintPerpendicularCircle2Arc()

int GCS::System::addConstraintPerpendicularCircle2Arc ( Point center,
double *  radius,
Arc a,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintPerpendicularLine2Arc()

int GCS::System::addConstraintPerpendicularLine2Arc ( Point p1,
Point p2,
Arc a,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintPointOnArc()

int GCS::System::addConstraintPointOnArc ( Point p,
Arc a,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintPointOnCircle()

int GCS::System::addConstraintPointOnCircle ( Point p,
Circle c,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintPointOnEllipse()

int GCS::System::addConstraintPointOnEllipse ( Point p,
Ellipse e,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintPointOnHyperbolicArc()

int GCS::System::addConstraintPointOnHyperbolicArc ( Point p,
ArcOfHyperbola e,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintPointOnLine() [1/2]

int GCS::System::addConstraintPointOnLine ( Point p,
Line l,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintPointOnLine() [2/2]

int GCS::System::addConstraintPointOnLine ( Point p,
Point lp1,
Point lp2,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintPointOnParabolicArc()

int GCS::System::addConstraintPointOnParabolicArc ( Point p,
ArcOfParabola e,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintPointOnPerpBisector() [1/2]

int GCS::System::addConstraintPointOnPerpBisector ( Point p,
Line l,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintPointOnPerpBisector() [2/2]

int GCS::System::addConstraintPointOnPerpBisector ( Point p,
Point lp1,
Point lp2,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintProportional()

int GCS::System::addConstraintProportional ( double *  param1,
double *  param2,
double  ratio,
int  tagId,
bool  driving = true 
)

◆ addConstraintSnellsLaw()

int GCS::System::addConstraintSnellsLaw ( Curve ray1,
Curve ray2,
Curve boundary,
Point  p,
double *  n1,
double *  n2,
bool  flipn1,
bool  flipn2,
int  tagId,
bool  driving = true 
)

◆ addConstraintTangent() [1/6]

int GCS::System::addConstraintTangent ( Arc a1,
Arc a2,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintTangent() [2/6]

int GCS::System::addConstraintTangent ( Circle c,
Arc a,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintTangent() [3/6]

int GCS::System::addConstraintTangent ( Circle c1,
Circle c2,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintTangent() [4/6]

int GCS::System::addConstraintTangent ( Line l,
Arc a,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintTangent() [5/6]

int GCS::System::addConstraintTangent ( Line l,
Circle c,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintTangent() [6/6]

int GCS::System::addConstraintTangent ( Line l,
Ellipse e,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintTangentCircumf()

int GCS::System::addConstraintTangentCircumf ( Point p1,
Point p2,
double *  rd1,
double *  rd2,
bool  internal = false,
int  tagId = 0,
bool  driving = true 
)

◆ addConstraintVertical() [1/2]

int GCS::System::addConstraintVertical ( Line l,
int  tagId = 0,
bool  driving = true 
)

References addConstraintEqual().

◆ addConstraintVertical() [2/2]

int GCS::System::addConstraintVertical ( Point p1,
Point p2,
int  tagId = 0,
bool  driving = true 
)

◆ applySolution()

void GCS::System::applySolution ( )

◆ calculateAngleViaPoint() [1/2]

double GCS::System::calculateAngleViaPoint ( const Curve crv1,
const Curve crv2,
Point p 
) const

◆ calculateAngleViaPoint() [2/2]

double GCS::System::calculateAngleViaPoint ( const Curve crv1,
const Curve crv2,
Point p1,
Point p2 
) const

◆ calculateConstraintErrorByTag()

double GCS::System::calculateConstraintErrorByTag ( int  tagId)

◆ calculateNormalAtPoint()

void GCS::System::calculateNormalAtPoint ( const Curve crv,
const Point p,
double &  rtnX,
double &  rtnY 
) const

◆ clear()

void GCS::System::clear ( void  )

References GCS::free().

Referenced by ~System().

◆ clearByTag()

void GCS::System::clearByTag ( int  tagId)

References removeConstraint().

◆ declareDrivenParams()

void GCS::System::declareDrivenParams ( VEC_pD params)

◆ declareUnknowns()

void GCS::System::declareUnknowns ( VEC_pD params)

Referenced by solve().

◆ diagnose()

◆ dofsNumber()

int GCS::System::dofsNumber ( ) const

◆ getConflicting()

void GCS::System::getConflicting ( VEC_I conflictingOut) const

◆ getDependentParams()

void GCS::System::getDependentParams ( VEC_pD pdependentparameterlist) const

◆ getDependentParamsGroups()

void GCS::System::getDependentParamsGroups ( std::vector< std::vector< double * >> &  pdependentparametergroups) const

◆ getFinePrecision()

double GCS::System::getFinePrecision ( )

References convergence.

◆ getPartiallyRedundant()

void GCS::System::getPartiallyRedundant ( VEC_I partiallyredundantOut) const

◆ getRedundant()

void GCS::System::getRedundant ( VEC_I redundantOut) const

◆ hasConflicting()

bool GCS::System::hasConflicting ( ) const

◆ hasPartiallyRedundant()

bool GCS::System::hasPartiallyRedundant ( ) const

◆ hasRedundant()

bool GCS::System::hasRedundant ( ) const

◆ initSolution()

void GCS::System::initSolution ( Algorithm  alg = DogLeg)

References diagnose(), and GCS::Equal.

Referenced by solve().

◆ invalidatedDiagnosis()

void GCS::System::invalidatedDiagnosis ( )

◆ isEmptyDiagnoseMatrix()

bool GCS::System::isEmptyDiagnoseMatrix ( ) const

◆ removeConstraint()

void GCS::System::removeConstraint ( Constraint constr)

◆ rescaleConstraint()

void GCS::System::rescaleConstraint ( int  id,
double  coeff 
)

◆ solve() [1/4]

int GCS::System::solve ( bool  isFine = true,
Algorithm  alg = DogLeg,
bool  isRedundantsolving = false 
)

◆ solve() [2/4]

int GCS::System::solve ( SubSystem subsys,
bool  isFine = true,
Algorithm  alg = DogLeg,
bool  isRedundantsolving = false 
)

◆ solve() [3/4]

◆ solve() [4/4]

int GCS::System::solve ( VEC_pD params,
bool  isFine = true,
Algorithm  alg = DogLeg,
bool  isRedundantsolving = false 
)

◆ undoSolution()

void GCS::System::undoSolution ( )

Member Data Documentation

◆ convergence

double GCS::System::convergence

◆ convergenceRedundant

double GCS::System::convergenceRedundant

◆ debugMode

DebugMode GCS::System::debugMode

◆ DL_tolf

double GCS::System::DL_tolf

◆ DL_tolfRedundant

double GCS::System::DL_tolfRedundant

◆ DL_tolg

double GCS::System::DL_tolg

◆ DL_tolgRedundant

double GCS::System::DL_tolgRedundant

◆ DL_tolx

double GCS::System::DL_tolx

◆ DL_tolxRedundant

double GCS::System::DL_tolxRedundant

◆ dogLegGaussStep

DogLegGaussStep GCS::System::dogLegGaussStep

◆ LM_eps

double GCS::System::LM_eps

◆ LM_eps1

double GCS::System::LM_eps1

◆ LM_eps1Redundant

double GCS::System::LM_eps1Redundant

◆ LM_epsRedundant

double GCS::System::LM_epsRedundant

◆ LM_tau

double GCS::System::LM_tau

◆ LM_tauRedundant

double GCS::System::LM_tauRedundant

◆ maxIter

int GCS::System::maxIter

◆ maxIterRedundant

int GCS::System::maxIterRedundant

◆ qrAlgorithm

◆ qrpivotThreshold

◆ sketchSizeMultiplier

bool GCS::System::sketchSizeMultiplier

◆ sketchSizeMultiplierRedundant

bool GCS::System::sketchSizeMultiplierRedundant

The documentation for this class was generated from the following files:
  • Sources/FreeCAD/src/Mod/Sketcher/App/planegcs/GCS.h
  • Sources/FreeCAD/src/Mod/Sketcher/App/planegcs/GCS.cpp