# 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::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

TVector3 TMCLocationRec::fLastBankingV

Not used ?

real TMCLocationRec::fLength

real TMCLocationRec::fLengthFactor

TMCArray<TVector3> TMCLocationRec::fLinearApprox

TMCArray<real> TMCLocationRec::fLinearApproxBezierPos

TMCArray<real> TMCLocationRec::fLinearApproxDistance

TVector3 TMCLocationRec::fLocation

TVector3 TMCLocationRec::fNextControlDirection`[protected]`

real32 TMCLocationRec::fNextControlDistance`[protected]`

TVector3 TMCLocationRec::fNextControlVectorUp`[protected]`

TVector3 TMCLocationRec::fNextVectorUp`[protected]`

TMCArray<TVector3> TMCLocationRec::fNormalAcceleration

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

TVector3 TMCLocationRec::fPrevControlDirection`[protected]`

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

real32 TMCLocationRec::fPrevControlDistance`[protected]`

TVector3 TMCLocationRec::fPrevControlVectorUp`[protected]`

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

TVector3 TMCLocationRec::fPrevVectorUp`[protected]`

real TMCLocationRec::fSegmentBeginPos

EBezierType TMCLocationRec::fType

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

- MCBezierPath.h