CommonLibSSE NG
hkpShapeCollection.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/H/hkpShape.h"
6 
7 namespace RE
8 {
10  public hkpShape, // 00
11  public hkpShapeContainer // 20
12  {
13  public:
14  inline static constexpr auto RTTI = RTTI_hkpShapeCollection;
15  inline static constexpr auto VTABLE = VTABLE_hkpShapeCollection;
16 
17  enum class CollectionType
18  {
19  kList,
22  kUser,
24  kMeshShape,
26 
27  kTotal
28  };
29 
30  ~hkpShapeCollection() override; // 00
31 
32  // override (hkpShape)
33  void CalcContentStatistics(hkStatisticsCollector* a_collector, const hkClass* a_class) const override; // 02
34  float GetMaximumProjection(const hkVector4& a_direction) const override; // 03
35  const hkpShapeContainer* GetContainer() const override; // 04
36  void GetAabbImpl(const hkTransform& a_localToWorld, float a_tolerance, hkAabb& a_out) const override; // 07
37  bool CastRayImpl(const hkpShapeRayCastInput& a_input, hkpShapeRayCastOutput& a_output) const override; // 08
38  void CastRayWithCollectorImpl(const hkpShapeRayCastInput& a_input, const hkpCdBody& a_cdBody, hkpRayHitCollector& a_collector) const override; // 09
39 
40  // override (hkpShapeContainer)
41  bool IsWeldingEnabled() const override; // 06 - { return !disableWelding; }
42 
43  // add
44  virtual void InitWeldingInfo(hkpWeldingUtility::WeldingType a_weldingType); // 0B - { return; }
45  virtual void SetWeldingInfo(hkpShapeKey a_key, std::int16_t a_weldingInfo); // 0C - { return; }
46 
47  // members
48  bool disableWelding; // 28
50  std::uint16_t pad2A; // 2A
51  std::uint32_t pad2C; // 2C
52  };
53  static_assert(sizeof(hkpShapeCollection) == 0x30);
54 }
Definition: hkAabb.h:8
Definition: hkTransform.h:9
Definition: hkVector4.h:9
Definition: hkpCdBody.h:8
Definition: hkpRayHitCollector.h:10
Definition: hkpShapeCollection.h:12
virtual void SetWeldingInfo(hkpShapeKey a_key, std::int16_t a_weldingInfo)
bool disableWelding
Definition: hkpShapeCollection.h:48
static constexpr auto RTTI
Definition: hkpShapeCollection.h:14
static constexpr auto VTABLE
Definition: hkpShapeCollection.h:15
void CastRayWithCollectorImpl(const hkpShapeRayCastInput &a_input, const hkpCdBody &a_cdBody, hkpRayHitCollector &a_collector) const override
float GetMaximumProjection(const hkVector4 &a_direction) const override
std::uint32_t pad2C
Definition: hkpShapeCollection.h:51
CollectionType
Definition: hkpShapeCollection.h:18
const hkpShapeContainer * GetContainer() const override
std::uint16_t pad2A
Definition: hkpShapeCollection.h:50
virtual void InitWeldingInfo(hkpWeldingUtility::WeldingType a_weldingType)
~hkpShapeCollection() override
void CalcContentStatistics(hkStatisticsCollector *a_collector, const hkClass *a_class) const override
stl::enumeration< CollectionType, std::uint8_t > collectionType
Definition: hkpShapeCollection.h:49
bool IsWeldingEnabled() const override
bool CastRayImpl(const hkpShapeRayCastInput &a_input, hkpShapeRayCastOutput &a_output) const override
void GetAabbImpl(const hkTransform &a_localToWorld, float a_tolerance, hkAabb &a_out) const override
Definition: hkpShapeContainer.h:6
Definition: hkpShape.h:32
WeldingType
Definition: hkpWeldingUtility.h:14
Definition: AbsorbEffect.h:6
constexpr REL::VariantID RTTI_hkpShapeCollection(689840, 397695, 0x1f591e8)
std::uint32_t hkpShapeKey
Definition: hkpContactPointEvent.h:12
constexpr std::array< REL::VariantID, 2 > VTABLE_hkpShapeCollection
Definition: Offsets_VTABLE.h:4988
Definition: hkpShapeRayCastOutput.h:9