INOS
CINOSMovePathPartClothoid Class Reference
Inheritance diagram for CINOSMovePathPartClothoid:

Public Types

enum  { eOptNone = 0x00000000 , eOptClockWise = 0x00000001 , eOptInverted = 0x00000002 }
 clothoid options
 
- Public Types inherited from CINOSMovePathPart
enum  {
  eTypeUnknown , eTypeLinear , eTypeLinearBay , eTypeCircle ,
  eTypeRapid
}
 

Public Member Functions

virtual uint8 GetMainAxisIndex ()
 get main axis index (relevant for abs/inc/nlg)
 
virtual uint32 GetInvolved ()
 get mask of involved axes
 
virtual double Prepare (uint32 auIncremental, double *apPosition)
 prepare part
 
virtual void GetPosition (double adP, double *apPosition)
 get position at P
 
virtual void GetDerivative (uint32 auLevel, double adP, double *apDerivative)
 get auLevel derivative at P
 
virtual void GetD2max (double *apD2max)
 get max 2. derivative of part
 
virtual void GetD3max (double *apD3max)
 get max 3. derivative of part
 
 CINOSMovePathPartClothoid (uint8 auIndex1, uint8 auIndex2, double adR, double adL, double adRotationAngle, uint32 auOptions)
 
virtual ~CINOSMovePathPartClothoid ()
 destructor
 
- Public Member Functions inherited from CINOSMovePathPart
uint8 GetType ()
 get part type
 
virtual double GetMaxVectorLength (double adError)
 get max vector length for given error
 
virtual bool IsStartBlendingAllowed ()
 return true if start blending allowed
 
virtual bool IsEndBlendingAllowed ()
 return true if end blending allowed
 
virtual bool IsContinuous (uint32 auLevel)
 return true if part is auLevel continuous
 
 CINOSMovePathPart ()
 constructor
 
 CINOSMovePathPart (uint8 auType)
 constructor
 
virtual ~CINOSMovePathPart ()
 destructor
 
void SetSegment (class CINOSMovePathSegment *apSegment)
 set pointer to my segment
 

Static Public Member Functions

static double GetTangentLength (double adR, double adL, double adGamma)
 
static void GetXY (double adL, uint32 auOptions, double &adX, double &adY, SINOSMovePathPartClothoidConstants &asConst)
 get clothoid coordinates
 
static void InitConstants (double adA, SINOSMovePathPartClothoidConstants &asConst)
 init calculation constants
 

Protected Member Functions

double GetD2x (double adP)
 get 2. derivative of x coord at given P
 
double GetD2y (double adP)
 get 2. derivative of y coord at given P
 
double GetD3x (double adP)
 get 3. derivative of x coord at given P
 
double GetD3y (double adP)
 get 3. derivative of y coord at given P
 
 DECLARE_DYNAMIC (CINOSMovePathPartClothoid)
 
- Protected Member Functions inherited from CINOSMovePathPart
 DECLARE_DYNAMIC (CINOSMovePathPart)
 

Protected Attributes

uint8 m_uIndex [2]
 axis indexes
 
uint32 m_uOptions
 clothoid options
 
double m_dR
 requested radius
 
double m_dL
 requested length
 
double m_dA
 clothoid param A
 
double m_dA_2
 
double m_dA_4
 
double m_dRotationAngle
 rotation angle
 
double m_dCosA
 rotation factors
 
double m_dSinA
 
double m_dXe
 calc end coordinates
 
double m_dYe
 
SINOSMovePathPartClothoidConstants m_sConst
 
- Protected Attributes inherited from CINOSMovePathPart
uint8 m_uType
 part type
 
class CINOSMovePathSegmentm_pSegment
 pointer to my segment
 

Friends

class CINOSMovePath
 

Constructor & Destructor Documentation

◆ CINOSMovePathPartClothoid()

CINOSMovePathPartClothoid::CINOSMovePathPartClothoid ( uint8  auIndex1,
uint8  auIndex2,
double  adR,
double  adL,
double  adRotationAngle,
uint32  auOptions 
)

Clothoid part : A = sqrt(R*L)

Parameters
auIndex1Index of the first axis
auIndex2Index of the second axis
adREnd radius, R of A^2=R*L
adLClothoid length, L of A^2=R*L
auOptionssee enum clothoid options

Member Function Documentation

◆ GetD2max()

virtual void CINOSMovePathPartClothoid::GetD2max ( double apD2max)
virtual

get max 2. derivative of part

Implements CINOSMovePathPart.

◆ GetD3max()

virtual void CINOSMovePathPartClothoid::GetD3max ( double apD3max)
virtual

get max 3. derivative of part

Implements CINOSMovePathPart.

◆ GetDerivative()

virtual void CINOSMovePathPartClothoid::GetDerivative ( uint32  auLevel,
double  adP,
double apDerivative 
)
virtual

get auLevel derivative at P

Implements CINOSMovePathPart.

◆ GetInvolved()

virtual uint32 CINOSMovePathPartClothoid::GetInvolved ( )
inlinevirtual

get mask of involved axes

Implements CINOSMovePathPart.

◆ GetMainAxisIndex()

virtual uint8 CINOSMovePathPartClothoid::GetMainAxisIndex ( )
inlinevirtual

get main axis index (relevant for abs/inc/nlg)

Implements CINOSMovePathPart.

◆ GetPosition()

virtual void CINOSMovePathPartClothoid::GetPosition ( double  adP,
double apPosition 
)
virtual

get position at P

Implements CINOSMovePathPart.

◆ GetTangentLength()

static double CINOSMovePathPartClothoid::GetTangentLength ( double  adR,
double  adL,
double  adGamma 
)
static

return tangent length from starting point of clothoid till intersection point of the two base linear segments

◆ Prepare()

virtual double CINOSMovePathPartClothoid::Prepare ( uint32  auIncremental,
double apPosition 
)
virtual

prepare part

Implements CINOSMovePathPart.


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