mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-09 09:47:43 +00:00
CPhysicsActor imps
This commit is contained in:
@@ -22,7 +22,17 @@ struct SMoverData
|
||||
|
||||
struct CMotionState
|
||||
{
|
||||
CMotionState(const zeus::CVector3f&, const zeus::CNUQuaternion&, const zeus::CVector3f&, const zeus::CAxisAngle&);
|
||||
zeus::CVector3f x0_origin;
|
||||
zeus::CQuaternion xc_rotation;
|
||||
zeus::CVector3f x1c_;
|
||||
zeus::CAxisAngle x28_;
|
||||
CMotionState(const zeus::CVector3f& origin, const zeus::CNUQuaternion& rotation,
|
||||
const zeus::CVector3f& v2, const zeus::CAxisAngle& angle)
|
||||
: x0_origin(origin)
|
||||
, xc_rotation(rotation)
|
||||
, x1c_(v2)
|
||||
, x28_(angle)
|
||||
{}
|
||||
};
|
||||
|
||||
class CPhysicsActor : public CActor
|
||||
@@ -30,15 +40,15 @@ class CPhysicsActor : public CActor
|
||||
protected:
|
||||
float xe8_mass;
|
||||
float xec_massRecip;
|
||||
float xf0_inertialTensor;
|
||||
float xf4_inertialTensorRecip;
|
||||
float xf0_inertiaTensor;
|
||||
float xf4_inertiaTensorRecip;
|
||||
bool xf8_;
|
||||
bool xf9_;
|
||||
zeus::CVector3f xfc_;
|
||||
zeus::CAxisAngle x108_;
|
||||
zeus::CMatrix3f x114_;
|
||||
zeus::CVector3f x138_;
|
||||
zeus::CAxisAngle x144_;
|
||||
zeus::CVector3f x138_velocity;
|
||||
zeus::CAxisAngle x144_angularVelocity;
|
||||
zeus::CVector3f x150_;
|
||||
zeus::CVector3f x15c_;
|
||||
zeus::CVector3f x168_;
|
||||
@@ -70,21 +80,37 @@ public:
|
||||
zeus::CVector3f GetOrbitPosition(const CStateManager&);
|
||||
zeus::CVector3f GetAimPosition(const CStateManager&, float val);
|
||||
virtual const CCollisionPrimitive& GetCollisionPrimitive() const;
|
||||
virtual zeus::CTransform GetPrimitiveTransform();
|
||||
virtual zeus::CTransform GetPrimitiveTransform() const;
|
||||
virtual void CollidedWith(const TUniqueId&, const CCollisionInfoList&, CStateManager&);
|
||||
virtual float GetStepUpHeight();
|
||||
virtual float GetStepDownHeight();
|
||||
virtual float GetWeight();
|
||||
virtual float GetStepUpHeight() const;
|
||||
virtual float GetStepDownHeight() const;
|
||||
virtual float GetWeight() const;
|
||||
|
||||
void SetPrimitiveOffset(const zeus::CVector2f& offset);
|
||||
zeus::CVector3f GetPrimitiveOffset();
|
||||
void MoveCollisionPrimitive(const zeus::CVector3f& offset);
|
||||
void SetBoundingBox(const zeus::CAABox& box);
|
||||
zeus::CAABox GetMotionVolume();
|
||||
zeus::CAABox GetMotionVolume(float f31) const;
|
||||
zeus::CVector3f CalculateNewVelocityWR_UsingImpulses() const;
|
||||
zeus::CAABox GetBoundingBox();
|
||||
const zeus::CAABox& GetBaseBoundingBox() const;
|
||||
void AddMotionState(const CMotionState& mst);
|
||||
CMotionState GetMotionState() const;
|
||||
void SetInertiaTensorScalar(float tensor);
|
||||
void SetMass(float mass);
|
||||
void SetAngularVelocityOR(const zeus::CAxisAngle& angVel);
|
||||
zeus::CAxisAngle GetAngularVelocityOR() const;
|
||||
void SetAngularVelocityWR(const zeus::CAxisAngle& angVel);
|
||||
void SetVelocityWR(const zeus::CVector3f& vel);
|
||||
void SetVelocityOR(const zeus::CVector3f& vel);
|
||||
zeus::CVector3f GetTotalForcesWR() const;
|
||||
void RotateInOneFrameOR(const zeus::CQuaternion& q, float d);
|
||||
zeus::CVector3f GetRotateToORAngularMomentumWR(const zeus::CQuaternion& q, float d) const;
|
||||
void ClearImpulses();
|
||||
void ClearForcesAndTorques();
|
||||
void Stop();
|
||||
void ComputeDerivedQuantities();
|
||||
bool WillMove(const CStateManager&);
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user