/// \brief Adjust parameters of points coincident with the given
void updateCoincident(const EntityWrapperPtr& thePoint);
+ /// \brief Verifies the constraint should not be added into the solver
+ ///
+ /// This is a workaround method to avoid some kinds of conflicting constraints:
+ /// * symmetric of two points placed on the mirror line (do not add perpendicular constraint)
+ bool isRedundant(GCSConstraintPtr theCheckedConstraint,
+ ConstraintWrapperPtr theParentConstraint,
+ std::list<std::set<double*> >& theCoincidentPoints) const;
+
private:
GCS::VEC_pD myParameters; ///< list of parameters
GCS::VEC_pD myConst; ///< list of constants
EntityID myEntityLastID; ///< identifier of last added entity
ConstraintID myConstraintLastID; ///< identifier of last added constraint
+ /// additional constraints for correct processing of the arcs
std::map<EntityWrapperPtr, std::vector<GCSConstraintPtr> >
- myArcConstraintMap; ///< additional constraints for correct processing of the arcs
+ myArcConstraintMap;
- std::list<GCSConstraintPtr> myRemovedConstraints; ///< list of removed constraints to notify solver
+ /// list of removed constraints to notify solver
+ std::list<GCSConstraintPtr> myRemovedConstraints;
};
#endif