Class KleinBottleStateSpace
Defined in File KleinBottleStateSpace.h
Nested Relationships
Nested Types
Inheritance Relationships
Base Type
public ompl::base::CompoundStateSpace
(Class CompoundStateSpace)
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.
-
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)
-
StateType() = default
-
KleinBottleStateSpace()