CommonLibSSE NG
hkpWorldObject.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/H/hkArray.h"
6 #include "RE/H/hkStringPtr.h"
8 #include "RE/H/hkpProperty.h"
9 
10 namespace RE
11 {
12  class hkMotionState;
13  class hkpCollidable;
14  class hkpShapeModifier;
15  class hkpWorld;
16  class TESObjectREFR;
17 
18  namespace hkWorldOperation
19  {
20  enum class Result
21  {
22  kPostponed,
23  kDone
24  };
25  }
26 
28  {
29  public:
30  inline static constexpr auto RTTI = RTTI_hkpWorldObject;
31  inline static constexpr auto VTABLE = VTABLE_hkpWorldObject;
32 
34  {
35  kEnable,
36  kIgnore
37  };
38 
39  enum class BroadPhaseType
40  {
41  kInvalid,
42  kEntity,
43  kPhantom,
45 
46  kTotal
47  };
48 
49  ~hkpWorldObject() override; // 00
50 
51  // override (hkReferencedObject)
52  void CalcContentStatistics(hkStatisticsCollector* a_collector, const hkClass* a_class) const override; // 02
53 
54  // add
55  virtual hkWorldOperation::Result SetShape(const hkpShape* a_shape); // 03 - { return hkWorldOperation::Result::kDone; }
56  virtual hkWorldOperation::Result UpdateShape(hkpShapeModifier* a_shapeModifier); // 04 - { return hkWorldOperation::Result::kDone; }
57  virtual hkMotionState* GetMotionState() = 0; // 05
58 
59  const hkpCollidable* GetCollidable() const;
61  const hkpShape* GetShape() const;
63 
64  // members
65  hkpWorld* world; // 10
66  std::uint64_t userData; // 18 - bhkWorldObject*?
69  std::uint32_t padAC; // AC
72  void* treeData; // C8
73  };
74  static_assert(sizeof(hkpWorldObject) == 0xD0);
75 }
Definition: TESObjectREFR.h:113
Definition: hkArray.h:190
Definition: hkMotionState.h:11
Definition: hkMultiThreadCheck.h:6
Definition: hkReferencedObject.h:11
Definition: hkStringPtr.h:6
Definition: hkpCollidable.h:13
Definition: hkpLinkedCollidable.h:11
Definition: hkpShape.h:32
Definition: hkpWorldObject.h:28
virtual hkMotionState * GetMotionState()=0
TESObjectREFR * GetUserData() const
static constexpr auto RTTI
Definition: hkpWorldObject.h:30
std::uint32_t padAC
Definition: hkpWorldObject.h:69
hkMultiThreadCheck multiThreadCheck
Definition: hkpWorldObject.h:68
void CalcContentStatistics(hkStatisticsCollector *a_collector, const hkClass *a_class) const override
hkpLinkedCollidable collidable
Definition: hkpWorldObject.h:67
virtual hkWorldOperation::Result UpdateShape(hkpShapeModifier *a_shapeModifier)
const hkpCollidable * GetCollidable() const
~hkpWorldObject() override
hkpCollidable * GetCollidableRW()
hkStringPtr name
Definition: hkpWorldObject.h:70
static constexpr auto VTABLE
Definition: hkpWorldObject.h:31
hkpWorld * world
Definition: hkpWorldObject.h:65
BroadPhaseType
Definition: hkpWorldObject.h:40
const hkpShape * GetShape() const
void * treeData
Definition: hkpWorldObject.h:72
hkArray< hkpProperty > properties
Definition: hkpWorldObject.h:71
virtual hkWorldOperation::Result SetShape(const hkpShape *a_shape)
MultiThreadingChecks
Definition: hkpWorldObject.h:34
std::uint64_t userData
Definition: hkpWorldObject.h:66
Definition: hkpWorld.h:62
Result
Definition: hkpWorldObject.h:21
Definition: AbsorbEffect.h:6
constexpr REL::VariantID RTTI_hkpWorldObject(686314, 394123, 0x1efb520)
constexpr std::array< REL::VariantID, 1 > VTABLE_hkpWorldObject
Definition: Offsets_VTABLE.h:4996