Exemple #1
0
Vec2d MyTrack::CalcNormal( double trackPos ) const
{
  int idx = IndexFromPos(trackPos);
  const tTrackSeg* pSeg = m_pSegs[idx].pSeg;

  double t;
  Vec3d pt;
  Vec3d norm;
  CalcPtAndNormal( pSeg, trackPos - pSeg->lgfromstart, t, pt, norm );

  return norm.GetXY();
}
Exemple #2
0
double MyTrack::CalcForwardAngle( double trackPos ) const
{
  int     idx = IndexFromPos(trackPos);
  const tTrackSeg* pSeg = m_pSegs[idx].pSeg;

  double t;
  Vec3d pt;
  Vec3d norm;
  CalcPtAndNormal( pSeg, trackPos - pSeg->lgfromstart, t, pt, norm );

  return Utils::VecAngXY(norm) + PI / 2;
}
Exemple #3
0
//==========================================================================*
// Angle
//--------------------------------------------------------------------------*
double TTrackDescription::ForwardAngle(double TrackPos) const
{
  int Index = IndexFromPos(TrackPos);
  const tTrackSeg* Seg = oSections[Index].Seg;

  double X;
  TVec3d CenterPoint;
  TVec3d Normale;
  NormalizeDir(Seg, TrackPos - Seg->lgfromstart, X, CenterPoint, Normale);

  return TUtils::VecAngXY(Normale) + PI / 2;
}
Exemple #4
0
//==========================================================================*
// To right
//--------------------------------------------------------------------------*
TVec2d TTrackDescription::Normale(double TrackPos) const
{
  //int LastPos = 0;
  int Index = IndexFromPos(TrackPos);
  const tTrackSeg* Seg = oSections[Index].Seg;

  double Tmp;
  TVec3d CenterPoint;
  TVec3d Normale;
  NormalizeDir(Seg, TrackPos - Seg->lgfromstart, Tmp, CenterPoint, Normale);

  return Normale.GetXY();
}