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

#include <ObjectBeltCurveA.hh>

Description

The curved conveyer belt at the end of the factory on Toad's Factory.

This conveyer switches direction twice.

Definition at line 9 of file ObjectBeltCurveA.hh.

Inheritance diagram for Field::ObjectBeltCurveA:

Public Member Functions

 ObjectBeltCurveA (const System::MapdataGeoObj &params)
 
EGG::Vector3f calcRoadVelocity (u32 variant, const EGG::Vector3f &pos, u32 timeOffset) const override
 
bool isMoving (u32 variant, const EGG::Vector3f &) const override
 
- Public Member Functions inherited from Field::ObjectBelt
 ObjectBelt (const System::MapdataGeoObj &params)
 
u32 loadFlags () const override
 
void createCollision () override
 
void calcCollisionTransform () override
 
f32 getCollisionRadius () const override
 
bool checkPointPartial (const EGG::Vector3f &, const EGG::Vector3f &, KCLTypeMask, CollisionInfoPartial *, KCLTypeMask *) override
 
bool checkPointPartialPush (const EGG::Vector3f &, const EGG::Vector3f &, KCLTypeMask, CollisionInfoPartial *, KCLTypeMask *) override
 
bool checkPointFull (const EGG::Vector3f &, const EGG::Vector3f &, KCLTypeMask, CollisionInfo *, KCLTypeMask *) override
 
bool checkPointFullPush (const EGG::Vector3f &pos, const EGG::Vector3f &prevPos, KCLTypeMask mask, CollisionInfo *info, KCLTypeMask *maskOut) override
 
bool checkSpherePartial (f32, const EGG::Vector3f &, const EGG::Vector3f &, KCLTypeMask, CollisionInfoPartial *, KCLTypeMask *, u32) override
 
bool checkSpherePartialPush (f32, const EGG::Vector3f &, const EGG::Vector3f &, KCLTypeMask, CollisionInfoPartial *, KCLTypeMask *, u32) override
 
bool checkSphereFull (f32, const EGG::Vector3f &, const EGG::Vector3f &, KCLTypeMask, CollisionInfo *, KCLTypeMask *, u32) override
 
bool checkSphereFullPush (f32, const EGG::Vector3f &pos, const EGG::Vector3f &prevPos, KCLTypeMask mask, CollisionInfo *info, KCLTypeMask *maskOut, u32 timeOffset) override
 
bool checkPointCachedPartial (const EGG::Vector3f &, const EGG::Vector3f &, KCLTypeMask, CollisionInfoPartial *, KCLTypeMask *) override
 
bool checkPointCachedPartialPush (const EGG::Vector3f &, const EGG::Vector3f &, KCLTypeMask, CollisionInfoPartial *, KCLTypeMask *) override
 
bool checkPointCachedFull (const EGG::Vector3f &, const EGG::Vector3f &, KCLTypeMask, CollisionInfo *, KCLTypeMask *) override
 
bool checkPointCachedFullPush (const EGG::Vector3f &pos, const EGG::Vector3f &prevPos, KCLTypeMask mask, CollisionInfo *info, KCLTypeMask *maskOut) override
 
bool checkSphereCachedPartial (f32, const EGG::Vector3f &, const EGG::Vector3f &, KCLTypeMask, CollisionInfoPartial *, KCLTypeMask *, u32) override
 
bool checkSphereCachedPartialPush (f32, const EGG::Vector3f &, const EGG::Vector3f &, KCLTypeMask, CollisionInfoPartial *, KCLTypeMask *, u32) override
 
bool checkSphereCachedFull (f32, const EGG::Vector3f &, const EGG::Vector3f &, KCLTypeMask, CollisionInfo *, KCLTypeMask *, u32) override
 
bool checkSphereCachedFullPush (f32, const EGG::Vector3f &pos, const EGG::Vector3f &prevPos, KCLTypeMask mask, CollisionInfo *info, KCLTypeMask *maskOut, u32 timeOffset) override
 
- Public Member Functions inherited from Field::ObjectDrivable
 ObjectDrivable (const System::MapdataGeoObj &params)
 
void load () override
 
f32 getCollisionRadius () const override
 
virtual void initCollision ()
 
virtual void loadAABB (f32 radius)
 
virtual void narrScLocal (f32, const EGG::Vector3f &, KCLTypeMask, u32)
 
- Public Member Functions inherited from Field::ObjectBase
 ObjectBase (const System::MapdataGeoObj &params)
 
 ObjectBase (const char *name, const EGG::Vector3f &pos, const EGG::Vector3f &rot, const EGG::Vector3f &scale)
 
virtual void init ()
 
virtual void calc ()
 
virtual void calcModel ()
 
virtual const char * getResources () const
 
virtual void loadGraphics ()
 
virtual void loadAnims ()
 
virtual void loadRail ()
 
virtual const char * getName () const
 
virtual const char * getKclName () const
 
virtual const EGG::Vector3fgetPosition () const
 
virtual ObjectId id () const
 
const EGG::Vector3fpos () const
 
void setPos (const EGG::Vector3f &pos)
 

Private Member Functions

f32 calcDirSwitchVelocity (u32 t) const
 

Private Attributes

bool m_startForward
 
u16 m_dirChange1Frame
 
u16 m_dirChange2Frame
 
EGG::Matrix34f m_initMat
 

Additional Inherited Members

- Public Types inherited from Field::ObjectBase
enum class  eFlags {
  Position = 0 ,
  Rotation = 1 ,
  Matrix = 2 ,
  Scale = 3
}
 
typedef EGG::TBitFlag< u16, eFlags > Flags
 
- Protected Member Functions inherited from Field::ObjectBase
void calcTransform ()
 
void linkAnims (const std::span< const char * > &names, const std::span< Render::AnmType > types)
 
void setMatrixTangentTo (const EGG::Vector3f &up, const EGG::Vector3f &tangent)
 
- Static Protected Member Functions inherited from Field::ObjectBase
static EGG::Vector3f RotateAxisAngle (f32 angle, const EGG::Vector3f &axis, const EGG::Vector3f &v1)
 
static void SetRotTangentHorizontal (EGG::Matrix34f &mat, const EGG::Vector3f &up, const EGG::Vector3f &tangent)
 
static EGG::Matrix34f OrthonormalBasis (const EGG::Vector3f &v)
 
static EGG::Vector3f Interpolate (f32 t, const EGG::Vector3f &v0, const EGG::Vector3f &v1)
 
- Protected Attributes inherited from Field::ObjectBelt
f32 m_roadVel
 
- Protected Attributes inherited from Field::ObjectBase
Render::DrawMdlm_drawMdl
 
Abstract::g3d::ResFilem_resFile
 
ObjectId m_id
 
RailInterpolatorm_railInterpolator
 
BoxColUnitm_boxColUnit
 
Flags m_flags
 
EGG::Vector3f m_pos
 
EGG::Vector3f m_rot
 
EGG::Vector3f m_scale
 
EGG::Matrix34f m_transform
 
const System::MapdataGeoObjm_mapObj
 

Constructor & Destructor Documentation

◆ ObjectBeltCurveA()

Field::ObjectBeltCurveA::ObjectBeltCurveA ( const System::MapdataGeoObj & params)
0x807FC90C

Definition at line 6 of file ObjectBeltCurveA.cc.

Member Function Documentation

◆ calcDirSwitchVelocity()

f32 Field::ObjectBeltCurveA::calcDirSwitchVelocity ( u32 t) const
nodiscardprivate0x807FD5A0

Definition at line 47 of file ObjectBeltCurveA.cc.

◆ calcRoadVelocity()

EGG::Vector3f Field::ObjectBeltCurveA::calcRoadVelocity ( u32 variant,
const EGG::Vector3f & pos,
u32 timeOffset ) const
nodiscardoverridevirtual0x807FC9D4

Implements Field::ObjectBelt.

Definition at line 19 of file ObjectBeltCurveA.cc.

◆ isMoving()

bool Field::ObjectBeltCurveA::isMoving ( u32 variant,
const EGG::Vector3f &  ) const
inlinenodiscardoverridevirtual0x807FCCA4

Implements Field::ObjectBelt.

Definition at line 18 of file ObjectBeltCurveA.hh.

Member Data Documentation

◆ m_dirChange1Frame

u16 Field::ObjectBeltCurveA::m_dirChange1Frame
private

Definition at line 26 of file ObjectBeltCurveA.hh.

◆ m_dirChange2Frame

u16 Field::ObjectBeltCurveA::m_dirChange2Frame
private

Definition at line 27 of file ObjectBeltCurveA.hh.

◆ m_initMat

EGG::Matrix34f Field::ObjectBeltCurveA::m_initMat
private

Definition at line 28 of file ObjectBeltCurveA.hh.

◆ m_startForward

bool Field::ObjectBeltCurveA::m_startForward
private

Definition at line 25 of file ObjectBeltCurveA.hh.