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

Description

Definition at line 16 of file ObjectBase.hh.

Inheritance diagram for Field::ObjectBase:

Public Types

enum class  eFlags {
  Position = 0 ,
  Rotation = 1 ,
  Matrix = 2 ,
  Scale = 3
}
 
typedef EGG::TBitFlag< u16, eFlags > Flags
 

Public Member Functions

 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 void load ()=0
 
virtual const char * getResources () const
 
virtual void loadGraphics ()
 
virtual void loadAnims ()
 
virtual void createCollision ()=0
 
virtual void loadRail ()
 
virtual void calcCollisionTransform ()=0
 
virtual const char * getName () const
 
virtual u32 loadFlags () const
 
virtual const char * getKclName () const
 
virtual void resize (f32 radius, f32 maxSpeed)
 
virtual void unregisterCollision ()
 
virtual void disableCollision () const
 
virtual void enableCollision () const
 
virtual const BoxColUnitgetUnit () const
 
const RailInterpolatorrailInterpolator () const
 
virtual const EGG::Vector3fgetPosition () const
 
virtual f32 getCollisionRadius () const
 
virtual ObjectId id () const
 
const EGG::Vector3fpos () const
 
void setPos (const EGG::Vector3f &pos)
 
void setScale (const EGG::Vector3f &scale)
 
void setTransform (const EGG::Matrix34f &mat)
 
const EGG::Vector3fscale () const
 

Protected Member Functions

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)
 
void setMatrixFromOrthonormalBasisAndPos (const EGG::Vector3f &v)
 

Static Protected Member Functions

static f32 CheckPointAgainstLineSegment (const EGG::Vector3f &point, const EGG::Vector3f &a, const EGG::Vector3f &b)
 Calculates on what side of line segment ab point lies.
 
static EGG::Vector3f RotateXZByYaw (f32 angle, const EGG::Vector3f &v)
 Rotates a vector around the Y-axis and returns the XZ-plane portion of the vector.
 
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::Matrix34f RailOrthonormalBasis (const RailInterpolator &railInterpolator)
 
static EGG::Vector3f Interpolate (f32 t, const EGG::Vector3f &v0, const EGG::Vector3f &v1)
 

Protected Attributes

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
 

Member Typedef Documentation

◆ Flags

Definition at line 24 of file ObjectBase.hh.

Member Enumeration Documentation

◆ eFlags

enum class Field::ObjectBase::eFlags
strong

Definition at line 18 of file ObjectBase.hh.

Constructor & Destructor Documentation

◆ ObjectBase() [1/2]

Field::ObjectBase::ObjectBase ( const System::MapdataGeoObj & params)
0x8081F828

Definition at line 16 of file ObjectBase.cc.

◆ ObjectBase() [2/2]

Field::ObjectBase::ObjectBase ( const char * name,
const EGG::Vector3f & pos,
const EGG::Vector3f & rot,
const EGG::Vector3f & scale )
0x8081FB04

Definition at line 24 of file ObjectBase.cc.

◆ ~ObjectBase()

Field::ObjectBase::~ObjectBase ( )
virtual0x8067E3C4

Definition at line 33 of file ObjectBase.cc.

Member Function Documentation

◆ calc()

virtual void Field::ObjectBase::calc ( )
inlinevirtual

Reimplemented in Field::ObjectCowHerd.

Definition at line 32 of file ObjectBase.hh.

◆ calcModel()

void Field::ObjectBase::calcModel ( )
virtual0x808217B8

Definition at line 39 of file ObjectBase.cc.

◆ calcTransform()

void Field::ObjectBase::calcTransform ( )
protected0x80821640

Definition at line 108 of file ObjectBase.cc.

◆ CheckPointAgainstLineSegment()

f32 Field::ObjectBase::CheckPointAgainstLineSegment ( const EGG::Vector3f & point,
const EGG::Vector3f & a,
const EGG::Vector3f & b )
staticnodiscardprotected0x806B38A8

Calculates on what side of line segment ab point lies.

Definition at line 148 of file ObjectBase.cc.

◆ createCollision()

virtual void Field::ObjectBase::createCollision ( )
pure virtual

◆ disableCollision()

virtual void Field::ObjectBase::disableCollision ( ) const
inlinevirtual0x80821DEC

Definition at line 63 of file ObjectBase.hh.

◆ enableCollision()

virtual void Field::ObjectBase::enableCollision ( ) const
inlinevirtual0x80821E00

Definition at line 68 of file ObjectBase.hh.

◆ getCollisionRadius()

virtual f32 Field::ObjectBase::getCollisionRadius ( ) const
inlinenodiscardvirtual0x8080BDC0

Reimplemented in Field::ObjectCollidable, and Field::ObjectPress.

Definition at line 87 of file ObjectBase.hh.

◆ getKclName()

const char * Field::ObjectBase::getKclName ( ) const
nodiscardvirtual0x806806DC

Reimplemented in Field::ObjectKinokoUd.

Definition at line 100 of file ObjectBase.cc.

◆ getName()

const char * Field::ObjectBase::getName ( ) const
nodiscardvirtual0x80680784

Definition at line 92 of file ObjectBase.cc.

◆ getPosition()

virtual const EGG::Vector3f & Field::ObjectBase::getPosition ( ) const
inlinenodiscardvirtual0x80681598

Definition at line 82 of file ObjectBase.hh.

◆ getResources()

const char * Field::ObjectBase::getResources ( ) const
nodiscardvirtual0x80680730

Definition at line 44 of file ObjectBase.cc.

◆ getUnit()

virtual const BoxColUnit * Field::ObjectBase::getUnit ( ) const
inlinevirtual0x80680618

Definition at line 73 of file ObjectBase.hh.

◆ id()

virtual ObjectId Field::ObjectBase::id ( ) const
inlinenodiscardvirtual0x80572574

Definition at line 92 of file ObjectBase.hh.

◆ init()

virtual void Field::ObjectBase::init ( )
inlinevirtual

Reimplemented in Field::ObjectCowHerd.

Definition at line 31 of file ObjectBase.hh.

◆ Interpolate()

static EGG::Vector3f Field::ObjectBase::Interpolate ( f32 t,
const EGG::Vector3f & v0,
const EGG::Vector3f & v1 )
inlinestaticnodiscardprotected0x8086C098

Definition at line 137 of file ObjectBase.hh.

◆ linkAnims()

void Field::ObjectBase::linkAnims ( const std::span< const char * > & names,
const std::span< Render::AnmType > types )
protected0x80820EB8

Definition at line 119 of file ObjectBase.cc.

◆ loadAnims()

virtual void Field::ObjectBase::loadAnims ( )
inlinevirtual

Definition at line 37 of file ObjectBase.hh.

◆ loadFlags()

virtual u32 Field::ObjectBase::loadFlags ( ) const
inlinenodiscardvirtual0x806BF434

Reimplemented in Field::ObjectKinoko.

Definition at line 45 of file ObjectBase.hh.

◆ loadGraphics()

void Field::ObjectBase::loadGraphics ( )
virtual0x8081FD10

Definition at line 52 of file ObjectBase.cc.

◆ loadRail()

void Field::ObjectBase::loadRail ( )
virtual0x80820980

Reimplemented in Field::ObjectBird.

Definition at line 70 of file ObjectBase.cc.

◆ OrthonormalBasis()

EGG::Matrix34f Field::ObjectBase::OrthonormalBasis ( const EGG::Vector3f & v)
staticnodiscardprotected0x806B3CA4

Definition at line 183 of file ObjectBase.cc.

◆ pos()

const EGG::Vector3f & Field::ObjectBase::pos ( ) const
inlinenodiscard

Definition at line 96 of file ObjectBase.hh.

◆ railInterpolator()

const RailInterpolator * Field::ObjectBase::railInterpolator ( ) const
inlinenodiscard

Definition at line 77 of file ObjectBase.hh.

◆ RailOrthonormalBasis()

EGG::Matrix34f Field::ObjectBase::RailOrthonormalBasis ( const RailInterpolator & railInterpolator)
staticnodiscardprotected0x806B46A4

Definition at line 206 of file ObjectBase.cc.

◆ resize()

virtual void Field::ObjectBase::resize ( f32 radius,
f32 maxSpeed )
inlinevirtual0x80821DB8

Definition at line 53 of file ObjectBase.hh.

◆ RotateAxisAngle()

EGG::Vector3f Field::ObjectBase::RotateAxisAngle ( f32 angle,
const EGG::Vector3f & axis,
const EGG::Vector3f & v1 )
staticnodiscardprotected0x806B3AC4

Definition at line 163 of file ObjectBase.cc.

◆ RotateXZByYaw()

EGG::Vector3f Field::ObjectBase::RotateXZByYaw ( f32 angle,
const EGG::Vector3f & v )
staticnodiscardprotected0x806B3900

Rotates a vector around the Y-axis and returns the XZ-plane portion of the vector.

Definition at line 155 of file ObjectBase.cc.

◆ scale()

const EGG::Vector3f & Field::ObjectBase::scale ( ) const
inlinenodiscard

Definition at line 115 of file ObjectBase.hh.

◆ setMatrixFromOrthonormalBasisAndPos()

void Field::ObjectBase::setMatrixFromOrthonormalBasisAndPos ( const EGG::Vector3f & v)
protected0x808218B0

Definition at line 140 of file ObjectBase.cc.

◆ setMatrixTangentTo()

void Field::ObjectBase::setMatrixTangentTo ( const EGG::Vector3f & up,
const EGG::Vector3f & tangent )
protected0x80821910

Definition at line 133 of file ObjectBase.cc.

◆ setPos()

void Field::ObjectBase::setPos ( const EGG::Vector3f & pos)
inline

Definition at line 100 of file ObjectBase.hh.

◆ SetRotTangentHorizontal()

void Field::ObjectBase::SetRotTangentHorizontal ( EGG::Matrix34f & mat,
const EGG::Vector3f & up,
const EGG::Vector3f & tangent )
staticprotected0x806B41E0

Definition at line 172 of file ObjectBase.cc.

◆ setScale()

void Field::ObjectBase::setScale ( const EGG::Vector3f & scale)
inline

Definition at line 105 of file ObjectBase.hh.

◆ setTransform()

void Field::ObjectBase::setTransform ( const EGG::Matrix34f & mat)
inline

Definition at line 110 of file ObjectBase.hh.

◆ unregisterCollision()

virtual void Field::ObjectBase::unregisterCollision ( )
inlinevirtual0x80821DD8

Definition at line 58 of file ObjectBase.hh.

Member Data Documentation

◆ m_boxColUnit

BoxColUnit* Field::ObjectBase::m_boxColUnit
protected

Definition at line 146 of file ObjectBase.hh.

◆ m_drawMdl

Render::DrawMdl* Field::ObjectBase::m_drawMdl
protected

Definition at line 142 of file ObjectBase.hh.

◆ m_flags

Flags Field::ObjectBase::m_flags
protected

Definition at line 147 of file ObjectBase.hh.

◆ m_id

ObjectId Field::ObjectBase::m_id
protected

Definition at line 144 of file ObjectBase.hh.

◆ m_mapObj

const System::MapdataGeoObj* Field::ObjectBase::m_mapObj
protected

Definition at line 152 of file ObjectBase.hh.

◆ m_pos

EGG::Vector3f Field::ObjectBase::m_pos
protected

Definition at line 148 of file ObjectBase.hh.

◆ m_railInterpolator

RailInterpolator* Field::ObjectBase::m_railInterpolator
protected

Definition at line 145 of file ObjectBase.hh.

◆ m_resFile

Abstract::g3d::ResFile* Field::ObjectBase::m_resFile
protected

Definition at line 143 of file ObjectBase.hh.

◆ m_rot

EGG::Vector3f Field::ObjectBase::m_rot
protected

Definition at line 149 of file ObjectBase.hh.

◆ m_scale

EGG::Vector3f Field::ObjectBase::m_scale
protected

Definition at line 150 of file ObjectBase.hh.

◆ m_transform

EGG::Matrix34f Field::ObjectBase::m_transform
protected

Definition at line 151 of file ObjectBase.hh.