#include <ObjectVolcanoPiece.hh>
Represents an object that eventually shakes and then falls, e.g. the ultra rock on GV.
Definition at line 8 of file ObjectVolcanoPiece.hh.
Public Types | |
| typedef bool(ObjColMgr::*) | CheckPointPartialFunc(const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfoPartial *pInfo, KCLTypeMask *pFlagsOut) |
| typedef bool(ObjColMgr::*) | CheckPointFullFunc(const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfo *pInfo, KCLTypeMask *pFlagsOut) |
| typedef bool(ObjColMgr::*) | CheckSpherePartialFunc(f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfoPartial *pInfo, KCLTypeMask *pFlagsOut) |
| typedef bool(ObjColMgr::*) | CheckSphereFullFunc(f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfo *pInfo, KCLTypeMask *pFlagsOut) |
Public Types inherited from Field::ObjectBase | |
| enum class | eFlags { Position = 0 , Rotation = 1 , Matrix = 2 , Scale = 3 } |
| typedef EGG::TBitFlag< u16, eFlags > | Flags |
Public Member Functions | |
| ObjectVolcanoPiece (const System::MapdataGeoObj ¶ms) | |
| void | calc () override |
| u32 | loadFlags () const override |
| const char * | getKclName () const override |
| void | createCollision () override |
| template<typename T , typename U > requires (std::is_same_v<T, CollisionInfo> || std::is_same_v<T, CollisionInfoPartial>) && (std::is_same_v<U, CheckPointPartialFunc> || std::is_same_v<U, CheckPointFullFunc>) | |
| bool | checkPointImpl (const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, T *pInfo, KCLTypeMask *pFlagsOut, U checkFunc) |
| template<typename T , typename U > requires (std::is_same_v<T, CollisionInfo> || std::is_same_v<T, CollisionInfoPartial>) && (std::is_same_v<U, CheckSpherePartialFunc> || std::is_same_v<U, CheckSphereFullFunc>) | |
| bool | checkSphereImpl (f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, T *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset, U checkFunc) |
| bool | checkCollisionImpl (f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfo *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset, CheckSphereFullFunc checkFunc) |
| 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 |
| void | narrScLocal (f32 radius, const EGG::Vector3f &pos, KCLTypeMask mask, 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 |
| void | update (u32 timeOffset) override |
| void | calcScale (u32 timeOffset) override |
| void | setMovingObjVel (const EGG::Vector3f &v) override |
| const EGG::Matrix34f & | getUpdatedMatrix (u32 timeOffset) override |
| bool | checkCollision (f32 radius, const EGG::Vector3f &pos, const EGG::Vector3f &prevPos, KCLTypeMask mask, CollisionInfo *info, KCLTypeMask *maskOut, u32 timeOffset) override |
| bool | checkCollisionCached (f32 radius, const EGG::Vector3f &pos, const EGG::Vector3f &prevPos, KCLTypeMask mask, CollisionInfo *info, KCLTypeMask *maskOut, u32 timeOffset) override |
Public Member Functions inherited from Field::ObjectKCL | |
| ObjectKCL (const System::MapdataGeoObj ¶ms) | |
| void | calcCollisionTransform () override |
| const EGG::Vector3f & | getPosition () const override |
| f32 | getCollisionRadius () const override |
| void | initCollision () override |
| virtual f32 | getScaleY (u32) const |
| virtual f32 | colRadiusAdditionalLength () const |
| virtual bool | shouldCheckColNoPush () const |
| virtual bool | shouldCheckColPush () const |
Public Member Functions inherited from Field::ObjectDrivable | |
| ObjectDrivable (const System::MapdataGeoObj ¶ms) | |
| void | load () override |
| virtual void | loadAABB (f32 radius) |
Public Member Functions inherited from Field::ObjectBase | |
| 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 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 Types | |
| enum class | State { Rest = 0 , Shake = 1 , Quake = 2 , Fall = 3 , Gone = 4 } |
Private Member Functions | |
| const EGG::Matrix34f & | calcShakeAndFall (EGG::Vector3f *vel, u32 timeOffset) |
| State | calcState (u32 frame) const |
| f32 | calcT (u32 frame) const |
Private Attributes | |
| char | m_modelName [16] |
| const EGG::Vector3f | m_initialPos |
| const EGG::Vector3f | m_initialRot |
| const u32 | m_restDuration |
| const u32 | m_shakeDuration |
| const u32 | m_quakeDuration |
| EGG::Matrix34f | m_rtMat |
| ObjColMgr * | m_colMgrB |
| ObjColMgr * | m_colMgrC |
Static Private Attributes | |
| static constexpr u32 | FALL_DURATION = 900 |
Additional Inherited Members | |
Protected Member Functions inherited from Field::ObjectBase | |
| void | calcTransform () |
| void | calcRotLock () |
| 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 inherited from Field::ObjectBase | |
| 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 | AdjustVecForward (f32 sidewaysScalar, f32 forwardScalar, f32 minSpeed, const EGG::Vector3f &src, EGG::Vector3f forward) |
| static f32 | CalcParabolicDisplacement (f32 initVel, f32 accel, u32 frame) |
| Solves the standard kinematic equation \(y(t) = v_0\, t - \frac{1}{2} a t^{2}\). | |
| static EGG::Vector3f | Interpolate (f32 t, const EGG::Vector3f &v0, const EGG::Vector3f &v1) |
Protected Attributes inherited from Field::ObjectKCL | |
| ObjColMgr * | m_objColMgr |
| EGG::Vector3f | m_kclMidpoint |
| f32 | m_bboxHalfSideLength |
| s32 | m_lastMtxUpdateFrame |
| s32 | m_lastScaleUpdateFrame |
Protected Attributes inherited from Field::ObjectBase | |
| 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_scale |
| EGG::Vector3f | m_rot |
| bool | m_rotLock |
| EGG::Matrix34f | m_transform |
| const System::MapdataGeoObj * | m_mapObj |
| bool(ObjColMgr::*) Field::ObjectVolcanoPiece::CheckPointFullFunc(const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfo *pInfo, KCLTypeMask *pFlagsOut) |
Definition at line 29 of file ObjectVolcanoPiece.hh.
| bool(ObjColMgr::*) Field::ObjectVolcanoPiece::CheckPointPartialFunc(const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfoPartial *pInfo, KCLTypeMask *pFlagsOut) |
Definition at line 25 of file ObjectVolcanoPiece.hh.
| bool(ObjColMgr::*) Field::ObjectVolcanoPiece::CheckSphereFullFunc(f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfo *pInfo, KCLTypeMask *pFlagsOut) |
Definition at line 36 of file ObjectVolcanoPiece.hh.
| bool(ObjColMgr::*) Field::ObjectVolcanoPiece::CheckSpherePartialFunc(f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfoPartial *pInfo, KCLTypeMask *pFlagsOut) |
Definition at line 32 of file ObjectVolcanoPiece.hh.
|
strongprivate |
Definition at line 199 of file ObjectVolcanoPiece.hh.
|
0x80817DE8 |
Definition at line 8 of file ObjectVolcanoPiece.cc.
|
override0x80803DA8 |
Definition at line 19 of file ObjectVolcanoPiece.cc.
|
overridevirtual0x80819400 |
Reimplemented from Field::ObjectBase.
Definition at line 25 of file ObjectVolcanoPiece.cc.
|
overridevirtual0x80818674 |
Reimplemented from Field::ObjectKCL.
Definition at line 189 of file ObjectVolcanoPiece.cc.
|
private0x808187B4 |
Definition at line 214 of file ObjectVolcanoPiece.cc.
|
private0x80818FCC |
Definition at line 275 of file ObjectVolcanoPiece.cc.
|
private0x80819028 |
Definition at line 296 of file ObjectVolcanoPiece.cc.
|
inlinenodiscardoverridevirtual0x808199A8 |
Reimplemented from Field::ObjectKCL.
Definition at line 183 of file ObjectVolcanoPiece.hh.
|
inlinenodiscardoverridevirtual0x80819DA0 |
Reimplemented from Field::ObjectKCL.
Definition at line 191 of file ObjectVolcanoPiece.hh.
|
nodiscard |
Definition at line 122 of file ObjectVolcanoPiece.cc.
|
inlinenodiscardoverridevirtual0x80804CD8 |
Reimplemented from Field::ObjectKCL.
Definition at line 130 of file ObjectVolcanoPiece.hh.
|
inlinenodiscardoverridevirtual0x80804E20 |
Reimplemented from Field::ObjectKCL.
Definition at line 136 of file ObjectVolcanoPiece.hh.
|
inlinenodiscardoverridevirtual0x80804A48 |
Reimplemented from Field::ObjectKCL.
Definition at line 117 of file ObjectVolcanoPiece.hh.
|
inlinenodiscardoverridevirtual0x80804B90 |
Reimplemented from Field::ObjectKCL.
Definition at line 123 of file ObjectVolcanoPiece.hh.
|
inlinenodiscardoverridevirtual0x80805694 |
Reimplemented from Field::ObjectKCL.
Definition at line 71 of file ObjectVolcanoPiece.hh.
|
inlinenodiscardoverridevirtual0x808057DC |
Reimplemented from Field::ObjectKCL.
Definition at line 77 of file ObjectVolcanoPiece.hh.
|
nodiscard |
Definition at line 85 of file ObjectVolcanoPiece.cc.
|
inlinenodiscardoverridevirtual0x80805404 |
Reimplemented from Field::ObjectKCL.
Definition at line 59 of file ObjectVolcanoPiece.hh.
|
inlinenodiscardoverridevirtual0x8080554C |
Reimplemented from Field::ObjectKCL.
Definition at line 65 of file ObjectVolcanoPiece.hh.
|
inlinenodiscardoverridevirtual0x808048B4 |
Reimplemented from Field::ObjectKCL.
Definition at line 159 of file ObjectVolcanoPiece.hh.
|
inlinenodiscardoverridevirtual0x80804A38 |
Reimplemented from Field::ObjectKCL.
Definition at line 167 of file ObjectVolcanoPiece.hh.
|
inlinenodiscardoverridevirtual0x808045AC |
Reimplemented from Field::ObjectKCL.
Definition at line 143 of file ObjectVolcanoPiece.hh.
|
inlinenodiscardoverridevirtual0x80804730 |
Reimplemented from Field::ObjectKCL.
Definition at line 151 of file ObjectVolcanoPiece.hh.
|
inlinenodiscardoverridevirtual0x80805270 |
Reimplemented from Field::ObjectKCL.
Definition at line 99 of file ObjectVolcanoPiece.hh.
|
inlinenodiscardoverridevirtual0x808053F4 |
Reimplemented from Field::ObjectKCL.
Definition at line 107 of file ObjectVolcanoPiece.hh.
|
nodiscard |
Definition at line 104 of file ObjectVolcanoPiece.cc.
|
inlinenodiscardoverridevirtual0x80804F68 |
Reimplemented from Field::ObjectKCL.
Definition at line 83 of file ObjectVolcanoPiece.hh.
|
inlinenodiscardoverridevirtual0x808050EC |
Reimplemented from Field::ObjectKCL.
Definition at line 91 of file ObjectVolcanoPiece.hh.
|
overridevirtual0x80817F6C |
Reimplemented from Field::ObjectKCL.
Definition at line 39 of file ObjectVolcanoPiece.cc.
|
inlinenodiscardoverridevirtual0x80803F6C |
Reimplemented from Field::ObjectBase.
Definition at line 21 of file ObjectVolcanoPiece.hh.
|
inlinenodiscardoverridevirtual0x8080595C |
Reimplemented from Field::ObjectKCL.
Definition at line 178 of file ObjectVolcanoPiece.hh.
|
inlinenodiscardoverridevirtual0x80805974 |
Reimplemented from Field::ObjectBase.
Definition at line 16 of file ObjectVolcanoPiece.hh.
|
overridevirtual0x808044C0 |
Reimplemented from Field::ObjectKCL.
Definition at line 147 of file ObjectVolcanoPiece.cc.
|
overridevirtual0x80805924 |
Reimplemented from Field::ObjectKCL.
Definition at line 205 of file ObjectVolcanoPiece.cc.
|
overridevirtual0x80818334 |
Reimplemented from Field::ObjectKCL.
Definition at line 166 of file ObjectVolcanoPiece.cc.
|
staticconstexprprivate |
Definition at line 221 of file ObjectVolcanoPiece.hh.
|
private |
Definition at line 218 of file ObjectVolcanoPiece.hh.
|
private |
Definition at line 219 of file ObjectVolcanoPiece.hh.
|
private |
Definition at line 212 of file ObjectVolcanoPiece.hh.
|
private |
Definition at line 213 of file ObjectVolcanoPiece.hh.
|
private |
Definition at line 211 of file ObjectVolcanoPiece.hh.
|
private |
Definition at line 216 of file ObjectVolcanoPiece.hh.
|
private |
Definition at line 214 of file ObjectVolcanoPiece.hh.
|
private |
Definition at line 217 of file ObjectVolcanoPiece.hh.
|
private |
Definition at line 215 of file ObjectVolcanoPiece.hh.