A reimplementation of Mario Kart Wii's physics engine in C++
Loading...
Searching...
No Matches
Kart::KartPullPathTracker Class Reference

#include <KartPullPath.hh>

Description

Tracks the kart's progress along the pull path.

This implementation merges the global and regional tracker into one class.

Definition at line 13 of file KartPullPath.hh.

Inheritance diagram for Kart::KartPullPathTracker:

Public Types

enum class  Type {
  Global ,
  Regional
}
 

Public Member Functions

 KartPullPathTracker (KartPullPath *handle, Type type)
 
void calc ()
 
void setCurrentIdx (s16 idx)
 
void setPointInfo (System::MapdataPointInfo *info)
 

Private Types

enum class  SearchDirection {
  Current ,
  Next ,
  Previous
}
 

Private Member Functions

void calcTrackerGlobal ()
 
void calcTrackerRegional ()
 
f32 getDistance (const EGG::Vector3f &point, const EGG::Vector3f &dir) const
 Gets the distance from the line formed by the point and direction.
 
bool search (SearchDirection searchDirection, s16 &idx, EGG::Vector3f &point, EGG::Vector3f &dir) const
 
- Private Member Functions inherited from Kart::KartObjectProxy
void setPos (const EGG::Vector3f &pos)
 
void setRot (const EGG::Quatf &q)
 
void setInertiaScale (const EGG::Vector3f &scale)
 
KartActionaction ()
 
const KartActionaction () const
 
KartBodybody ()
 
const KartBodybody () const
 
KartCollidecollide ()
 
const KartCollidecollide () const
 
CollisionGroupcollisionGroup ()
 
const CollisionGroupcollisionGroup () const
 
KartMovemove ()
 
const KartMovemove () const
 
KartHalfPipehalfPipe ()
 
const KartHalfPipehalfPipe () const
 
KartScalekartScale ()
 
const KartScalekartScale () const
 
KartJumpjump ()
 
const KartJumpjump () const
 
KartParamparam ()
 
const KartParamparam () const
 
const BSPbsp () const
 
KartPhysicsphysics ()
 
const KartPhysicsphysics () const
 
KartDynamicsdynamics ()
 
const KartDynamicsdynamics () const
 
KartStatestate ()
 
const KartStatestate () const
 
KartSubsub ()
 
const KartSubsub () const
 
KartSuspensionsuspension (u16 suspIdx)
 
const KartSuspensionsuspension (u16 suspIdx) const
 
KartSuspensionPhysicssuspensionPhysics (u16 suspIdx)
 
const KartSuspensionPhysicssuspensionPhysics (u16 suspIdx) const
 
KartTiretire (u16 tireIdx)
 
const KartTiretire (u16 tireIdx) const
 
WheelPhysicstirePhysics (u16 tireIdx)
 
const WheelPhysicstirePhysics (u16 tireIdx) const
 
CollisionDatacollisionData ()
 
const CollisionDatacollisionData () const
 
CollisionDatacollisionData (u16 tireIdx)
 
const CollisionDatacollisionData (u16 tireIdx) const
 
const System::KPadinputs () const
 
Render::KartModelmodel ()
 
const Render::KartModelmodel () const
 
Field::ObjectCollisionKartobjectCollisionKart ()
 
const Field::ObjectCollisionKartobjectCollisionKart () const
 
Field::BoxColUnitboxColUnit ()
 
const Field::BoxColUnitboxColUnit () const
 
const EGG::Vector3fscale () const
 
const EGG::Matrix34fpose () const
 
EGG::Vector3f bodyFront () const
 Returns the third column of the rotation matrix, which is the facing vector.
 
EGG::Vector3f bodyForward () const
 Returns the first column of the rotation matrix, which is the "right" direction.
 
EGG::Vector3f bodyUp () const
 Returns the second column of the rotation matrix, which is the "up" direction.
 
const EGG::Vector3fcomponentXAxis () const
 
const EGG::Vector3fcomponentYAxis () const
 
const EGG::Vector3fcomponentZAxis () const
 
const EGG::Vector3fpos () const
 
const EGG::Vector3fprevPos () const
 
const EGG::QuatffullRot () const
 
const EGG::Vector3fextVel () const
 
const EGG::Vector3fintVel () const
 
const EGG::Vector3fvelocity () const
 
f32 speed () const
 
f32 acceleration () const
 
f32 softSpeedLimit () const
 
const EGG::QuatfmainRot () const
 
const EGG::Vector3fangVel2 () const
 
bool isBike () const
 
u16 suspCount () const
 
u16 tireCount () const
 
bool hasFloorCollision (const WheelPhysics *wheelPhysics) const
 
std::pair< EGG::Vector3f, EGG::Vector3fgetCannonPosRot ()
 
f32 speedRatio () const
 
f32 speedRatioCapped () const
 
bool isInRespawn () const
 
Field::KCLTypeMask wallKclType () const
 
u32 wallKclVariant () const
 
Statusstatus ()
 
const Statusstatus () const
 
const EGG::Vector3fwheelPos (u16 idx) const
 
const EGG::Vector3fwheelEdgePos (u16 idx) const
 
void apply (size_t idx)
 

Private Attributes

Type m_type
 Replaces inheritance for calc.
 
s16 m_currentIdx
 
System::MapdataPointInfom_pointInfo
 
KartPullPathm_handle
 

Additional Inherited Members

- Static Private Member Functions inherited from Kart::KartObjectProxy
static std::list< KartObjectProxy * > & proxyList ()
 

Member Enumeration Documentation

◆ SearchDirection

enum class Kart::KartPullPathTracker::SearchDirection
strongprivate

Definition at line 35 of file KartPullPath.hh.

◆ Type

enum class Kart::KartPullPathTracker::Type
strong

Definition at line 15 of file KartPullPath.hh.

Constructor & Destructor Documentation

◆ KartPullPathTracker()

Kart::KartPullPathTracker::KartPullPathTracker ( KartPullPath * handle,
Type type )
0x8059308C

Definition at line 10 of file KartPullPath.cc.

Member Function Documentation

◆ calc()

void Kart::KartPullPathTracker::calc ( )

Definition at line 16 of file KartPullPath.cc.

◆ calcTrackerGlobal()

void Kart::KartPullPathTracker::calcTrackerGlobal ( )
private0x80593138

Definition at line 27 of file KartPullPath.cc.

◆ calcTrackerRegional()

void Kart::KartPullPathTracker::calcTrackerRegional ( )
private0x80593814

Definition at line 40 of file KartPullPath.cc.

◆ getDistance()

f32 Kart::KartPullPathTracker::getDistance ( const EGG::Vector3f & point,
const EGG::Vector3f & dir ) const
nodiscardprivate0x80593310

Gets the distance from the line formed by the point and direction.

Parameters
pointA point on the line.
dirThe direction of the line.

Definition at line 68 of file KartPullPath.cc.

◆ search()

bool Kart::KartPullPathTracker::search ( SearchDirection searchDirection,
s16 & idx,
EGG::Vector3f & point,
EGG::Vector3f & dir ) const
private0x8059345C

Definition at line 76 of file KartPullPath.cc.

◆ setCurrentIdx()

void Kart::KartPullPathTracker::setCurrentIdx ( s16 idx)
inline

Definition at line 25 of file KartPullPath.hh.

◆ setPointInfo()

void Kart::KartPullPathTracker::setPointInfo ( System::MapdataPointInfo * info)
inline

Definition at line 29 of file KartPullPath.hh.

Member Data Documentation

◆ m_currentIdx

s16 Kart::KartPullPathTracker::m_currentIdx
private

Definition at line 49 of file KartPullPath.hh.

◆ m_handle

KartPullPath* Kart::KartPullPathTracker::m_handle
private

Definition at line 51 of file KartPullPath.hh.

◆ m_pointInfo

System::MapdataPointInfo* Kart::KartPullPathTracker::m_pointInfo
private

Definition at line 50 of file KartPullPath.hh.

◆ m_type

Type Kart::KartPullPathTracker::m_type
private

Replaces inheritance for calc.

Definition at line 48 of file KartPullPath.hh.