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 const EGG::Vector3fgetPosition () const
 
virtual f32 getCollisionRadius () const
 
virtual ObjectId id () const
 
const EGG::Vector3fpos () const
 
void setPos (const EGG::Vector3f &pos)
 

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)
 

Static Protected Member Functions

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

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

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.

◆ getCollisionRadius()

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

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

Definition at line 58 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 53 of file ObjectBase.hh.

◆ getResources()

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

Definition at line 44 of file ObjectBase.cc.

◆ id()

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

Definition at line 63 of file ObjectBase.hh.

◆ init()

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

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 88 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

Definition at line 70 of file ObjectBase.cc.

◆ OrthonormalBasis()

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

Definition at line 160 of file ObjectBase.cc.

◆ pos()

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

Definition at line 67 of file ObjectBase.hh.

◆ RotateAxisAngle()

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

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 71 of file ObjectBase.hh.

◆ SetRotTangentHorizontal()

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

Definition at line 149 of file ObjectBase.cc.

Member Data Documentation

◆ m_boxColUnit

BoxColUnit* Field::ObjectBase::m_boxColUnit
protected

Definition at line 97 of file ObjectBase.hh.

◆ m_drawMdl

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

Definition at line 93 of file ObjectBase.hh.

◆ m_flags

Flags Field::ObjectBase::m_flags
protected

Definition at line 98 of file ObjectBase.hh.

◆ m_id

ObjectId Field::ObjectBase::m_id
protected

Definition at line 95 of file ObjectBase.hh.

◆ m_mapObj

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

Definition at line 103 of file ObjectBase.hh.

◆ m_pos

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

Definition at line 99 of file ObjectBase.hh.

◆ m_railInterpolator

RailInterpolator* Field::ObjectBase::m_railInterpolator
protected

Definition at line 96 of file ObjectBase.hh.

◆ m_resFile

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

Definition at line 94 of file ObjectBase.hh.

◆ m_rot

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

Definition at line 100 of file ObjectBase.hh.

◆ m_scale

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

Definition at line 101 of file ObjectBase.hh.

◆ m_transform

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

Definition at line 102 of file ObjectBase.hh.