return mySketch->data() && mySketch->data()->isValid();
}
+ /// \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
* \return \c true if the constraint added or updated successfully
/// \brief Verifies is the feature valid
bool checkFeatureValidity(FeaturePtr theFeature);
+ /// \brief Notify all interested constraints that coincidence appears or removed
+ /// \param[in] theCoincidence coincidence constraint
+ void notifyCoincidenceChanged(SolverConstraintPtr theCoincidence);
+
private:
GroupID myID; ///< Index of the group
EntityID myWorkplaneID; ///< Index of workplane, the group is based on
SolverPtr mySketchSolver; ///< Solver for set of equations obtained by constraints
SketchSolver_SolveStatus myPrevResult; ///< Result of previous solution of the set of constraints
+ std::set<ObjectPtr> myConflictingConstraints; ///< List of conflicting constraints
};
#endif