The wavy road in Bowser's Castle.
Behaves as a sine wave with a period of 120 frames and an amplitude which varies depending on your distance from the center.
Definition at line 10 of file ObjectTwistedWay.hh.
|
| ObjectTwistedWay (const System::MapdataGeoObj ¶ms) |
|
void | init () override |
|
void | calc () override |
|
u32 | loadFlags () const override |
|
void | createCollision () override |
|
void | calcCollisionTransform () override |
|
f32 | getCollisionRadius () const override |
|
bool | checkPointPartial (const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfoPartial *pInfo, KCLTypeMask *pFlagsOut) override |
|
bool | checkPointPartialPush (const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfoPartial *pInfo, KCLTypeMask *pFlagsOut) override |
|
bool | checkPointFull (const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfo *pInfo, KCLTypeMask *pFlagsOut) override |
|
bool | checkPointFullPush (const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfo *pInfo, KCLTypeMask *pFlagsOut) override |
|
bool | checkSpherePartial (f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfoPartial *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset) override |
|
bool | checkSpherePartialPush (f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfoPartial *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset) override |
|
bool | checkSphereFull (f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfo *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset) override |
|
bool | checkSphereFullPush (f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfo *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset) override |
|
bool | checkPointCachedPartial (const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfoPartial *pInfo, KCLTypeMask *pFlagsOut) override |
|
bool | checkPointCachedPartialPush (const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfoPartial *pInfo, KCLTypeMask *pFlagsOut) override |
|
bool | checkPointCachedFull (const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfo *pInfo, KCLTypeMask *pFlagsOut) override |
|
bool | checkPointCachedFullPush (const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfo *pInfo, KCLTypeMask *pFlagsOut) override |
|
bool | checkSphereCachedPartial (f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfoPartial *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset) override |
|
bool | checkSphereCachedPartialPush (f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfoPartial *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset) override |
|
bool | checkSphereCachedFull (f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfo *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset) override |
|
bool | checkSphereCachedFullPush (f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfo *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset) override |
|
| ObjectDrivable (const System::MapdataGeoObj ¶ms) |
|
void | load () override |
|
virtual void | initCollision () |
|
virtual void | loadAABB (f32 radius) |
|
virtual void | narrScLocal (f32, const EGG::Vector3f &, KCLTypeMask, u32) |
|
| ObjectBase (const System::MapdataGeoObj ¶ms) |
|
| ObjectBase (const char *name, const EGG::Vector3f &pos, const EGG::Vector3f &rot, const EGG::Vector3f &scale) |
|
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 const EGG::Vector3f & | getPosition () 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 |
|
|
bool | checkSpherePartialImpl (f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfoPartial *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset) |
|
bool | checkSpherePartialPushImpl (f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfoPartial *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset) |
|
bool | checkSphereFullImpl (f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfo *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset) |
|
bool | checkSphereFullPushImpl (f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfo *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset) |
|
template<typename T >
requires std::is_same_v<T, CollisionInfo> || std::is_same_v<T, CollisionInfoPartial> |
bool | checkSphereImpl (f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, T *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset, bool push) |
| Helper function which contains frequently re-used code. Behavior branches depending on whether it is a full or partial check (call CollisionInfo::updateFloor) or push (push entry in the CollisionDirector).
|
|
template<typename T >
requires std::is_same_v<T, CollisionInfo> || std::is_same_v<T, CollisionInfoPartial> |
bool | checkWallCollision (f32 angle, f32 radius, u32 t, const EGG::Vector3f &relPos, T *pInfo, KCLTypeMask *pFlagsOut, bool push) |
|
template<typename T >
requires std::is_same_v<T, CollisionInfo> || std::is_same_v<T, CollisionInfoPartial> |
bool | checkFloorCollision (f32 angle, f32 radius, const EGG::Vector3f &relPos, T *pInfo, KCLTypeMask *pFlagsOut, bool push) |
|
bool | checkPoleCollision (f32 radius, f32 angle, const EGG::Vector3f &relPos, EGG::Vector3f &v0, EGG::Vector3f &fnrm, f32 &dist) |
|
f32 | calcWave (f32 zPercent, u32 t) |
|
|
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) |
|
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 |
|