#include <SketchSolver_ISolver.h>
#include <SketchPlugin_Constraint.h>
-////#include <ModelAPI_Data.h>
#include <ModelAPI_Feature.h>
-////#include <ModelAPI_AttributeRefList.h>
#include <memory>
#include <list>
return mySketch->data() && mySketch->data()->isValid();
}
- /// \brief Verifies the constraint is complex, i.e. it needs another constraints to be created before
- static bool isComplexConstraint(FeaturePtr theConstraint);
+ /// \brief Check the group has conflicting constraints
+ inline bool isFailed() const
+ {
+ return !myConflictingConstraints.empty();
+ }
/** \brief Adds or updates a constraint in the group
* \param[in] theConstraint constraint to be changed
/// \brief Verifies is the feature valid
bool checkFeatureValidity(FeaturePtr theFeature);
- /// \brief Update just changed constraints
- void updateConstraints();
-
- /// \brief Update Multi-Translation/-Rotation constraints due to multi coincidence appears/disappears
- void notifyMultiConstraints();
-
private:
GroupID myID; ///< Index of the group
EntityID myWorkplaneID; ///< Index of workplane, the group is based on
ConstraintConstraintMap myConstraints; ///< List of constraints
std::set<SolverConstraintPtr> myTempConstraints; ///< List of temporary constraints
std::map<AttributePtr, SolverConstraintPtr> myParametricConstraints; ///< List of parametric constraints
- std::set<ConstraintPtr> myChangedConstraints; ///< List of just updated constraints
StoragePtr myStorage; ///< Container for the set of SolveSpace constraints and their entities
SolverPtr mySketchSolver; ///< Solver for set of equations obtained by constraints
- bool myPrevSolved; ///< Indicates that previous solving was done correctly
+ SketchSolver_SolveStatus myPrevResult; ///< Result of previous solution of the set of constraints
+ std::set<ObjectPtr> myConflictingConstraints; ///< List of conflicting constraints
};
#endif