#include <ObjectCrane.hh>
The moving crane platforms after the second turn of Toad's Factory.
Moves in a simple sine wave. There is both an x-axis and y-axis wave, though the platforms in the base game have a y amplitude of 0.
Definition at line 10 of file ObjectCrane.hh.
Public Member Functions | |
ObjectCrane (const System::MapdataGeoObj ¶ms) | |
void | calc () override |
u32 | loadFlags () const override |
f32 | colRadiusAdditionalLength () const override |
![]() | |
ObjectKCL (const System::MapdataGeoObj ¶ms) | |
void | createCollision () override |
void | calcCollisionTransform () override |
const EGG::Vector3f & | getPosition () const override |
f32 | getCollisionRadius () const override |
void | initCollision () override |
bool | checkPointPartial (const EGG::Vector3f &pos, const EGG::Vector3f &prevPos, KCLTypeMask mask, CollisionInfoPartial *info, KCLTypeMask *maskOut) override |
bool | checkPointPartialPush (const EGG::Vector3f &pos, const EGG::Vector3f &prevPos, KCLTypeMask mask, CollisionInfoPartial *info, KCLTypeMask *maskOut) override |
bool | checkPointFull (const EGG::Vector3f &pos, const EGG::Vector3f &prevPos, KCLTypeMask mask, CollisionInfo *info, KCLTypeMask *maskOut) override |
bool | checkPointFullPush (const EGG::Vector3f &pos, const EGG::Vector3f &prevPos, KCLTypeMask mask, CollisionInfo *info, KCLTypeMask *maskOut) override |
bool | checkSpherePartial (f32 radius, const EGG::Vector3f &pos, const EGG::Vector3f &prevPos, KCLTypeMask mask, CollisionInfoPartial *info, KCLTypeMask *maskOut, u32 timeOffset) override |
bool | checkSpherePartialPush (f32 radius, const EGG::Vector3f &pos, const EGG::Vector3f &prevPos, KCLTypeMask mask, CollisionInfoPartial *info, KCLTypeMask *maskOut, u32 timeOffset) override |
bool | checkSphereFull (f32 radius, const EGG::Vector3f &pos, const EGG::Vector3f &prevPos, KCLTypeMask mask, CollisionInfo *info, KCLTypeMask *maskOut, u32 timeOffset) override |
bool | checkSphereFullPush (f32 radius, const EGG::Vector3f &pos, const EGG::Vector3f &prevPos, KCLTypeMask mask, CollisionInfo *info, KCLTypeMask *maskOut, u32 timeOffset) override |
void | narrScLocal (f32 radius, const EGG::Vector3f &pos, KCLTypeMask mask, u32 timeOffset) override |
bool | checkPointCachedPartial (const EGG::Vector3f &pos, const EGG::Vector3f &prevPos, KCLTypeMask mask, CollisionInfoPartial *info, KCLTypeMask *maskOut) override |
bool | checkPointCachedPartialPush (const EGG::Vector3f &pos, const EGG::Vector3f &prevPos, KCLTypeMask mask, CollisionInfoPartial *info, KCLTypeMask *maskOut) override |
bool | checkPointCachedFull (const EGG::Vector3f &pos, const EGG::Vector3f &prevPos, KCLTypeMask mask, CollisionInfo *info, KCLTypeMask *maskOut) override |
bool | checkPointCachedFullPush (const EGG::Vector3f &pos, const EGG::Vector3f &prevPos, KCLTypeMask mask, CollisionInfo *info, KCLTypeMask *maskOut) override |
bool | checkSphereCachedPartial (f32 radius, const EGG::Vector3f &pos, const EGG::Vector3f &prevPos, KCLTypeMask mask, CollisionInfoPartial *info, KCLTypeMask *maskOut, u32 timeOffset) override |
bool | checkSphereCachedPartialPush (f32 radius, const EGG::Vector3f &pos, const EGG::Vector3f &prevPos, KCLTypeMask mask, CollisionInfoPartial *info, KCLTypeMask *maskOut, u32 timeOffset) override |
bool | checkSphereCachedFull (f32 radius, const EGG::Vector3f &pos, const EGG::Vector3f &prevPos, KCLTypeMask mask, CollisionInfo *info, KCLTypeMask *maskOut, u32 timeOffset) override |
bool | checkSphereCachedFullPush (f32 radius, const EGG::Vector3f &pos, const EGG::Vector3f &prevPos, KCLTypeMask mask, CollisionInfo *info, KCLTypeMask *maskOut, u32 timeOffset) override |
virtual void | update (u32 timeOffset) |
virtual void | calcScale (u32 timeOffset) |
virtual void | setMovingObjVel (const EGG::Vector3f &v) |
virtual const EGG::Matrix34f & | getUpdatedMatrix (u32 timeOffset) |
virtual f32 | getScaleY (u32) const |
virtual bool | shouldCheckColNoPush () const |
virtual bool | shouldCheckColPush () const |
virtual bool | checkCollision (f32 radius, const EGG::Vector3f &pos, const EGG::Vector3f &prevPos, KCLTypeMask mask, CollisionInfo *info, KCLTypeMask *maskOut, u32 timeOffset) |
virtual bool | checkCollisionCached (f32 radius, const EGG::Vector3f &pos, const EGG::Vector3f &prevPos, KCLTypeMask mask, CollisionInfo *info, KCLTypeMask *maskOut, u32 timeOffset) |
![]() | |
ObjectDrivable (const System::MapdataGeoObj ¶ms) | |
void | load () override |
virtual void | loadAABB (f32 radius) |
![]() | |
ObjectBase (const System::MapdataGeoObj ¶ms) | |
ObjectBase (const char *name, const EGG::Vector3f &pos, const EGG::Vector3f &rot, const EGG::Vector3f &scale) | |
virtual void | init () |
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 void | resize (f32 radius, f32 maxSpeed) |
virtual void | unregisterCollision () |
virtual void | disableCollision () const |
virtual void | enableCollision () const |
virtual const BoxColUnit * | getUnit () const |
const RailInterpolator * | railInterpolator () const |
virtual ObjectId | id () const |
const EGG::Vector3f & | pos () const |
void | setPos (const EGG::Vector3f &pos) |
void | setScale (const EGG::Vector3f &scale) |
void | setTransform (const EGG::Matrix34f &mat) |
const EGG::Vector3f & | scale () const |
Private Attributes | |
const EGG::Vector3f | m_startPos |
Initial starting position. | |
u16 | m_xt |
Current time along the x-axis period. | |
u16 | m_yt |
Current time along the y-axis period. | |
u16 | m_xPeriod |
Framecount of a full oscillation on x-axis. | |
u16 | m_yPeriod |
Framecount of a full oscillation on y-axis. | |
u16 | m_xAmplitude |
Max x-position delta from starting position. | |
u16 | m_yAmplitude |
Max y-position delta from starting position. | |
f32 | m_xFreq |
2pi / m_xPeriod | |
f32 | m_yFreq |
2pi / m_yPeriod | |
Additional Inherited Members | |
![]() | |
enum class | eFlags { Position = 0 , Rotation = 1 , Matrix = 2 , Scale = 3 } |
typedef EGG::TBitFlag< u16, eFlags > | Flags |
![]() | |
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 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) |
![]() | |
ObjColMgr * | m_objColMgr |
EGG::Vector3f | m_kclMidpoint |
f32 | m_bboxHalfSideLength |
s32 | m_lastMtxUpdateFrame |
s32 | m_lastScaleUpdateFrame |
![]() | |
Render::DrawMdl * | m_drawMdl |
Abstract::g3d::ResFile * | m_resFile |
ObjectId | m_id |
RailInterpolator * | m_railInterpolator |
BoxColUnit * | m_boxColUnit |
Flags | m_flags |
EGG::Vector3f | m_pos |
EGG::Vector3f | m_rot |
EGG::Vector3f | m_scale |
EGG::Matrix34f | m_transform |
const System::MapdataGeoObj * | m_mapObj |
|
0x807FE658 |
Definition at line 6 of file ObjectCrane.cc.
|
overridevirtual0x807FE7EC |
Reimplemented from Field::ObjectBase.
Definition at line 23 of file ObjectCrane.cc.
|
inlinenodiscardoverridevirtual0x807FEAF0 |
Reimplemented from Field::ObjectKCL.
Definition at line 23 of file ObjectCrane.hh.
|
inlinenodiscardoverridevirtual0x807FEB20 |
Reimplemented from Field::ObjectBase.
Definition at line 18 of file ObjectCrane.hh.
|
private |
Initial starting position.
Definition at line 28 of file ObjectCrane.hh.
|
private |
Max x-position delta from starting position.
Definition at line 33 of file ObjectCrane.hh.
|
private |
2pi / m_xPeriod
Definition at line 35 of file ObjectCrane.hh.
|
private |
Framecount of a full oscillation on x-axis.
Definition at line 31 of file ObjectCrane.hh.
|
private |
Current time along the x-axis period.
Definition at line 29 of file ObjectCrane.hh.
|
private |
Max y-position delta from starting position.
Definition at line 34 of file ObjectCrane.hh.
|
private |
2pi / m_yPeriod
Definition at line 36 of file ObjectCrane.hh.
|
private |
Framecount of a full oscillation on y-axis.
Definition at line 32 of file ObjectCrane.hh.
|
private |
Current time along the y-axis period.
Definition at line 30 of file ObjectCrane.hh.