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

#include <KartObjectProxy.hh>

Description

Base class for most kart-related objects.

Definition at line 72 of file KartObjectProxy.hh.

Inheritance diagram for Kinoko::Kart::KartObjectProxy:

Setters

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

Getters

KartAction * action ()
const KartAction * action () const
KartBody * body ()
const KartBody * body () const
KartCollide * collide ()
const KartCollide * collide () const
CollisionGroup * collisionGroup ()
const CollisionGroup * collisionGroup () const
KartMove * move ()
const KartMove * move () const
KartHalfPipe * halfPipe ()
const KartHalfPipe * halfPipe () const
KartScale * kartScale ()
const KartScale * kartScale () const
KartJump * jump ()
const KartJump * jump () const
KartParam * param ()
const KartParam * param () const
const BSP & bsp () const
KartPhysics * physics ()
const KartPhysics * physics () const
KartDynamics * dynamics ()
const KartDynamics * dynamics () const
KartState * state ()
const KartState * state () const
KartSub * sub ()
const KartSub * sub () const
KartSuspension * suspension (u16 suspIdx)
const KartSuspension * suspension (u16 suspIdx) const
KartSuspensionPhysics * suspensionPhysics (u16 suspIdx)
const KartSuspensionPhysics * suspensionPhysics (u16 suspIdx) const
KartTire * tire (u16 tireIdx)
const KartTire * tire (u16 tireIdx) const
WheelPhysics * tirePhysics (u16 tireIdx)
const WheelPhysics * tirePhysics (u16 tireIdx) const
CollisionData & collisionData ()
const CollisionData & collisionData () const
CollisionData & collisionData (u16 tireIdx)
const CollisionData & collisionData (u16 tireIdx) const
const System::KPad * inputs () const
Render::KartModel * model ()
const Render::KartModel * model () const
Field::ObjectCollisionKart * objectCollisionKart ()
const Field::ObjectCollisionKart * objectCollisionKart () const
Field::BoxColUnit * boxColUnit ()
const Field::BoxColUnit * boxColUnit () const
const EGG::Vector3f & scale () const
const EGG::Matrix34f & pose () 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::Vector3f & componentXAxis () const
const EGG::Vector3f & componentYAxis () const
const EGG::Vector3f & componentZAxis () const
const EGG::Vector3f & pos () const
const EGG::Vector3f & prevPos () const
const EGG::Quatf & fullRot () const
const EGG::Vector3f & extVel () const
const EGG::Vector3f & intVel () const
const EGG::Vector3f & velocity () const
f32 speed () const
f32 acceleration () const
f32 softSpeedLimit () const
const EGG::Quatf & mainRot () const
const EGG::Vector3f & angVel2 () const
bool isBike () const
u16 suspCount () const
u16 tireCount () const
bool hasFloorCollision (const WheelPhysics *wheelPhysics) const
std::pair< EGG::Vector3f, EGG::Vector3f > getCannonPosRot ()
f32 speedRatio () const
f32 speedRatioCapped () const
bool isInRespawn () const
Field::KCLTypeMask wallKclType () const
u32 wallKclVariant () const
Status & status ()
const Status & status () const
const EGG::Vector3f & wheelPos (u16 idx) const
const EGG::Vector3f & wheelEdgePos (u16 idx) const
f32 cameraDistY () const
s32 hopStickX () const
KartParam::Stats::DriftType vehicleType () const
static std::list< KartObjectProxy *, EGG::Allocator< 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 KartAccessor * m_accessor

Static Private Attributes

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

Constructor & Destructor Documentation

◆ KartObjectProxy()

Kinoko::Kart::KartObjectProxy::KartObjectProxy ( )
0x8059018C

Definition at line 22 of file KartObjectProxy.cc.

Member Function Documentation

◆ acceleration()

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

Definition at line 346 of file KartObjectProxy.cc.

◆ action() [1/2]

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

Definition at line 46 of file KartObjectProxy.cc.

◆ action() [2/2]

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

Definition at line 51 of file KartObjectProxy.cc.

◆ angVel2()

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

Definition at line 358 of file KartObjectProxy.cc.

◆ apply()

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

Definition at line 461 of file KartObjectProxy.cc.

◆ ApplyAll()

void Kinoko::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 468 of file KartObjectProxy.cc.

◆ body() [1/2]

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

Definition at line 56 of file KartObjectProxy.cc.

◆ body() [2/2]

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

Definition at line 61 of file KartObjectProxy.cc.

◆ bodyForward()

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

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

Definition at line 288 of file KartObjectProxy.cc.

◆ bodyFront()

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

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

Definition at line 281 of file KartObjectProxy.cc.

◆ bodyUp()

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

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

Definition at line 295 of file KartObjectProxy.cc.

◆ boxColUnit() [1/2]

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

Definition at line 250 of file KartObjectProxy.cc.

◆ boxColUnit() [2/2]

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

Definition at line 255 of file KartObjectProxy.cc.

◆ bsp()

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

Definition at line 132 of file KartObjectProxy.cc.

◆ cameraDistY()

f32 Kinoko::Kart::KartObjectProxy::cameraDistY ( ) const
nodiscard0x805909C8

Definition at line 442 of file KartObjectProxy.cc.

◆ collide() [1/2]

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

Definition at line 66 of file KartObjectProxy.cc.

◆ collide() [2/2]

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

Definition at line 71 of file KartObjectProxy.cc.

◆ collisionData() [1/4]

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

Definition at line 215 of file KartObjectProxy.cc.

◆ collisionData() [2/4]

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

Definition at line 220 of file KartObjectProxy.cc.

◆ collisionData() [3/4]

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

Definition at line 260 of file KartObjectProxy.cc.

◆ collisionData() [4/4]

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

Definition at line 265 of file KartObjectProxy.cc.

◆ collisionGroup() [1/2]

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

Definition at line 76 of file KartObjectProxy.cc.

◆ collisionGroup() [2/2]

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

Definition at line 81 of file KartObjectProxy.cc.

◆ componentXAxis()

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

Definition at line 301 of file KartObjectProxy.cc.

◆ componentYAxis()

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

Definition at line 306 of file KartObjectProxy.cc.

◆ componentZAxis()

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

Definition at line 311 of file KartObjectProxy.cc.

◆ dynamics() [1/2]

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

Definition at line 147 of file KartObjectProxy.cc.

◆ dynamics() [2/2]

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

Definition at line 152 of file KartObjectProxy.cc.

◆ extVel()

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

Definition at line 329 of file KartObjectProxy.cc.

◆ fullRot()

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

Definition at line 325 of file KartObjectProxy.cc.

◆ getCannonPosRot()

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

Definition at line 383 of file KartObjectProxy.cc.

◆ halfPipe() [1/2]

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

Definition at line 95 of file KartObjectProxy.cc.

◆ halfPipe() [2/2]

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

Definition at line 99 of file KartObjectProxy.cc.

◆ hasFloorCollision()

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

Definition at line 378 of file KartObjectProxy.cc.

◆ hopStickX()

s32 Kinoko::Kart::KartObjectProxy::hopStickX ( ) const
nodiscard0x805909F4

Definition at line 451 of file KartObjectProxy.cc.

◆ inputs()

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

Definition at line 225 of file KartObjectProxy.cc.

◆ intVel()

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

Definition at line 333 of file KartObjectProxy.cc.

◆ isBike()

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

Definition at line 363 of file KartObjectProxy.cc.

◆ isInRespawn()

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

Definition at line 409 of file KartObjectProxy.cc.

◆ jump() [1/2]

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

Definition at line 112 of file KartObjectProxy.cc.

◆ jump() [2/2]

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

Definition at line 117 of file KartObjectProxy.cc.

◆ kartScale() [1/2]

KartScale * Kinoko::Kart::KartObjectProxy::kartScale ( )
nodiscard

Definition at line 103 of file KartObjectProxy.cc.

◆ kartScale() [2/2]

const KartScale * Kinoko::Kart::KartObjectProxy::kartScale ( ) const
nodiscard

Definition at line 107 of file KartObjectProxy.cc.

◆ mainRot()

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

Definition at line 354 of file KartObjectProxy.cc.

◆ model() [1/2]

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

Definition at line 230 of file KartObjectProxy.cc.

◆ model() [2/2]

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

Definition at line 235 of file KartObjectProxy.cc.

◆ move() [1/2]

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

Definition at line 86 of file KartObjectProxy.cc.

◆ move() [2/2]

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

Definition at line 91 of file KartObjectProxy.cc.

◆ objectCollisionKart() [1/2]

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

Definition at line 240 of file KartObjectProxy.cc.

◆ objectCollisionKart() [2/2]

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

Definition at line 245 of file KartObjectProxy.cc.

◆ param() [1/2]

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

Definition at line 122 of file KartObjectProxy.cc.

◆ param() [2/2]

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

Definition at line 127 of file KartObjectProxy.cc.

◆ physics() [1/2]

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

Definition at line 137 of file KartObjectProxy.cc.

◆ physics() [2/2]

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

Definition at line 142 of file KartObjectProxy.cc.

◆ pos()

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

Definition at line 316 of file KartObjectProxy.cc.

◆ pose()

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

Definition at line 275 of file KartObjectProxy.cc.

◆ prevPos()

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

Definition at line 321 of file KartObjectProxy.cc.

◆ proxyList()

std::list< KartObjectProxy *, EGG::Allocator< KartObjectProxy * > > & Kinoko::Kart::KartObjectProxy::proxyList ( )
inlinestaticnodiscard

Definition at line 173 of file KartObjectProxy.hh.

◆ scale()

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

Definition at line 270 of file KartObjectProxy.cc.

◆ setInertiaScale()

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

Definition at line 40 of file KartObjectProxy.cc.

◆ setPos()

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

Definition at line 29 of file KartObjectProxy.cc.

◆ setRot()

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

Definition at line 34 of file KartObjectProxy.cc.

◆ softSpeedLimit()

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

Definition at line 350 of file KartObjectProxy.cc.

◆ speed()

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

Definition at line 342 of file KartObjectProxy.cc.

◆ speedRatio()

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

Definition at line 399 of file KartObjectProxy.cc.

◆ speedRatioCapped()

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

Definition at line 404 of file KartObjectProxy.cc.

◆ state() [1/2]

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

Definition at line 156 of file KartObjectProxy.cc.

◆ state() [2/2]

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

Definition at line 160 of file KartObjectProxy.cc.

◆ status() [1/2]

Status & Kinoko::Kart::KartObjectProxy::status ( )
nodiscard

Definition at line 423 of file KartObjectProxy.cc.

◆ status() [2/2]

const Status & Kinoko::Kart::KartObjectProxy::status ( ) const
nodiscard

Definition at line 427 of file KartObjectProxy.cc.

◆ sub() [1/2]

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

Definition at line 165 of file KartObjectProxy.cc.

◆ sub() [2/2]

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

Definition at line 170 of file KartObjectProxy.cc.

◆ suspCount()

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

Definition at line 368 of file KartObjectProxy.cc.

◆ suspension() [1/2]

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

Definition at line 175 of file KartObjectProxy.cc.

◆ suspension() [2/2]

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

Definition at line 180 of file KartObjectProxy.cc.

◆ suspensionPhysics() [1/2]

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

Definition at line 185 of file KartObjectProxy.cc.

◆ suspensionPhysics() [2/2]

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

Definition at line 190 of file KartObjectProxy.cc.

◆ tire() [1/2]

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

Definition at line 195 of file KartObjectProxy.cc.

◆ tire() [2/2]

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

Definition at line 200 of file KartObjectProxy.cc.

◆ tireCount()

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

Definition at line 373 of file KartObjectProxy.cc.

◆ tirePhysics() [1/2]

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

Definition at line 205 of file KartObjectProxy.cc.

◆ tirePhysics() [2/2]

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

Definition at line 210 of file KartObjectProxy.cc.

◆ vehicleType()

KartParam::Stats::DriftType Kinoko::Kart::KartObjectProxy::vehicleType ( ) const
nodiscard0x80590A10

Definition at line 456 of file KartObjectProxy.cc.

◆ velocity()

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

Definition at line 337 of file KartObjectProxy.cc.

◆ wallKclType()

Field::KCLTypeMask Kinoko::Kart::KartObjectProxy::wallKclType ( ) const
nodiscard0x805911A8

Definition at line 414 of file KartObjectProxy.cc.

◆ wallKclVariant()

u32 Kinoko::Kart::KartObjectProxy::wallKclVariant ( ) const
nodiscard0x805911C0

Definition at line 419 of file KartObjectProxy.cc.

◆ wheelEdgePos()

const EGG::Vector3f & Kinoko::Kart::KartObjectProxy::wheelEdgePos ( u16 idx) const
nodiscard0x80590390

Definition at line 437 of file KartObjectProxy.cc.

◆ wheelPos()

const EGG::Vector3f & Kinoko::Kart::KartObjectProxy::wheelPos ( u16 idx) const
nodiscard0x8059031C

Definition at line 432 of file KartObjectProxy.cc.

Member Data Documentation

◆ m_accessor

const KartAccessor* Kinoko::Kart::KartObjectProxy::m_accessor
private

Definition at line 184 of file KartObjectProxy.hh.

◆ s_proxyList

std::list< KartObjectProxy *, EGG::Allocator< KartObjectProxy * > > Kinoko::Kart::KartObjectProxy::s_proxyList
staticprivate0x809C1900

List of all KartObjectProxy children.

Definition at line 187 of file KartObjectProxy.hh.