#include <trgen.h>
Inherits TrajectorySegment.
Public Member Functions | |
Turn (Point *_center, double _startHeading, double _turnBy) | |
turning starts at this heading [rad] | |
virtual void | setMaxV (const TrajectoryConstraints &constr) |
virtual double | getMaxAcc (const TrajectoryConstraints &constr) const |
virtual bool | isTurn () const |
virtual double | getLength () const |
Length of the segment in meters. | |
virtual double | getDistance (double time) const |
virtual double | getUnifiedLength () const |
Unified length of the segment, used for calculations of speed and accelerations. | |
virtual void | getPointAt (double distance, Point *p) |
Returns the point of the segment, located at the specific distance from the beginning or end. | |
virtual void | shortenBy (double, Point *) |
Shorten the segment by a specific length. | |
virtual TrajectorySegment * | splitAt (double distance, Point *newEnd) |
Splits the segment at the specified point. | |
virtual TrajectorySegment * | splitAtByTime (double time, Point *newEnd) |
virtual void | getRefPos (double time, Pos &rp) |
Return the reference position at some time. |
Segment::Turn::Turn | ( | Point * | _center, | |
double | _startHeading, | |||
double | _turnBy | |||
) |
turning starts at this heading [rad]
Segment representing turn at one place.
Speed related variables v1
, v2
and acc
represents angular speed here.
double Segment::Turn::getDistance | ( | double | time | ) | const [virtual] |
Implements TrajectorySegment.
virtual double Segment::Turn::getLength | ( | ) | const [inline, virtual] |
Length of the segment in meters.
Implements TrajectorySegment.
virtual double Segment::Turn::getMaxAcc | ( | const TrajectoryConstraints & | constr | ) | const [inline, virtual] |
Reimplemented from TrajectorySegment.
void Segment::Turn::getPointAt | ( | double | distance, | |
Point * | p | |||
) | [virtual] |
Returns the point of the segment, located at the specific distance
from the beginning or end.
[in] | distance | Distance from the beginning (if positive) or end (if negative) of the segment in meters. |
[out] | p | Pointer to the point to sore the result. |
Implements TrajectorySegment.
void Segment::Turn::getRefPos | ( | double | time, | |
Pos & | rp | |||
) | [virtual] |
Return the reference position at some time.
[in] | time | Time (within this segment time range). |
[out] | rp | Reference position. |
Implements TrajectorySegment.
virtual double Segment::Turn::getUnifiedLength | ( | ) | const [inline, virtual] |
Unified length of the segment, used for calculations of speed and accelerations.
Normally, it equal to the real length, buf for TrajectorySegmentTurn (whose length is zero) it represents angle.
Reimplemented from TrajectorySegment.
virtual bool Segment::Turn::isTurn | ( | ) | const [inline, virtual] |
Reimplemented from TrajectorySegment.
void Segment::Turn::setMaxV | ( | const TrajectoryConstraints & | constr | ) | [virtual] |
Implements TrajectorySegment.
virtual void Segment::Turn::shortenBy | ( | double | distance, | |
Point * | newEnd | |||
) | [inline, virtual] |
Shorten the segment by a specific length.
[in] | distance | Distance from the end (if positive) of the segment, where should be the end of the segment. |
[in] | newEnd | Point which will be set to the position of the new end. |
Implements TrajectorySegment.
TrajectorySegment * Segment::Turn::splitAt | ( | double | distance, | |
Point * | newEnd | |||
) | [virtual] |
Splits the segment at the specified point.
The result will be two segments following the same trajectory as the original one.
[in] | distance | Distance of the split from the beginning of the segment. |
[in] | newEnd | Point which will be used as a middle point joining the two segments. |
Implements TrajectorySegment.
TrajectorySegment * Segment::Turn::splitAtByTime | ( | double | time, | |
Point * | newEnd | |||
) | [virtual] |