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

#include <KartScale.hh>

Description

Mainly responsible for calculating scaling for the squish/unsquish animation.

Definition at line 8 of file KartScale.hh.

Inheritance diagram for Kart::KartScale:

Public Member Functions

void reset ()
 
void calc ()
 
void startCrush ()
 
void startUncrush ()
 
const EGG::Vector3fcurrScale () const
 

Private Types

enum class  CrushState {
  None = -1 ,
  Crush = 0 ,
  Uncrush = 1
}
 

Private Member Functions

void calcCrush ()
 
EGG::Vector3f getAnmScale (f32 frame) const
 

Private Attributes

CrushState m_crushState
 Specifies the current crush/uncrush state.
 
bool m_calcCrush
 Set while crush scaling is occurring.
 
f32 m_uncrushAnmFrame
 Current frame of the unsquish animation.
 
EGG::Vector3f m_currScale
 The computed scale for the current frame.
 

Static Private Attributes

static constexpr f32 CRUSH_SCALE = 0.3f
 

Additional Inherited Members

- Protected Member Functions inherited from Kart::KartObjectProxy
void apply (size_t idx)
 
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
 
- Static Protected Member Functions inherited from Kart::KartObjectProxy
static std::list< KartObjectProxy * > & proxyList ()
 

Member Enumeration Documentation

◆ CrushState

enum class Kart::KartScale::CrushState
strongprivate

Definition at line 24 of file KartScale.hh.

Constructor & Destructor Documentation

◆ KartScale()

Kart::KartScale::KartScale ( )
0x8056AD44

Definition at line 8 of file KartScale.cc.

Member Function Documentation

◆ calc()

void Kart::KartScale::calc ( )
0x8056B218

Definition at line 24 of file KartScale.cc.

◆ calcCrush()

void Kart::KartScale::calcCrush ( )
private0x8056B45C

Definition at line 45 of file KartScale.cc.

◆ currScale()

const EGG::Vector3f & Kart::KartScale::currScale ( ) const
inlinenodiscard

Definition at line 19 of file KartScale.hh.

◆ getAnmScale()

EGG::Vector3f Kart::KartScale::getAnmScale ( f32 frame) const
nodiscardprivate0x8056ACF4

Definition at line 71 of file KartScale.cc.

◆ reset()

void Kart::KartScale::reset ( )
0x8056AF10

Definition at line 16 of file KartScale.cc.

◆ startCrush()

void Kart::KartScale::startCrush ( )
0x8056B060

Definition at line 29 of file KartScale.cc.

◆ startUncrush()

void Kart::KartScale::startUncrush ( )
0x8056B094

Definition at line 37 of file KartScale.cc.

Member Data Documentation

◆ CRUSH_SCALE

f32 Kart::KartScale::CRUSH_SCALE = 0.3f
staticconstexprprivate

Definition at line 39 of file KartScale.hh.

◆ m_calcCrush

bool Kart::KartScale::m_calcCrush
private

Set while crush scaling is occurring.

Definition at line 35 of file KartScale.hh.

◆ m_crushState

CrushState Kart::KartScale::m_crushState
private

Specifies the current crush/uncrush state.

Definition at line 34 of file KartScale.hh.

◆ m_currScale

EGG::Vector3f Kart::KartScale::m_currScale
private

The computed scale for the current frame.

Definition at line 37 of file KartScale.hh.

◆ m_uncrushAnmFrame

f32 Kart::KartScale::m_uncrushAnmFrame
private

Current frame of the unsquish animation.

Definition at line 36 of file KartScale.hh.