TMCLocationRec Class Reference

List of all members.

Public Member Functions

 TMCLocationRec ()
TMCLocationRecClone () const
void SetLocation (const TVector3 &newLocation)
void SetNextControlDistance (const real32 dist)
void SetPrevControlDistance (const real32 dist)
void SetNextControlDirection (const TVector3 &dir)
void SetPrevControlDirection (const TVector3 &dir)
void SetNextControlLocation (const TVector3 &newNextControl)
void SetPrevControlLocation (const TVector3 &newPrevControl)
TVector3GetLocation ()
TVector3GetNextControlDirection ()
TVector3GetPrevControlDirection ()
real32 GetNextControlDistance ()
real32 GetPrevControlDistance ()
TVector3 GetNextControlLocation ()
TVector3 GetPrevControlLocation ()
TVector3GetNextVectorUp ()
TVector3GetPrevVectorUp ()
TVector3GetNextControlVectorUp ()
TVector3GetPrevControlVectorUp ()
void CopyDataFrom (const TMCLocationRec *from)
void CalcLinearApprox (TMCLocationRec *nextRec, int16 level=0, real posMin=0.0f, real posMax=1.0f)
void CalcApprox (TMCLocationRec *nextRec, TMCLocationRec *prevRec, TMCBezierPath *bezierPath)
void CalcLength (TMCLocationRec *nextRec)
void CalcNormalAcceleration (TMCLocationRec *nextRec, TMCLocationRec *prevRec)
void CalcVectorUp (TMCLocationRec *nextRec, TMCLocationRec *prevRec, const boolean isLinear)
void CalcPseudoCurv (TMCLocationRec *nextRec, TMCLocationRec *prevRec)
real DistanceToBezierPos (real linearDistance, TMCLocationRec *nextRec)
void Interpolate (real segmentBezierPos, TVector3 &outPoint, TMCLocationRec *nextRec)
void GetSpeed (real segmentBezierPos, TVector3 &point, TMCLocationRec *nextRec)
void GetAcceleration (real segmentBezierPos, TVector3 &point, TMCLocationRec *nextRec)
void GetNormalAcceleration (real segmentBezierPos, TVector3 &point, TMCLocationRec *nextRec)
void GetVectorUp (real segmentBezierPos, TVector3 &speed, TVector3 &point, TMCLocationRec *nextRec)
void Subdivide (real segmentBezierPos, TMCLocationRec *nextRec, TMCLocationRec &rec1, TMCLocationRec &rec2, TMCLocationRec &rec3)
void ConvertTangent ()
void ConvertTangentDerivative ()
void Link ()
void LinkDerivative ()
void UnLink ()
void Degenerate ()

Public Attributes

real fSegmentBeginPos
TVector3 fLocation
real fLength
real fLengthFactor
EBezierType fType
TMCArray< TVector3fLinearApprox
TMCArray< realfLinearApproxDistance
TMCArray< realfLinearApproxBezierPos
TMCArray< TVector3fNormalAcceleration
TVector3 fLastBankingV
 Not used ?

Protected Member Functions

real CalcError (TMCLocationRec *nextRec)

Protected Attributes

TVector3 fPrevControlVectorUp
TVector3 fPrevVectorUp
TVector3 fNextVectorUp
TVector3 fNextControlVectorUp
TVector3 fPrevControlDirection
TVector3 fNextControlDirection
real32 fPrevControlDistance
real32 fNextControlDistance

Detailed Description

A bezier point with its demi tangeants


Constructor & Destructor Documentation

TMCLocationRec::TMCLocationRec (  ) 

Member Function Documentation

void TMCLocationRec::CalcApprox ( TMCLocationRec nextRec,
TMCLocationRec prevRec,
TMCBezierPath bezierPath 
)
real TMCLocationRec::CalcError ( TMCLocationRec nextRec  )  [protected]
void TMCLocationRec::CalcLength ( TMCLocationRec nextRec  ) 
void TMCLocationRec::CalcLinearApprox ( TMCLocationRec nextRec,
int16  level = 0,
real  posMin = 0.0f,
real  posMax = 1.0f 
)
void TMCLocationRec::CalcNormalAcceleration ( TMCLocationRec nextRec,
TMCLocationRec prevRec 
)
void TMCLocationRec::CalcPseudoCurv ( TMCLocationRec nextRec,
TMCLocationRec prevRec 
)
void TMCLocationRec::CalcVectorUp ( TMCLocationRec nextRec,
TMCLocationRec prevRec,
const boolean  isLinear 
)
TMCLocationRec* TMCLocationRec::Clone (  )  const
void TMCLocationRec::ConvertTangent (  ) 
void TMCLocationRec::ConvertTangentDerivative (  ) 
void TMCLocationRec::CopyDataFrom ( const TMCLocationRec from  ) 
void TMCLocationRec::Degenerate (  ) 
real TMCLocationRec::DistanceToBezierPos ( real  linearDistance,
TMCLocationRec nextRec 
)
void TMCLocationRec::GetAcceleration ( real  segmentBezierPos,
TVector3 point,
TMCLocationRec nextRec 
)

Return 1/6th of the actual acceleration

TVector3& TMCLocationRec::GetLocation (  )  [inline]
TVector3& TMCLocationRec::GetNextControlDirection (  )  [inline]
real32 TMCLocationRec::GetNextControlDistance (  )  [inline]
TVector3 TMCLocationRec::GetNextControlLocation (  ) 
TVector3& TMCLocationRec::GetNextControlVectorUp (  )  [inline]
TVector3& TMCLocationRec::GetNextVectorUp (  )  [inline]
void TMCLocationRec::GetNormalAcceleration ( real  segmentBezierPos,
TVector3 point,
TMCLocationRec nextRec 
)
TVector3& TMCLocationRec::GetPrevControlDirection (  )  [inline]
real32 TMCLocationRec::GetPrevControlDistance (  )  [inline]
TVector3 TMCLocationRec::GetPrevControlLocation (  ) 
TVector3& TMCLocationRec::GetPrevControlVectorUp (  )  [inline]
TVector3& TMCLocationRec::GetPrevVectorUp (  )  [inline]
void TMCLocationRec::GetSpeed ( real  segmentBezierPos,
TVector3 point,
TMCLocationRec nextRec 
)

Return 1/3th of the actual speed

void TMCLocationRec::GetVectorUp ( real  segmentBezierPos,
TVector3 speed,
TVector3 point,
TMCLocationRec nextRec 
)
void TMCLocationRec::Interpolate ( real  segmentBezierPos,
TVector3 outPoint,
TMCLocationRec nextRec 
)
void TMCLocationRec::Link (  ) 
void TMCLocationRec::LinkDerivative (  ) 
void TMCLocationRec::SetLocation ( const TVector3 newLocation  )  [inline]
void TMCLocationRec::SetNextControlDirection ( const TVector3 dir  ) 
void TMCLocationRec::SetNextControlDistance ( const real32  dist  ) 
void TMCLocationRec::SetNextControlLocation ( const TVector3 newNextControl  ) 
void TMCLocationRec::SetPrevControlDirection ( const TVector3 dir  ) 
void TMCLocationRec::SetPrevControlDistance ( const real32  dist  ) 
void TMCLocationRec::SetPrevControlLocation ( const TVector3 newPrevControl  ) 
void TMCLocationRec::Subdivide ( real  segmentBezierPos,
TMCLocationRec nextRec,
TMCLocationRec rec1,
TMCLocationRec rec2,
TMCLocationRec rec3 
)
void TMCLocationRec::UnLink (  ) 

Member Data Documentation

Not used ?

These values aren't exactly the normal acceleration: a smoothing is done to avoid discontinuity at the junction of 2 beziers curves.

PrevControl and NextControl relative to Location: a normalize vector and a distance => we are so able to keep a direction even if the distance is 0

The VectorUp is normal to the path and is used to define a base attached to the path. Its determination is based on the fNextVectorUp of the previous TMCLocationRec as this: it's the projection of the previous fVectorUp on the plane normal to the tangeant. There're 2 vector per TMCLocationRec because it can have a discontinuity. fNextVectorUp is computed from fPrevVectorUp


The documentation for this class was generated from the following file:
Generated on Mon Apr 26 22:48:03 2010 for Carrara SDK Doc by  doxygen 1.6.3