| 1 | #pragma once |
|---|---|
| 2 | |
| 3 | #include <container/seadTList.h> |
| 4 | #include <math/seadMatrix.h> |
| 5 | #include <math/seadVector.h> |
| 6 | |
| 7 | namespace al { |
| 8 | class KCollisionServer; |
| 9 | class LiveActor; |
| 10 | class HitSensor; |
| 11 | |
| 12 | class CollisionParts { |
| 13 | public: |
| 14 | const LiveActor* getConnectedHost() const; |
| 15 | void calcForceMovePower(sead::Vector3f*, const sead::Vector3f&) const; |
| 16 | void calcForceRotatePower(sead::Quatf*) const; |
| 17 | |
| 18 | const sead::Matrix34f& getBaseMtx() const { return mBaseMtx; } |
| 19 | |
| 20 | const sead::Matrix34f& getBaseInvMtx() const { return mBaseInvMtx; } |
| 21 | |
| 22 | const sead::Matrix34f& getPrevBaseMtx() const { return mPrevBaseMtx; } |
| 23 | |
| 24 | KCollisionServer* getKCollisionServer() const { return mKCollisionServer; } |
| 25 | |
| 26 | s32 get_15c() const { return _15c; } |
| 27 | |
| 28 | bool isMoving() const { return mIsMoving; } |
| 29 | |
| 30 | const HitSensor* getConnectedSensor() const { return mConnectedSensor; } |
| 31 | |
| 32 | private: |
| 33 | void* unk[2]; |
| 34 | CollisionParts* _10; // self-reference |
| 35 | sead::TList<CollisionParts*>* mPartsList; |
| 36 | sead::Matrix34f* mJointMtx; |
| 37 | sead::Matrix34f mSyncMtx; |
| 38 | sead::Matrix34f mBaseMtx; |
| 39 | sead::Matrix34f mBaseInvMtx; |
| 40 | sead::Matrix34f mPrevBaseMtx; |
| 41 | sead::Matrix34f mPrevBaseInvMtx; |
| 42 | sead::Vector3f mMtxScaleVec; |
| 43 | f32 mMtxScale; |
| 44 | f32 mInvMtxScale; |
| 45 | s32 mPriority; |
| 46 | KCollisionServer* mKCollisionServer; |
| 47 | HitSensor* mConnectedSensor; |
| 48 | const char* mSpecialPurpose; |
| 49 | const char* mOptionalPurpose; |
| 50 | sead::Vector3f _150; // same as mMtxScaleVec? |
| 51 | s32 _15c; |
| 52 | f32 mBoundingSphereRange; |
| 53 | f32 mBaseMtxScale; |
| 54 | bool mIsValidatedByUser; |
| 55 | bool mIsValidatedBySystem; |
| 56 | bool _16a; |
| 57 | bool _16b; |
| 58 | bool _16c; |
| 59 | bool mIsMoving; |
| 60 | bool _16e; |
| 61 | }; |
| 62 | |
| 63 | } // namespace al |
| 64 |