TMCLocationRec Class Reference
List of all members.
Public Member Functions |
| TMCLocationRec () |
TMCLocationRec * | Clone () 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) |
TVector3 & | GetLocation () |
TVector3 & | GetNextControlDirection () |
TVector3 & | GetPrevControlDirection () |
real32 | GetNextControlDistance () |
real32 | GetPrevControlDistance () |
TVector3 | GetNextControlLocation () |
TVector3 | GetPrevControlLocation () |
TVector3 & | GetNextVectorUp () |
TVector3 & | GetPrevVectorUp () |
TVector3 & | GetNextControlVectorUp () |
TVector3 & | GetPrevControlVectorUp () |
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< TVector3 > | fLinearApprox |
TMCArray< real > | fLinearApproxDistance |
TMCArray< real > | fLinearApproxBezierPos |
TMCArray< TVector3 > | fNormalAcceleration |
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::ConvertTangent |
( |
|
) |
|
void TMCLocationRec::ConvertTangentDerivative |
( |
|
) |
|
void TMCLocationRec::Degenerate |
( |
|
) |
|
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] |
TVector3& TMCLocationRec::GetPrevControlDirection |
( |
|
) |
[inline] |
real32 TMCLocationRec::GetPrevControlDistance |
( |
|
) |
[inline] |
TVector3 TMCLocationRec::GetPrevControlLocation |
( |
|
) |
|
TVector3& TMCLocationRec::GetPrevControlVectorUp |
( |
|
) |
[inline] |
TVector3& TMCLocationRec::GetPrevVectorUp |
( |
|
) |
[inline] |
Return 1/3th of the actual speed
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::UnLink |
( |
|
) |
|
Member Data Documentation
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: