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

Description

Definition at line 22 of file Rail.hh.

Inheritance diagram for Kinoko::Field::Rail:

Public Member Functions

 Rail (u16 idx, System::MapdataPointInfo *info)
 
virtual ~Rail ()
 
virtual f32 getPathLength () const =0
 
virtual std::span< const RailLineTransitiongetLinearTransitions () const =0
 
virtual std::span< const RailSplineTransitiongetSplineTransitions () const =0
 
virtual s32 getEstimatorSampleCount () const =0
 
virtual f32 getEstimatorStep () const =0
 
virtual std::span< const f32 > getPathPercentages () const =0
 
void addPoint (f32 scale, const EGG::Vector3f &point)
 
void checkSphereFull ()
 
u16 pointCount () const
 
bool isOscillating () const
 
std::span< const System::MapdataPointInfo::Pointpoints () const
 
const EGG::Vector3fpointPos (u16 idx) const
 
const EGG::Vector3ffloorNrm (u16 idx) const
 

Protected Member Functions

virtual void onPointsChanged ()=0
 
virtual void onPointAdded ()=0
 

Protected Attributes

u16 m_pointCount
 
bool m_isOscillating
 
owning_span< System::MapdataPointInfo::Pointm_points
 
f32 m_someScale
 

Private Attributes

u16 m_idx
 
u16 m_pointCapacity
 
bool m_hasCheckedCol
 
owning_span< EGG::Vector3fm_floorNrms
 

Constructor & Destructor Documentation

◆ Rail()

Kinoko::Field::Rail::Rail ( u16 idx,
System::MapdataPointInfo * info )
0x806EC9A4

Definition at line 8 of file Rail.cc.

◆ ~Rail()

Kinoko::Field::Rail::~Rail ( )
virtualdefault0x806ECC40

TODO: If we make m_points allocate on the heap, then we need to free here

Member Function Documentation

◆ addPoint()

void Kinoko::Field::Rail::addPoint ( f32 scale,
const EGG::Vector3f & point )
0x806ED110

Definition at line 23 of file Rail.cc.

◆ checkSphereFull()

void Kinoko::Field::Rail::checkSphereFull ( )
0x806ECCC0

Definition at line 30 of file Rail.cc.

◆ floorNrm()

const EGG::Vector3f & Kinoko::Field::Rail::floorNrm ( u16 idx) const
inlinenodiscard

Definition at line 55 of file Rail.hh.

◆ getPathPercentages()

virtual std::span< const f32 > Kinoko::Field::Rail::getPathPercentages ( ) const
pure virtual

Implemented in Kinoko::Field::RailLine.

◆ getSplineTransitions()

virtual std::span< const RailSplineTransition > Kinoko::Field::Rail::getSplineTransitions ( ) const
pure virtual

Implemented in Kinoko::Field::RailLine.

◆ isOscillating()

bool Kinoko::Field::Rail::isOscillating ( ) const
inlinenodiscard

Definition at line 41 of file Rail.hh.

◆ pointCount()

u16 Kinoko::Field::Rail::pointCount ( ) const
inlinenodiscard

Definition at line 37 of file Rail.hh.

◆ pointPos()

const EGG::Vector3f & Kinoko::Field::Rail::pointPos ( u16 idx) const
inlinenodiscard0x806ED150

Definition at line 50 of file Rail.hh.

◆ points()

std::span< const System::MapdataPointInfo::Point > Kinoko::Field::Rail::points ( ) const
inlinenodiscard

Definition at line 45 of file Rail.hh.

Member Data Documentation

◆ m_floorNrms

owning_span<EGG::Vector3f> Kinoko::Field::Rail::m_floorNrms
private

Definition at line 73 of file Rail.hh.

◆ m_hasCheckedCol

bool Kinoko::Field::Rail::m_hasCheckedCol
private

Definition at line 72 of file Rail.hh.

◆ m_idx

u16 Kinoko::Field::Rail::m_idx
private

Definition at line 70 of file Rail.hh.

◆ m_isOscillating

bool Kinoko::Field::Rail::m_isOscillating
protected

Definition at line 65 of file Rail.hh.

◆ m_pointCapacity

u16 Kinoko::Field::Rail::m_pointCapacity
private

Definition at line 71 of file Rail.hh.

◆ m_pointCount

u16 Kinoko::Field::Rail::m_pointCount
protected

Definition at line 64 of file Rail.hh.

◆ m_points

owning_span<System::MapdataPointInfo::Point> Kinoko::Field::Rail::m_points
protected

Definition at line 66 of file Rail.hh.

◆ m_someScale

f32 Kinoko::Field::Rail::m_someScale
protected

Definition at line 67 of file Rail.hh.