CommonLibVR
bhkRigidBody.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSTArray.h"
4 #include "RE/B/bhkEntity.h"
5 
6 namespace RE
7 {
8  class hkAabb;
9  class hkTransform;
10  class hkQuaternion;
11  class hkVector4;
12  class hkpRigidBody;
13 
14  class bhkRigidBody : public bhkEntity
15  {
16  public:
17  inline static constexpr auto RTTI = RTTI_bhkRigidBody;
18  inline static constexpr auto Ni_RTTI = NiRTTI_bhkRigidBody;
19  inline static constexpr auto VTABLE = VTABLE_bhkRigidBody;
20 
21  ~bhkRigidBody() override; // 00
22 
23  // override (bhkEntity)
24  const NiRTTI* GetRTTI() const override; // 02
25  bhkRigidBody* AsBhkRigidBody() override; // 15 - { return this; }
26  NiObject* CreateClone(NiCloningProcess& a_cloning) override; // 17
27  void LoadBinary(NiStream& a_stream) override; // 18
28  void LinkObject(NiStream& a_stream) override; // 19
29  bool RegisterStreamables(NiStream& a_stream) override; // 1A
30  void SaveBinary(NiStream& a_stream) override; // 1B
31  bool IsEqual(NiObject* a_object) override; // 1C
32  void MoveToWorld(bhkWorld* a_world) override; // 29
33  void RemoveFromCurrentWorld() override; // 2A
34  void Unk_2B(void) override; // 2B
35  void Unk_2C(void) override; // 2C - { return 0x110; }
36  void Unk_2D(void) override; // 2D
37  void Unk_2E(void) override; // 2E
38  void Unk_2F(void) override; // 2F
39  void Unk_30(void) override; // 30
40  void Unk_32(void) override; // 32
41 
42  // add
43  virtual void GetPosition(hkVector4& a_outPosition); // 33
44  virtual void GetRotation(hkQuaternion& a_outRotation); // 34
45  virtual void SetPosition(hkVector4& a_position); // 35
46  virtual void SetRotation(hkQuaternion& a_rotation); // 36
47  virtual void SetPositionAndRotation(hkVector4& a_position, hkQuaternion& a_rotation); // 37
48  virtual void GetCenterOfMassLocal(hkVector4& a_outCenterOfMassLocal); // 38
49  virtual void GetCenterOfMassWorld(hkVector4& a_outCenterOfMassWorld); // 39
50  virtual void GetTransform(hkTransform& a_outTransform); // 3A
51  virtual void GetAabbWorldspace(hkAabb& a_outAabb); // 3B
52  virtual void Unk_3C(void); // 3C
53 
55  void SetAngularImpulse(const hkVector4& a_impulse);
56  void SetAngularVelocity(const hkVector4& a_newVel);
57  void SetLinearImpulse(const hkVector4& a_impulse);
58  void SetLinearVelocity(const hkVector4& a_newVel);
59 
60  // members
61  BSTArray<void*> unk28; // 28 - array of smart ptrs to bhkConstraints
62  private:
63  KEEP_FOR_RE()
64  };
65  static_assert(sizeof(bhkRigidBody) == 0x40);
66 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: NiCloningProcess.h:10
Definition: NiObject.h:37
Definition: NiRTTI.h:6
Definition: NiStream.h:29
Definition: bhkEntity.h:8
Definition: bhkRigidBody.h:15
hkpRigidBody * GetRigidBody() const
BSTArray< void * > unk28
Definition: bhkRigidBody.h:61
void Unk_2D(void) override
virtual void SetRotation(hkQuaternion &a_rotation)
virtual void GetAabbWorldspace(hkAabb &a_outAabb)
virtual void GetRotation(hkQuaternion &a_outRotation)
~bhkRigidBody() override
void SetAngularImpulse(const hkVector4 &a_impulse)
static constexpr auto VTABLE
Definition: bhkRigidBody.h:19
void Unk_2E(void) override
void LinkObject(NiStream &a_stream) override
virtual void Unk_3C(void)
void LoadBinary(NiStream &a_stream) override
virtual void GetTransform(hkTransform &a_outTransform)
void RemoveFromCurrentWorld() override
static constexpr auto Ni_RTTI
Definition: bhkRigidBody.h:18
void Unk_2B(void) override
virtual void GetCenterOfMassWorld(hkVector4 &a_outCenterOfMassWorld)
void Unk_2C(void) override
const NiRTTI * GetRTTI() const override
bool RegisterStreamables(NiStream &a_stream) override
void Unk_30(void) override
virtual void GetPosition(hkVector4 &a_outPosition)
void SetLinearVelocity(const hkVector4 &a_newVel)
bool IsEqual(NiObject *a_object) override
void Unk_32(void) override
virtual void GetCenterOfMassLocal(hkVector4 &a_outCenterOfMassLocal)
virtual void SetPosition(hkVector4 &a_position)
void MoveToWorld(bhkWorld *a_world) override
void SaveBinary(NiStream &a_stream) override
void SetLinearImpulse(const hkVector4 &a_impulse)
bhkRigidBody * AsBhkRigidBody() override
void SetAngularVelocity(const hkVector4 &a_newVel)
virtual void SetPositionAndRotation(hkVector4 &a_position, hkQuaternion &a_rotation)
NiObject * CreateClone(NiCloningProcess &a_cloning) override
void Unk_2F(void) override
static constexpr auto RTTI
Definition: bhkRigidBody.h:17
Definition: bhkWorld.h:14
Definition: hkAabb.h:8
Definition: hkQuaternion.h:8
Definition: hkTransform.h:9
Definition: hkVector4.h:9
Definition: hkpRigidBody.h:8
Definition: AbsorbEffect.h:6
constexpr REL::ID NiRTTI_bhkRigidBody(static_cast< std::uint64_t >(525068))
constexpr REL::ID RTTI_bhkRigidBody(static_cast< std::uint64_t >(513967))
constexpr std::array< REL::ID, 1 > VTABLE_bhkRigidBody
Definition: Offsets_VTABLE.h:13357