21 namespace task_dynamics
48 const Eigen::VectorXd & rhs)
const = 0;
62 #define TASK_DYNAMICS_DERIVED_FACTORY(...) \
63 template<typename Derived, typename... Args> \
64 std::unique_ptr<tvm::task_dynamics::abstract::TaskDynamicsImpl> impl_( \
65 tvm::FunctionPtr f, tvm::constraint::Type t, const Eigen::VectorXd & rhs, Args &&... args) const \
66 { return std::make_unique<Derived>(f, t, rhs, std::forward<Args>(args)..., __VA_ARGS__); }
71 #define TASK_DYNAMICS_DERIVED_FACTORY_Z() \
72 template<typename Derived, typename... Args> \
73 std::unique_ptr<tvm::task_dynamics::abstract::TaskDynamicsImpl> impl_( \
74 tvm::FunctionPtr f, tvm::constraint::Type t, const Eigen::VectorXd & rhs, Args &&... args) const \
75 { return std::make_unique<Derived>(f, t, rhs, std::forward<Args>(args)...); }
82 #define COMPOSABLE_TASK_DYNAMICS_DERIVED_FACTORY(T, ...) \
83 template<typename Derived, typename... Args> \
84 std::unique_ptr<tvm::task_dynamics::abstract::TaskDynamicsImpl> impl_( \
85 tvm::FunctionPtr f, tvm::constraint::Type t, const Eigen::VectorXd & rhs, Args &&... args) const \
86 { return T::template impl_<Derived>(f, t, rhs, std::forward<Args>(args)..., __VA_ARGS__); }
#define TVM_DLLAPI
Definition: api.h:35
Definition: TaskDynamics.h:37
virtual Order order_() const =0
virtual std::unique_ptr< TaskDynamicsImpl > impl_(FunctionPtr f, constraint::Type t, const Eigen::VectorXd &rhs) const =0
std::unique_ptr< TaskDynamicsImpl > impl(FunctionPtr f, constraint::Type t, const Eigen::VectorXd &rhs) const
virtual ~TaskDynamics()=default
Type
Definition: enums.h:15
Order
Definition: enums.h:14
std::shared_ptr< function::abstract::Function > FunctionPtr
Definition: defs.h:57