Public Member Functions

Segment::Turn Class Reference

#include <trgen.h>

Inherits TrajectorySegment.

Collaboration diagram for Segment::Turn:
Collaboration graph
[legend]

List of all members.

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 TrajectorySegmentsplitAt (double distance, Point *newEnd)
 Splits the segment at the specified point.
virtual TrajectorySegmentsplitAtByTime (double time, Point *newEnd)
virtual void getRefPos (double time, Pos &rp)
 Return the reference position at some time.

Constructor & Destructor Documentation

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.

Here is the caller graph for this function:


Member Function Documentation

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.

Parameters:
[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.

Parameters:
[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.

Parameters:
[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.

Parameters:
[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.
Returns:
Pointer to the newly created segment.

Implements TrajectorySegment.

Here is the call graph for this function:

TrajectorySegment * Segment::Turn::splitAtByTime ( double  time,
Point newEnd 
) [virtual]

Implements TrajectorySegment.

Here is the call graph for this function:


The documentation for this class was generated from the following files: