| 1 | #pragma once |
| 2 | |
| 3 | #include <math/seadMatrix.h> |
| 4 | #include <math/seadVector.h> |
| 5 | |
| 6 | namespace al { |
| 7 | class LiveActor; |
| 8 | |
| 9 | void initActorPoseT(LiveActor* actor, const sead::Vector3f& trans); |
| 10 | void setTrans(LiveActor* actor, const sead::Vector3f& trans); |
| 11 | void initActorPoseTR(LiveActor* actor, const sead::Vector3f& trans, const sead::Vector3f& rotate); |
| 12 | void setRotate(LiveActor* actor, const sead::Vector3f& rotate); |
| 13 | void makeMtxSRT(sead::Matrix34f* mtx, const LiveActor* actor); |
| 14 | void makeMtxRT(sead::Matrix34f* mtx, const LiveActor* actor); |
| 15 | void makeMtxR(sead::Matrix34f* mtx, const LiveActor* actor); |
| 16 | void calcAnimFrontGravityPos(LiveActor* actor, const sead::Vector3f& front); |
| 17 | const sead::Vector3f& getGravity(const LiveActor* actor); |
| 18 | const sead::Vector3f& getTrans(const LiveActor* actor); |
| 19 | const sead::Vector3f& getScale(const LiveActor* actor); |
| 20 | void copyPose(LiveActor* actor, const LiveActor* target); |
| 21 | void updatePoseTrans(LiveActor* actor, const sead::Vector3f& trans); |
| 22 | void updatePoseRotate(LiveActor* actor, const sead::Vector3f& rotate); |
| 23 | void updatePoseQuat(LiveActor* actor, const sead::Quatf& quat); |
| 24 | void updatePoseMtx(LiveActor* actor, const sead::Matrix34f* mtx); |
| 25 | void calcSideDir(sead::Vector3f* side, const LiveActor* actor); |
| 26 | void calcLeftDir(sead::Vector3f* left, const LiveActor* actor); |
| 27 | void calcRightDir(sead::Vector3f* right, const LiveActor* actor); |
| 28 | void calcUpDir(sead::Vector3f* up, const LiveActor* actor); |
| 29 | void calcDownDir(sead::Vector3f* down, const LiveActor* actor); |
| 30 | void calcFrontDir(sead::Vector3f* front, const LiveActor* actor); |
| 31 | void calcBackDir(sead::Vector3f* back, const LiveActor* actor); |
| 32 | void calcPoseDir(sead::Vector3f* side, sead::Vector3f* up, sead::Vector3f* front, |
| 33 | const LiveActor* actor); |
| 34 | void calcQuat(sead::Quatf* quat, const LiveActor* actor); |
| 35 | f32 calcDistanceSignLocalXDir(const LiveActor* actor, const sead::Vector3f& pos); |
| 36 | f32 calcDistanceSignLocalYDir(const LiveActor* actor, const sead::Vector3f& pos); |
| 37 | f32 calcDistanceSignLocalZDir(const LiveActor* actor, const sead::Vector3f& pos); |
| 38 | f32 calcDistanceLocalXDir(const LiveActor* actor, const sead::Vector3f& pos); |
| 39 | f32 calcDistanceLocalYDir(const LiveActor* actor, const sead::Vector3f& pos); |
| 40 | f32 calcDistanceLocalZDir(const LiveActor* actor, const sead::Vector3f& pos); |
| 41 | sead::Vector3f* getTransPtr(LiveActor* actor); |
| 42 | void setTrans(LiveActor* actor, f32 x, f32 y, f32 z); |
| 43 | void setTransX(LiveActor* actor, f32 x); |
| 44 | void setTransY(LiveActor* actor, f32 y); |
| 45 | void setTransZ(LiveActor* actor, f32 z); |
| 46 | const sead::Vector3f& getRotate(const LiveActor* actor); |
| 47 | sead::Vector3f* getRotatePtr(LiveActor* actor); |
| 48 | void setRotate(LiveActor* actor, f32 x, f32 y, f32 z); |
| 49 | void setRotateX(LiveActor* actor, f32 x); |
| 50 | void setRotateY(LiveActor* actor, f32 y); |
| 51 | void setRotateZ(LiveActor* actor, f32 z); |
| 52 | sead::Vector3f* getScalePtr(LiveActor* actor); |
| 53 | sead::Vector3f* tryGetScalePtr(LiveActor* actor); |
| 54 | f32 getScaleX(const LiveActor* actor); |
| 55 | f32 getScaleY(const LiveActor* actor); |
| 56 | f32 getScaleZ(const LiveActor* actor); |
| 57 | void setScale(LiveActor* actor, const sead::Vector3f& scale); |
| 58 | void setScale(LiveActor* actor, f32 x, f32 y, f32 z); |
| 59 | void setScaleAll(LiveActor* actor, f32 scale); |
| 60 | void setScaleX(LiveActor* actor, f32 x); |
| 61 | void setScaleY(LiveActor* actor, f32 y); |
| 62 | void setScaleZ(LiveActor* actor, f32 z); |
| 63 | bool isFrontTarget(const LiveActor* actor, const sead::Vector3f& pos); |
| 64 | bool isFrontDir(const LiveActor* actor, const sead::Vector3f& dir); |
| 65 | bool isBackTarget(const LiveActor* actor, const sead::Vector3f& pos); |
| 66 | bool isBackDir(const LiveActor* actor, const sead::Vector3f& dir); |
| 67 | bool isLeftTarget(const LiveActor* actor, const sead::Vector3f& pos); |
| 68 | bool isLeftDir(const LiveActor* actor, const sead::Vector3f& dir); |
| 69 | bool isRightTarget(const LiveActor* actor, const sead::Vector3f& pos); |
| 70 | bool isRightDir(const LiveActor* actor, const sead::Vector3f& dir); |
| 71 | bool isUpTarget(const LiveActor* actor, const sead::Vector3f& pos); |
| 72 | bool isUpDir(const LiveActor* actor, const sead::Vector3f& dir); |
| 73 | bool isDownTarget(const LiveActor* actor, const sead::Vector3f& pos); |
| 74 | bool isDownDir(const LiveActor* actor, const sead::Vector3f& dir); |
| 75 | const sead::Quatf& getQuat(const LiveActor* actor); |
| 76 | sead::Quatf* getQuatPtr(LiveActor* actor); |
| 77 | sead::Quatf* tryGetQuatPtr(LiveActor* actor); |
| 78 | void setQuat(LiveActor* actor, const sead::Quatf& quat); |
| 79 | sead::Vector3f* getGravityPtr(const LiveActor* actor); |
| 80 | void setGravity(const LiveActor* actor, const sead::Vector3f& gravity); |
| 81 | const sead::Vector3f& getFront(const LiveActor* actor); |
| 82 | sead::Vector3f* getFrontPtr(LiveActor* actor); |
| 83 | void setFront(LiveActor* actor, const sead::Vector3f& front); |
| 84 | const sead::Vector3f& getUp(const LiveActor* actor); |
| 85 | sead::Vector3f* getUpPtr(LiveActor* actor); |
| 86 | void setUp(LiveActor* actor, const sead::Vector3f& up); |
| 87 | void multVecPoseNoTrans(sead::Vector3f* posOut, const LiveActor* actor, |
| 88 | const sead::Vector3f& posIn); |
| 89 | void multVecPose(sead::Vector3f* posOut, const LiveActor* actor, const sead::Vector3f& posIn); |
| 90 | void multVecPoseAndScale(sead::Vector3f* posOut, const LiveActor* actor, |
| 91 | const sead::Vector3f& posIn); |
| 92 | void multVecInvPose(sead::Vector3f* posOut, const LiveActor* actor, const sead::Vector3f& posIn); |
| 93 | void multVecInvQuat(sead::Vector3f* posOut, const LiveActor* actor, const sead::Vector3f& posIn); |
| 94 | void multMtxInvPose(sead::Matrix34f* mtxOut, const LiveActor* actor, const sead::Matrix34f& mtxIn); |
| 95 | void calcTransLocalOffset(sead::Vector3f* transOut, const LiveActor* actor, |
| 96 | const sead::Vector3f& transIn); |
| 97 | |
| 98 | } // namespace al |
| 99 | |
| 100 | namespace alActorPoseFunction { |
| 101 | |
| 102 | void calcBaseMtx(sead::Matrix34f* mtx, const al::LiveActor* actor); |
| 103 | void updatePoseTRMSV(al::LiveActor* actor); |
| 104 | |
| 105 | } // namespace alActorPoseFunction |
| 106 | |