CommonLibSSE (powerof3)
hkpPhantom.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/H/hkArray.h"
4 #include "RE/H/hkpPhantomType.h"
5 #include "RE/H/hkpWorldObject.h"
6 
7 namespace RE
8 {
9  class hkAabb;
10  class hkpCollidable;
11  class hkpPhantomListener;
12  class hkpPhantomOverlapListener;
13 
14  class hkpPhantom : public hkpWorldObject
15  {
16  public:
17  inline static constexpr auto RTTI = RTTI_hkpPhantom;
18  inline static constexpr auto VTABLE = VTABLE_hkpPhantom;
19 
20  ~hkpPhantom() override; // 00
21 
22  // override (hkpWorldObject)
23  void CalcContentStatistics(hkStatisticsCollector* a_collector, const hkClass* a_class) const override; // 02
24 
25  // add
26  virtual hkpPhantomType GetType() const = 0; // 06
27  virtual void CalcAabb(hkAabb& a_aabb) = 0; // 07
28  virtual void AddOverlappingCollidable(hkpCollidable* a_collidable) = 0; // 08
29  virtual bool IsOverlappingCollidableAdded(const hkpCollidable* a_collidable) = 0; // 09
30  virtual void RemoveOverlappingCollidable(hkpCollidable* a_collidable) = 0; // 0A
31  virtual void EnsureDeterministicOrder() = 0; // 0B
32  virtual hkpPhantom* Clone() const = 0; // 0C
33  virtual void UpdateShapeCollectionFilter(); // 0D - { return; }
34  virtual void DeallocateInternalArrays(); // 0E
35 
36  // members
39  };
40  static_assert(sizeof(hkpPhantom) == 0xF0);
41 }
Definition: hkAabb.h:8
Definition: hkpCollidable.h:13
Definition: hkpPhantom.h:15
virtual void EnsureDeterministicOrder()=0
~hkpPhantom() override
virtual bool IsOverlappingCollidableAdded(const hkpCollidable *a_collidable)=0
virtual void CalcAabb(hkAabb &a_aabb)=0
virtual void AddOverlappingCollidable(hkpCollidable *a_collidable)=0
hkArray< hkpPhantomListener * > phantomListeners
Definition: hkpPhantom.h:38
hkArray< hkpPhantomOverlapListener * > overlapListeners
Definition: hkpPhantom.h:37
virtual void DeallocateInternalArrays()
static constexpr auto VTABLE
Definition: hkpPhantom.h:18
virtual hkpPhantomType GetType() const =0
void CalcContentStatistics(hkStatisticsCollector *a_collector, const hkClass *a_class) const override
virtual void RemoveOverlappingCollidable(hkpCollidable *a_collidable)=0
virtual void UpdateShapeCollectionFilter()
virtual hkpPhantom * Clone() const =0
static constexpr auto RTTI
Definition: hkpPhantom.h:17
Definition: hkpWorldObject.h:28
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_hkpPhantom(static_cast< std::uint64_t >(686313))
constexpr std::array< REL::ID, 1 > VTABLE_hkpPhantom
Definition: Offsets_VTABLE.h:14303
hkpPhantomType
Definition: hkpPhantomType.h:6