Go to the documentation of this file. 1 #ifndef AIKIDO_STATESPACE_STATESPACE_HPP_
2 #define AIKIDO_STATESPACE_STATESPACE_HPP_
13 namespace statespace {
151 virtual void expMap(
const Eigen::VectorXd& _tangent,
State* _out)
const = 0;
159 virtual void logMap(
const State* _in, Eigen::VectorXd& _tangent)
const = 0;
164 virtual void print(
const State* _state, std::ostream& _os)
const = 0;
182 #endif // ifndef AIKIDO_STATESPACE_STATESPACE_HPP_
~State()=default
It is unsafe to call this, since it is a non-virtual destructor.
virtual void freeState(State *_state) const
Free a state previously created by allocateState.
virtual void expMap(const Eigen::VectorXd &_tangent, State *_out) const =0
Exponential mapping of Lie algebra element to a Lie group element.
Format of serialized trajectory in YAML.
Definition: algorithm.hpp:4
virtual void logMap(const State *_in, Eigen::VectorXd &_tangent) const =0
Log mapping of Lie group element to a Lie algebra element.
virtual void print(const State *_state, std::ostream &_os) const =0
Print the state to the output stream.
virtual State * allocateStateInBuffer(void *_buffer) const =0
Create a new state in a pre-allocated buffer.
virtual void getInverse(const State *_state, State *_out) const =0
Gets the inverse of _in in this Lie group, such that:
virtual State * allocateState() const
Allocate a new state.
State()=default
This is a base class that should only only be used in derived classes.
ScopedState createState() const
Helper function to create a ScopedState.
Wrap a State with its StateSpace to provide convenient accessor methods.
Definition: StateHandle.hpp:16
virtual std::size_t getDimension() const =0
Get the dimension of this Lie group.
Represents a Lie group and its associated Lie algebra, i.e.
Definition: StateSpace.hpp:33
virtual void getIdentity(State *_out) const =0
Gets the identity element for this Lie group, such that:
virtual void freeStateInBuffer(State *_state) const =0
Free a state previously created by allocateStateInBuffer.
virtual void compose(const State *_state1, const State *_state2, State *_out) const =0
Lie group operation for this StateSpace.
ScopedState cloneState(const State *stateIn) const
Creates an identical clone of stateIn.
Definition: StateSpace.hpp:167
virtual ~StateSpace()=default
#define AIKIDO_DECLARE_POINTERS(X)
Definition: pointers.hpp:21
virtual void copyState(const StateSpace::State *_source, StateSpace::State *_destination) const =0
Copy a state.
virtual std::size_t getStateSizeInBytes() const =0
Gets the size of a State, in bytes.