Class KleinBottleStateSpace

Nested Relationships

Nested Types

Inheritance Relationships

Base Type

Class Documentation

class KleinBottleStateSpace : public ompl::base::CompoundStateSpace

The Klein bottle is a 2-dimensional non-orientable surface. In this class, we implement a 3-dimensional immersion of the Bottle.

Public Functions

KleinBottleStateSpace()
~KleinBottleStateSpace() override = default
virtual StateSamplerPtr allocDefaultStateSampler() const override

Allocate an instance of the default uniform state sampler for this space.

virtual double distance(const State *state1, const State *state2) const override

Computes distance between two states. This function satisfies the properties of a metric if isMetricSpace() is true, and its return value will always be between 0 and getMaximumExtent()

virtual void interpolate(const State *from, const State *to, double t, State *state) const override

Computes the state that lies at time t in [0, 1] on the segment that connects from state to to state. The memory location of state is not required to be different from the memory of either from or to.

virtual State *allocState() const override

Allocate a state that can store a point in the described space.

Eigen::Vector3f toVector(const State *state) const
class StateType : public ompl::base::CompoundState

The definition of a state (u,v) in the Klein bottle state space. A state is represented as a cylinder with height u in the interval [0, Pi] and angle v in the interval [-Pi, Pi] as in the discussion here: https://en.wikipedia.org/wiki/Klein_bottle#Construction.

This cylinder is then glued together (mapped) internally to provide correct distance and interpolation functions.

Public Functions

StateType() = default
inline double getU() const

Access U, the height of the cylinder.

inline double getV() const

Access V, the angle of the cylinder.

inline void setU(double u)

Set U, the height of the cylinder.

inline void setV(double v)

Set V, the angle of the cylinder.

inline void setUV(double u, double v)