CommonLibSSE (powerof3)
hkpKeyframedRigidMotion.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/H/hkpMotion.h"
4 
5 namespace RE
6 {
7  class hkpMaxSizeMotion;
8 
10  {
11  public:
12  inline static constexpr auto RTTI = RTTI_hkpKeyframedRigidMotion;
13  inline static constexpr auto VTABLE = VTABLE_hkpKeyframedRigidMotion;
14 
15  ~hkpKeyframedRigidMotion() override; // 00
16 
17  // override (hkpMotion)
18  void SetMass(float a_mass) override; // 03 - { return; }
19  void SetMassInv(float a_massInv) override; // 04 - { return; }
20  void GetInertiaLocal(hkMatrix3& a_inertiaOut) const override; // 05
21  void GetInertiaWorld(hkMatrix3& a_inertiaOut) const override; // 06
22  void SetInertiaLocal(const hkMatrix3& a_inertia) override; // 07 - { return; }
23  void SetInertiaInvLocal(const hkMatrix3& a_inertiaInv) override; // 08 - { return; }
24  void GetInertiaInvLocal(hkMatrix3& a_inertiaInvOut) const override; // 09
25  void GetInertiaInvWorld(hkMatrix3& a_inertiaInvOut) const override; // 0A
26  void GetProjectedPointVelocity(const hkVector4& a_point, const hkVector4& a_normal, float& a_velOut, float& a_invVirtMassOut) const override; // 12
27  void ApplyLinearImpulse(const hkVector4& a_impulse) override; // 13 - { return; }
28  void ApplyPointImpulse(const hkVector4& a_impulse, const hkVector4& a_point) override; // 14 - { return; }
29  void ApplyAngularImpulse(const hkVector4& a_impulse) override; // 15 - { return; }
30  void ApplyForce(const float a_deltaTime, const hkVector4& a_force) override; // 16 - { return; }
31  void ApplyForce(const float a_deltaTime, const hkVector4& a_force, const hkVector4& a_point) override; // 17 - { return; }
32  void ApplyTorque(const float a_deltaTime, const hkVector4& a_torque) override; // 18 - { return; }
33 
34  // add
35  virtual void SetStepPosition(float a_position, float a_timestep); // 1A - { return; }
36  virtual void SetStoredMotion(hkpMaxSizeMotion* a_savedMotion); // 1B
37 
38  hkVector4 GetPointVelocity(const hkVector4& a_point) const
39  {
40  hkVector4 centerOfMassInWorld = motionState.sweptTransform.centerOfMass1;
41  return linearVelocity + angularVelocity.Cross(a_point - centerOfMassInWorld);
42  }
43  };
44  static_assert(sizeof(hkpKeyframedRigidMotion) == 0x140);
45 
47  {
48  public:
49  inline static constexpr auto RTTI = RTTI_hkpMaxSizeMotion;
50  };
51  static_assert(sizeof(hkpMaxSizeMotion) == 0x140);
52 }
Definition: hkMatrix3.h:8
hkSweptTransform sweptTransform
Definition: hkMotionState.h:15
hkVector4 centerOfMass1
Definition: hkSweptTransform.h:12
Definition: hkVector4.h:9
hkVector4 Cross(const hkVector4 &a_pt) const
Definition: hkpKeyframedRigidMotion.h:10
virtual void SetStepPosition(float a_position, float a_timestep)
virtual void SetStoredMotion(hkpMaxSizeMotion *a_savedMotion)
void SetMass(float a_mass) override
hkVector4 GetPointVelocity(const hkVector4 &a_point) const
Definition: hkpKeyframedRigidMotion.h:38
void GetInertiaInvWorld(hkMatrix3 &a_inertiaInvOut) const override
static constexpr auto RTTI
Definition: hkpKeyframedRigidMotion.h:12
void GetInertiaWorld(hkMatrix3 &a_inertiaOut) const override
void ApplyLinearImpulse(const hkVector4 &a_impulse) override
void ApplyForce(const float a_deltaTime, const hkVector4 &a_force, const hkVector4 &a_point) override
void SetInertiaInvLocal(const hkMatrix3 &a_inertiaInv) override
void SetMassInv(float a_massInv) override
void ApplyTorque(const float a_deltaTime, const hkVector4 &a_torque) override
void ApplyPointImpulse(const hkVector4 &a_impulse, const hkVector4 &a_point) override
void GetProjectedPointVelocity(const hkVector4 &a_point, const hkVector4 &a_normal, float &a_velOut, float &a_invVirtMassOut) const override
void ApplyAngularImpulse(const hkVector4 &a_impulse) override
void ApplyForce(const float a_deltaTime, const hkVector4 &a_force) override
void SetInertiaLocal(const hkMatrix3 &a_inertia) override
void GetInertiaLocal(hkMatrix3 &a_inertiaOut) const override
static constexpr auto VTABLE
Definition: hkpKeyframedRigidMotion.h:13
void GetInertiaInvLocal(hkMatrix3 &a_inertiaInvOut) const override
Definition: hkpKeyframedRigidMotion.h:47
static constexpr auto RTTI
Definition: hkpKeyframedRigidMotion.h:49
Definition: hkpMotion.h:16
hkVector4 angularVelocity
Definition: hkpMotion.h:82
hkMotionState motionState
Definition: hkpMotion.h:79
hkVector4 linearVelocity
Definition: hkpMotion.h:81
Definition: AbsorbEffect.h:6
constexpr std::array< REL::ID, 1 > VTABLE_hkpKeyframedRigidMotion
Definition: Offsets_VTABLE.h:14259
constexpr REL::ID RTTI_hkpMaxSizeMotion(static_cast< std::uint64_t >(689849))
constexpr REL::ID RTTI_hkpKeyframedRigidMotion(static_cast< std::uint64_t >(689850))