00001 00028 #ifndef CONSTRAINT_GROUP_H 00029 #define CONSTRAINT_GROUP_H 00030 00031 #include <constrained_ik/constraint.h> 00032 #include <constrained_ik/constraint_results.h> 00033 #include <boost/ptr_container/ptr_vector.hpp> 00034 00035 namespace constrained_ik 00036 { 00037 00039 class ConstraintGroup : public Constraint 00040 { 00041 public: 00042 EIGEN_MAKE_ALIGNED_OPERATOR_NEW 00043 00044 ConstraintGroup(); 00045 00047 ConstraintResults evalConstraint(const SolverState &state) const override; 00048 00050 void init(const Constrained_IK* ik) override; 00051 00056 virtual void add(Constraint* constraint); 00057 00059 virtual void clear() { constraints_.clear(); } 00060 00065 virtual bool empty() const { return constraints_.empty(); } 00066 00067 protected: 00068 boost::ptr_vector<Constraint> constraints_; 00070 }; // class ConstraintGroup 00071 00072 } // namespace constrained_ik 00073 00074 00075 #endif // CONSTRAINT_GROUP_H 00076