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

#include <KartObjectProxy.hh>

Description

Base class for most kart-related objects.

Definition at line 64 of file KartObjectProxy.hh.

Inheritance diagram for Kart::KartObjectProxy:

Setters

void setPos (const EGG::Vector3f &pos)
 
void setRot (const EGG::Quatf &q)
 
void setInertiaScale (const EGG::Vector3f &scale)
 

Getters

KartActionaction ()
 
const KartActionaction () const
 
KartBodybody ()
 
const KartBodybody () const
 
KartCollidecollide ()
 
const KartCollidecollide () const
 
CollisionGroupcollisionGroup ()
 
const CollisionGroupcollisionGroup () const
 
KartMovemove ()
 
const KartMovemove () const
 
KartHalfPipehalfPipe ()
 
const KartHalfPipehalfPipe () 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
 
static std::list< KartObjectProxy * > & proxyList ()
 

Protected Member Functions

void apply (size_t idx)
 

Static Private Member Functions

static void ApplyAll (const KartAccessor *pointers)
 For all proxies in the static list, synchronizes all pointers to the KartAccessor.
 

Private Attributes

const KartAccessorm_accessor
 

Static Private Attributes

static std::list< KartObjectProxy * > s_proxyList
 List of all KartObjectProxy children.
 

Constructor & Destructor Documentation

◆ KartObjectProxy()

Kart::KartObjectProxy::KartObjectProxy ( )
0x8059018C

Definition at line 22 of file KartObjectProxy.cc.

Member Function Documentation

◆ acceleration()

f32 Kart::KartObjectProxy::acceleration ( ) const
nodiscard

Definition at line 338 of file KartObjectProxy.cc.

◆ action() [1/2]

KartAction * Kart::KartObjectProxy::action ( )
nodiscard0x80590D20

Definition at line 46 of file KartObjectProxy.cc.

◆ action() [2/2]

const KartAction * Kart::KartObjectProxy::action ( ) const
nodiscard0x80590D20

Definition at line 51 of file KartObjectProxy.cc.

◆ angVel2()

const EGG::Vector3f & Kart::KartObjectProxy::angVel2 ( ) const
nodiscard

Definition at line 350 of file KartObjectProxy.cc.

◆ apply()

void Kart::KartObjectProxy::apply ( size_t idx)
protected0x805901D0

Definition at line 406 of file KartObjectProxy.cc.

◆ ApplyAll()

void Kart::KartObjectProxy::ApplyAll ( const KartAccessor * pointers)
staticprivate0x80590138

For all proxies in the static list, synchronizes all pointers to the KartAccessor.

Parameters
pointersThe pointer to synchronize all other proxies to.

Definition at line 413 of file KartObjectProxy.cc.

◆ body() [1/2]

KartBody * Kart::KartObjectProxy::body ( )
nodiscard0x8059069C

Definition at line 56 of file KartObjectProxy.cc.

◆ body() [2/2]

const KartBody * Kart::KartObjectProxy::body ( ) const
nodiscard0x8059069C

Definition at line 61 of file KartObjectProxy.cc.

◆ bodyForward()

EGG::Vector3f Kart::KartObjectProxy::bodyForward ( ) const
nodiscard0x80590C44

Returns the first column of the rotation matrix, which is the "right" direction.

Definition at line 280 of file KartObjectProxy.cc.

◆ bodyFront()

EGG::Vector3f Kart::KartObjectProxy::bodyFront ( ) const
nodiscard0x80590C94

Returns the third column of the rotation matrix, which is the facing vector.

Definition at line 273 of file KartObjectProxy.cc.

◆ bodyUp()

EGG::Vector3f Kart::KartObjectProxy::bodyUp ( ) const
nodiscard0x80590C6C

Returns the second column of the rotation matrix, which is the "up" direction.

Definition at line 287 of file KartObjectProxy.cc.

◆ boxColUnit() [1/2]

Field::BoxColUnit * Kart::KartObjectProxy::boxColUnit ( )
nodiscard0x80591520

Definition at line 242 of file KartObjectProxy.cc.

◆ boxColUnit() [2/2]

const Field::BoxColUnit * Kart::KartObjectProxy::boxColUnit ( ) const
nodiscard0x80591520

Definition at line 247 of file KartObjectProxy.cc.

◆ bsp()

const BSP & Kart::KartObjectProxy::bsp ( ) const
nodiscard0x80590888

Definition at line 124 of file KartObjectProxy.cc.

◆ collide() [1/2]

KartCollide * Kart::KartObjectProxy::collide ( )
nodiscard0x8059084C

Definition at line 66 of file KartObjectProxy.cc.

◆ collide() [2/2]

const KartCollide * Kart::KartObjectProxy::collide ( ) const
nodiscard0x8059084C

Definition at line 71 of file KartObjectProxy.cc.

◆ collisionData() [1/4]

CollisionData & Kart::KartObjectProxy::collisionData ( )
nodiscard0x8059081C

Definition at line 207 of file KartObjectProxy.cc.

◆ collisionData() [2/4]

const CollisionData & Kart::KartObjectProxy::collisionData ( ) const
nodiscard0x8059081C

Definition at line 212 of file KartObjectProxy.cc.

◆ collisionData() [3/4]

CollisionData & Kart::KartObjectProxy::collisionData ( u16 tireIdx)
nodiscard0x80590834

Definition at line 252 of file KartObjectProxy.cc.

◆ collisionData() [4/4]

const CollisionData & Kart::KartObjectProxy::collisionData ( u16 tireIdx) const
nodiscard0x80590834

Definition at line 257 of file KartObjectProxy.cc.

◆ collisionGroup() [1/2]

CollisionGroup * Kart::KartObjectProxy::collisionGroup ( )
nodiscard0x805907D8

Definition at line 76 of file KartObjectProxy.cc.

◆ collisionGroup() [2/2]

const CollisionGroup * Kart::KartObjectProxy::collisionGroup ( ) const
nodiscard0x805907D8

Definition at line 81 of file KartObjectProxy.cc.

◆ componentXAxis()

const EGG::Vector3f & Kart::KartObjectProxy::componentXAxis ( ) const
nodiscard0x80590CBC

Definition at line 293 of file KartObjectProxy.cc.

◆ componentYAxis()

const EGG::Vector3f & Kart::KartObjectProxy::componentYAxis ( ) const
nodiscard0x80590CD0

Definition at line 298 of file KartObjectProxy.cc.

◆ componentZAxis()

const EGG::Vector3f & Kart::KartObjectProxy::componentZAxis ( ) const
nodiscard0x80590CE4

Definition at line 303 of file KartObjectProxy.cc.

◆ dynamics() [1/2]

KartDynamics * Kart::KartObjectProxy::dynamics ( )
nodiscard0x805903E0

Definition at line 139 of file KartObjectProxy.cc.

◆ dynamics() [2/2]

const KartDynamics * Kart::KartObjectProxy::dynamics ( ) const
nodiscard0x805903E0

Definition at line 144 of file KartObjectProxy.cc.

◆ extVel()

const EGG::Vector3f & Kart::KartObjectProxy::extVel ( ) const
nodiscard

Definition at line 321 of file KartObjectProxy.cc.

◆ fullRot()

const EGG::Quatf & Kart::KartObjectProxy::fullRot ( ) const
nodiscard

Definition at line 317 of file KartObjectProxy.cc.

◆ getCannonPosRot()

std::pair< EGG::Vector3f, EGG::Vector3f > Kart::KartObjectProxy::getCannonPosRot ( )
nodiscard0x8058539C

Definition at line 375 of file KartObjectProxy.cc.

◆ halfPipe() [1/2]

KartHalfPipe * Kart::KartObjectProxy::halfPipe ( )
nodiscard

Definition at line 95 of file KartObjectProxy.cc.

◆ halfPipe() [2/2]

const KartHalfPipe * Kart::KartObjectProxy::halfPipe ( ) const
nodiscard

Definition at line 99 of file KartObjectProxy.cc.

◆ hasFloorCollision()

bool Kart::KartObjectProxy::hasFloorCollision ( const WheelPhysics * wheelPhysics) const
nodiscard0x80590338

Definition at line 370 of file KartObjectProxy.cc.

◆ inputs()

const System::KPad * Kart::KartObjectProxy::inputs ( ) const
nodiscard0x805903F4

Definition at line 217 of file KartObjectProxy.cc.

◆ intVel()

const EGG::Vector3f & Kart::KartObjectProxy::intVel ( ) const
nodiscard

Definition at line 325 of file KartObjectProxy.cc.

◆ isBike()

bool Kart::KartObjectProxy::isBike ( ) const
nodiscard0x80590A6C

Definition at line 355 of file KartObjectProxy.cc.

◆ isInRespawn()

bool Kart::KartObjectProxy::isInRespawn ( ) const
nodiscard0x805914F4

Definition at line 401 of file KartObjectProxy.cc.

◆ jump() [1/2]

KartJump * Kart::KartObjectProxy::jump ( )
nodiscard0x80591914

Definition at line 104 of file KartObjectProxy.cc.

◆ jump() [2/2]

const KartJump * Kart::KartObjectProxy::jump ( ) const
nodiscard0x80591914

Definition at line 109 of file KartObjectProxy.cc.

◆ mainRot()

const EGG::Quatf & Kart::KartObjectProxy::mainRot ( ) const
nodiscard

Definition at line 346 of file KartObjectProxy.cc.

◆ model() [1/2]

Render::KartModel * Kart::KartObjectProxy::model ( )
nodiscard0x80590A40

Definition at line 222 of file KartObjectProxy.cc.

◆ model() [2/2]

const Render::KartModel * Kart::KartObjectProxy::model ( ) const
nodiscard0x80590A40

Definition at line 227 of file KartObjectProxy.cc.

◆ move() [1/2]

KartMove * Kart::KartObjectProxy::move ( )
nodiscard0x8059077C

Definition at line 86 of file KartObjectProxy.cc.

◆ move() [2/2]

const KartMove * Kart::KartObjectProxy::move ( ) const
nodiscard0x8059077C

Definition at line 91 of file KartObjectProxy.cc.

◆ objectCollisionKart() [1/2]

Field::ObjectCollisionKart * Kart::KartObjectProxy::objectCollisionKart ( )
nodiscard0x805907C0

Definition at line 232 of file KartObjectProxy.cc.

◆ objectCollisionKart() [2/2]

const Field::ObjectCollisionKart * Kart::KartObjectProxy::objectCollisionKart ( ) const
nodiscard0x805907C0

Definition at line 237 of file KartObjectProxy.cc.

◆ param() [1/2]

KartParam * Kart::KartObjectProxy::param ( )
nodiscard0x80590864

Definition at line 114 of file KartObjectProxy.cc.

◆ param() [2/2]

const KartParam * Kart::KartObjectProxy::param ( ) const
nodiscard0x80590864

Definition at line 119 of file KartObjectProxy.cc.

◆ physics() [1/2]

KartPhysics * Kart::KartObjectProxy::physics ( )
nodiscard0x805903AC

Definition at line 129 of file KartObjectProxy.cc.

◆ physics() [2/2]

const KartPhysics * Kart::KartObjectProxy::physics ( ) const
nodiscard0x805903AC

Definition at line 134 of file KartObjectProxy.cc.

◆ pos()

const EGG::Vector3f & Kart::KartObjectProxy::pos ( ) const
nodiscard0x8059020C

Definition at line 308 of file KartObjectProxy.cc.

◆ pose()

const EGG::Matrix34f & Kart::KartObjectProxy::pose ( ) const
nodiscard0x80590264

Definition at line 267 of file KartObjectProxy.cc.

◆ prevPos()

const EGG::Vector3f & Kart::KartObjectProxy::prevPos ( ) const
nodiscard0x80590224

Definition at line 313 of file KartObjectProxy.cc.

◆ proxyList()

static std::list< KartObjectProxy * > & Kart::KartObjectProxy::proxyList ( )
inlinestaticnodiscard

Definition at line 153 of file KartObjectProxy.hh.

◆ scale()

const EGG::Vector3f & Kart::KartObjectProxy::scale ( ) const
nodiscard0x805914BC

Definition at line 262 of file KartObjectProxy.cc.

◆ setInertiaScale()

void Kart::KartObjectProxy::setInertiaScale ( const EGG::Vector3f & scale)
0x80591664

Definition at line 40 of file KartObjectProxy.cc.

◆ setPos()

void Kart::KartObjectProxy::setPos ( const EGG::Vector3f & pos)
0x80590238

Definition at line 29 of file KartObjectProxy.cc.

◆ setRot()

void Kart::KartObjectProxy::setRot ( const EGG::Quatf & q)
0x80590288

Definition at line 34 of file KartObjectProxy.cc.

◆ softSpeedLimit()

f32 Kart::KartObjectProxy::softSpeedLimit ( ) const
nodiscard

Definition at line 342 of file KartObjectProxy.cc.

◆ speed()

f32 Kart::KartObjectProxy::speed ( ) const
nodiscard0x80590CF8

Definition at line 334 of file KartObjectProxy.cc.

◆ speedRatio()

f32 Kart::KartObjectProxy::speedRatio ( ) const
nodiscard0x80590DD0

Definition at line 391 of file KartObjectProxy.cc.

◆ speedRatioCapped()

f32 Kart::KartObjectProxy::speedRatioCapped ( ) const
nodiscard0x80590DC0

Definition at line 396 of file KartObjectProxy.cc.

◆ state() [1/2]

KartState * Kart::KartObjectProxy::state ( )
nodiscard

Definition at line 148 of file KartObjectProxy.cc.

◆ state() [2/2]

const KartState * Kart::KartObjectProxy::state ( ) const
nodiscard

Definition at line 152 of file KartObjectProxy.cc.

◆ sub() [1/2]

KartSub * Kart::KartObjectProxy::sub ( )
nodiscard0x80590764

Definition at line 157 of file KartObjectProxy.cc.

◆ sub() [2/2]

const KartSub * Kart::KartObjectProxy::sub ( ) const
nodiscard0x80590764

Definition at line 162 of file KartObjectProxy.cc.

◆ suspCount()

u16 Kart::KartObjectProxy::suspCount ( ) const
nodiscard0x805902DC

Definition at line 360 of file KartObjectProxy.cc.

◆ suspension() [1/2]

KartSuspension * Kart::KartObjectProxy::suspension ( u16 suspIdx)
nodiscard0x805906B4

Definition at line 167 of file KartObjectProxy.cc.

◆ suspension() [2/2]

const KartSuspension * Kart::KartObjectProxy::suspension ( u16 suspIdx) const
nodiscard0x805906B4

Definition at line 172 of file KartObjectProxy.cc.

◆ suspensionPhysics() [1/2]

KartSuspensionPhysics * Kart::KartObjectProxy::suspensionPhysics ( u16 suspIdx)
nodiscard0x80590704

Definition at line 177 of file KartObjectProxy.cc.

◆ suspensionPhysics() [2/2]

const KartSuspensionPhysics * Kart::KartObjectProxy::suspensionPhysics ( u16 suspIdx) const
nodiscard0x80590704

Definition at line 182 of file KartObjectProxy.cc.

◆ tire() [1/2]

KartTire * Kart::KartObjectProxy::tire ( u16 tireIdx)
nodiscard0x805906DC

Definition at line 187 of file KartObjectProxy.cc.

◆ tire() [2/2]

const KartTire * Kart::KartObjectProxy::tire ( u16 tireIdx) const
nodiscard0x805906DC

Definition at line 192 of file KartObjectProxy.cc.

◆ tireCount()

u16 Kart::KartObjectProxy::tireCount ( ) const
nodiscard0x805902EC

Definition at line 365 of file KartObjectProxy.cc.

◆ tirePhysics() [1/2]

WheelPhysics * Kart::KartObjectProxy::tirePhysics ( u16 tireIdx)
nodiscard0x80590734

Definition at line 197 of file KartObjectProxy.cc.

◆ tirePhysics() [2/2]

const WheelPhysics * Kart::KartObjectProxy::tirePhysics ( u16 tireIdx) const
nodiscard0x80590734

Definition at line 202 of file KartObjectProxy.cc.

◆ velocity()

const EGG::Vector3f & Kart::KartObjectProxy::velocity ( ) const
nodiscard

Definition at line 329 of file KartObjectProxy.cc.

Member Data Documentation

◆ m_accessor

const KartAccessor* Kart::KartObjectProxy::m_accessor
private

Definition at line 164 of file KartObjectProxy.hh.

◆ s_proxyList

std::list< KartObjectProxy * > Kart::KartObjectProxy::s_proxyList
staticprivate0x809C1900

List of all KartObjectProxy children.

Definition at line 166 of file KartObjectProxy.hh.