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

#include <KartSuspensionPhysics.hh>

Description

Manages wheel physics and collision checks.

Definition at line 13 of file KartSuspensionPhysics.hh.

Inheritance diagram for Kinoko::Kart::WheelPhysics:

Public Member Functions

 WheelPhysics (u16 wheelIdx, u16 bspWheelIdx)
void init ()
void initBsp ()
void reset ()
void realign (const EGG::Vector3f &bottom, const EGG::Vector3f &vehicleMovement)
void updateCollision (const EGG::Vector3f &bottom, const EGG::Vector3f &topmostPos)
void calcSuspension (const EGG::Vector3f &forward)

Setters

void setSuspTravel (f32 suspTravel)
void setPos (const EGG::Vector3f &pos)
void setLastPos (const EGG::Vector3f &pos)
void setLastPosDiff (const EGG::Vector3f &pos)
void setWheelEdgePos (const EGG::Vector3f &pos)
void setColVel (const EGG::Vector3f &vec)

Getters

const EGG::Vector3f & pos () const
const EGG::Vector3f & lastPosDiff () const
f32 suspTravel ()
const EGG::Vector3f & topmostPos () const
CollisionGroup * hitboxGroup ()
const CollisionGroup * hitboxGroup () const
const EGG::Vector3f & speed () const
const EGG::Vector3f & wheelEdgePos () const
f32 effectiveRadius () const
f32 _74 () const

Private Attributes

u16 m_wheelIdx
u16 m_bspWheelIdx
const BSP::Wheel * m_bspWheel
CollisionGroup * m_hitboxGroup
EGG::Vector3f m_pos
EGG::Vector3f m_lastPos
EGG::Vector3f m_lastPosDiff
f32 m_suspTravel
EGG::Vector3f m_colVel
EGG::Vector3f m_speed
EGG::Vector3f m_wheelEdgePos
f32 m_effectiveRadius
f32 m_targetEffectiveRadius
f32 m_74
EGG::Vector3f m_topmostPos

Additional Inherited Members

void setPos (const EGG::Vector3f &pos)
void setRot (const EGG::Quatf &q)
void setInertiaScale (const EGG::Vector3f &scale)
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
void apply (size_t idx)
static std::list< KartObjectProxy *, EGG::Allocator< KartObjectProxy * > > & proxyList ()

Constructor & Destructor Documentation

◆ WheelPhysics()

Kinoko::Kart::WheelPhysics::WheelPhysics ( u16 wheelIdx,
u16 bspWheelIdx )
0x8059940C

Definition at line 15 of file KartSuspensionPhysics.cc.

◆ ~WheelPhysics()

Kinoko::Kart::WheelPhysics::~WheelPhysics ( )
0x8059A9C4

Definition at line 19 of file KartSuspensionPhysics.cc.

Member Function Documentation

◆ _74()

f32 Kinoko::Kart::WheelPhysics::_74 ( ) const
inlinenodiscard

Definition at line 90 of file KartSuspensionPhysics.hh.

◆ calcSuspension()

void Kinoko::Kart::WheelPhysics::calcSuspension ( const EGG::Vector3f & forward)
0x80599DC0

Definition at line 123 of file KartSuspensionPhysics.cc.

◆ effectiveRadius()

f32 Kinoko::Kart::WheelPhysics::effectiveRadius ( ) const
inlinenodiscard

Definition at line 86 of file KartSuspensionPhysics.hh.

◆ hitboxGroup() [1/2]

CollisionGroup * Kinoko::Kart::WheelPhysics::hitboxGroup ( )
inlinenodiscard

Definition at line 70 of file KartSuspensionPhysics.hh.

◆ hitboxGroup() [2/2]

const CollisionGroup * Kinoko::Kart::WheelPhysics::hitboxGroup ( ) const
inlinenodiscard

Definition at line 74 of file KartSuspensionPhysics.hh.

◆ init()

void Kinoko::Kart::WheelPhysics::init ( )
0x80599470

Definition at line 24 of file KartSuspensionPhysics.cc.

◆ initBsp()

void Kinoko::Kart::WheelPhysics::initBsp ( )
0x805994D4

Definition at line 30 of file KartSuspensionPhysics.cc.

◆ lastPosDiff()

const EGG::Vector3f & Kinoko::Kart::WheelPhysics::lastPosDiff ( ) const
inlinenodiscard

Definition at line 58 of file KartSuspensionPhysics.hh.

◆ pos()

const EGG::Vector3f & Kinoko::Kart::WheelPhysics::pos ( ) const
inlinenodiscard

Definition at line 54 of file KartSuspensionPhysics.hh.

◆ realign()

void Kinoko::Kart::WheelPhysics::realign ( const EGG::Vector3f & bottom,
const EGG::Vector3f & vehicleMovement )
0x80599AD0

Definition at line 55 of file KartSuspensionPhysics.cc.

◆ reset()

void Kinoko::Kart::WheelPhysics::reset ( )
0x80599508

Definition at line 35 of file KartSuspensionPhysics.cc.

◆ setColVel()

void Kinoko::Kart::WheelPhysics::setColVel ( const EGG::Vector3f & vec)
inline

Definition at line 48 of file KartSuspensionPhysics.hh.

◆ setLastPos()

void Kinoko::Kart::WheelPhysics::setLastPos ( const EGG::Vector3f & pos)
inline

Definition at line 36 of file KartSuspensionPhysics.hh.

◆ setLastPosDiff()

void Kinoko::Kart::WheelPhysics::setLastPosDiff ( const EGG::Vector3f & pos)
inline

Definition at line 40 of file KartSuspensionPhysics.hh.

◆ setPos()

void Kinoko::Kart::WheelPhysics::setPos ( const EGG::Vector3f & pos)
inline

Definition at line 32 of file KartSuspensionPhysics.hh.

◆ setSuspTravel()

void Kinoko::Kart::WheelPhysics::setSuspTravel ( f32 suspTravel)
inline

Definition at line 28 of file KartSuspensionPhysics.hh.

◆ setWheelEdgePos()

void Kinoko::Kart::WheelPhysics::setWheelEdgePos ( const EGG::Vector3f & pos)
inline

Definition at line 44 of file KartSuspensionPhysics.hh.

◆ speed()

const EGG::Vector3f & Kinoko::Kart::WheelPhysics::speed ( ) const
inlinenodiscard

Definition at line 78 of file KartSuspensionPhysics.hh.

◆ suspTravel()

f32 Kinoko::Kart::WheelPhysics::suspTravel ( )
inlinenodiscard

Definition at line 62 of file KartSuspensionPhysics.hh.

◆ topmostPos()

const EGG::Vector3f & Kinoko::Kart::WheelPhysics::topmostPos ( ) const
inlinenodiscard

Definition at line 66 of file KartSuspensionPhysics.hh.

◆ updateCollision()

void Kinoko::Kart::WheelPhysics::updateCollision ( const EGG::Vector3f & bottom,
const EGG::Vector3f & topmostPos )
0x80599690

Definition at line 73 of file KartSuspensionPhysics.cc.

◆ wheelEdgePos()

const EGG::Vector3f & Kinoko::Kart::WheelPhysics::wheelEdgePos ( ) const
inlinenodiscard

Definition at line 82 of file KartSuspensionPhysics.hh.

Member Data Documentation

◆ m_74

f32 Kinoko::Kart::WheelPhysics::m_74
private

Definition at line 109 of file KartSuspensionPhysics.hh.

◆ m_bspWheel

const BSP::Wheel* Kinoko::Kart::WheelPhysics::m_bspWheel
private

Definition at line 98 of file KartSuspensionPhysics.hh.

◆ m_bspWheelIdx

u16 Kinoko::Kart::WheelPhysics::m_bspWheelIdx
private

Definition at line 97 of file KartSuspensionPhysics.hh.

◆ m_colVel

EGG::Vector3f Kinoko::Kart::WheelPhysics::m_colVel
private

Definition at line 104 of file KartSuspensionPhysics.hh.

◆ m_effectiveRadius

f32 Kinoko::Kart::WheelPhysics::m_effectiveRadius
private

Definition at line 107 of file KartSuspensionPhysics.hh.

◆ m_hitboxGroup

CollisionGroup* Kinoko::Kart::WheelPhysics::m_hitboxGroup
private

Definition at line 99 of file KartSuspensionPhysics.hh.

◆ m_lastPos

EGG::Vector3f Kinoko::Kart::WheelPhysics::m_lastPos
private

Definition at line 101 of file KartSuspensionPhysics.hh.

◆ m_lastPosDiff

EGG::Vector3f Kinoko::Kart::WheelPhysics::m_lastPosDiff
private

Definition at line 102 of file KartSuspensionPhysics.hh.

◆ m_pos

EGG::Vector3f Kinoko::Kart::WheelPhysics::m_pos
private

Definition at line 100 of file KartSuspensionPhysics.hh.

◆ m_speed

EGG::Vector3f Kinoko::Kart::WheelPhysics::m_speed
private

Definition at line 105 of file KartSuspensionPhysics.hh.

◆ m_suspTravel

f32 Kinoko::Kart::WheelPhysics::m_suspTravel
private

Definition at line 103 of file KartSuspensionPhysics.hh.

◆ m_targetEffectiveRadius

f32 Kinoko::Kart::WheelPhysics::m_targetEffectiveRadius
private

Definition at line 108 of file KartSuspensionPhysics.hh.

◆ m_topmostPos

EGG::Vector3f Kinoko::Kart::WheelPhysics::m_topmostPos
private

Definition at line 110 of file KartSuspensionPhysics.hh.

◆ m_wheelEdgePos

EGG::Vector3f Kinoko::Kart::WheelPhysics::m_wheelEdgePos
private

Definition at line 106 of file KartSuspensionPhysics.hh.

◆ m_wheelIdx

u16 Kinoko::Kart::WheelPhysics::m_wheelIdx
private

Definition at line 96 of file KartSuspensionPhysics.hh.