CommonLibSSE NG
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 
13  class bhkRigidBody : public bhkEntity
14  {
15  public:
16  inline static constexpr auto RTTI = RTTI_bhkRigidBody;
17  inline static auto Ni_RTTI = NiRTTI_bhkRigidBody;
18 
19  ~bhkRigidBody() override; // 00
20 
21  // override (bhkEntity)
22  const NiRTTI* GetRTTI() const override; // 02
23  bhkRigidBody* AsBhkRigidBody() override; // 15 - { return this; }
24  NiObject* CreateClone(NiCloningProcess& a_cloning) override; // 17
25  void LoadBinary(NiStream& a_stream) override; // 18
26  void LinkObject(NiStream& a_stream) override; // 19
27  bool RegisterStreamables(NiStream& a_stream) override; // 1A
28  void SaveBinary(NiStream& a_stream) override; // 1B
29  bool IsEqual(NiObject* a_object) override; // 1C
30  void MoveToWorld(bhkWorld* a_world) override; // 29
31  void RemoveFromCurrentWorld() override; // 2A
32  void Unk_2B(void) override; // 2B
33  void Unk_2C(void) override; // 2C - { return 0x110; }
34  void Unk_2D(void) override; // 2D
35  void Unk_2E(void) override; // 2E
36  void Unk_2F(void) override; // 2F
37  void Unk_30(void) override; // 30
38  void Unk_32(void) override; // 32
39 
40  // add
41  virtual void GetPosition(hkVector4& a_outPosition); // 33
42  virtual void GetRotation(hkQuaternion& a_outRotation); // 34
43  virtual void SetPosition(hkVector4& a_position); // 35
44  virtual void SetRotation(hkQuaternion& a_rotation); // 36
45  virtual void SetPositionAndRotation(hkVector4& a_position, hkQuaternion& a_rotation); // 37
46  virtual void GetCenterOfMassLocal(hkVector4& a_outCenterOfMassLocal); // 38
47  virtual void GetCenterOfMassWorld(hkVector4& a_outCenterOfMassWorld); // 39
48  virtual void GetTransform(hkTransform& a_outTransform); // 3A
49  virtual void GetAabbWorldspace(hkAabb& a_outAabb); // 3B
50  virtual void Unk_3C(void); // 3C
51 
52  void SetAngularImpulse(const hkVector4& a_impulse);
53  void SetAngularVelocity(const hkVector4& a_newVel);
54  void SetLinearImpulse(const hkVector4& a_impulse);
55  void SetLinearVelocity(const hkVector4& a_newVel);
56 
57  // members
58  BSTArray<void*> unk28; // 28 - array of smart ptrs to bhkConstraints
59  };
60  static_assert(sizeof(bhkRigidBody) == 0x40);
61 }
Definition: NiCloningProcess.h:10
Definition: NiObject.h:37
Definition: NiRTTI.h:6
Definition: NiStream.h:29
Definition: bhkEntity.h:8
Definition: bhkRigidBody.h:14
BSTArray< void * > unk28
Definition: bhkRigidBody.h:58
void Unk_2D(void) override
virtual void SetRotation(hkQuaternion &a_rotation)
virtual void GetAabbWorldspace(hkAabb &a_outAabb)
virtual void GetRotation(hkQuaternion &a_outRotation)
static auto Ni_RTTI
Definition: bhkRigidBody.h:17
~bhkRigidBody() override
void SetAngularImpulse(const hkVector4 &a_impulse)
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
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:16
Definition: bhkWorld.h:14
Definition: hkAabb.h:8
Definition: hkQuaternion.h:8
Definition: hkTransform.h:9
Definition: hkVector4.h:9
Definition: AbsorbEffect.h:6
constexpr REL::VariantID RTTI_bhkRigidBody(513967, 392755, 0x1eddd00)
constexpr REL::VariantID NiRTTI_bhkRigidBody(525068, 411544, 0x3187f58)