16template <
class ExplicitBase = context::ExplicitDynamics>
17struct PyExplicitDynamics : ExplicitBase, bp::wrapper<ExplicitBase> {
21 using Data = ExplicitDynamicsDataTpl<Scalar>;
22 using StageFunctionData = StageFunctionDataTpl<Scalar>;
24 template <
typename... Args>
25 PyExplicitDynamics(Args &&...args) : ExplicitBase(args...) {}
27 virtual void forward(
const ConstVectorRef &x,
const ConstVectorRef &u,
32 virtual void dForward(
const ConstVectorRef &x,
const ConstVectorRef &u,
37 shared_ptr<StageFunctionData>
createData()
const {
42 shared_ptr<StageFunctionData> default_createData()
const {
43 return ExplicitBase::createData();
#define ALIGATOR_PYTHON_OVERRIDE(ret_type, cname, fname,...)
Define the body of a virtual function override. This is meant to reduce boilerplate code when exposin...
#define ALIGATOR_PYTHON_OVERRIDE_PURE(ret_type, pyname,...)
Define the body of a virtual function override. This is meant to reduce boilerplate code when exposin...
#define ALIGATOR_DYNAMIC_TYPEDEFS(Scalar)
ExplicitDynamicsDataTpl< Scalar > Data
virtual shared_ptr< BaseData > createData() const
Instantiate a Data object.
virtual void forward(const ConstVectorRef &x, const ConstVectorRef &u, Data &data) const =0
Evaluate the forward discrete dynamics.
virtual void dForward(const ConstVectorRef &x, const ConstVectorRef &u, Data &data) const =0
Compute the Jacobians of the forward dynamics.