CommonLibSSE NG
Loading...
Searching...
No Matches
hkpListShape.h
Go to the documentation of this file.
1#pragma once
2
3#include "RE/H/hkArray.h"
4#include "RE/H/hkVector4.h"
6
7namespace RE
8{
10 {
11 public:
12 inline static constexpr auto RTTI = RTTI_hkpListShape;
13 inline static constexpr auto VTABLE = VTABLE_hkpListShape;
14
15 enum
16 {
19 };
20
21 enum class ListShapeFlags
22 {
23 kNone = 0,
25 };
26
27 struct ChildInfo
28 {
29 public:
30 // members
31 alignas(0x10) const hkpShape* shape; // 00
32 std::uint32_t collisionFilterInfo; // 08
33 mutable std::int32_t shapeSize; // 0C
34 mutable std::int32_t numChildShapes; // 10
35 std::uint32_t pad14; // 14
36 std::uint64_t pad18; // 18
37 };
38 static_assert(sizeof(ChildInfo) == 0x20);
39
40 ~hkpListShape() override; // 00
41
42 // override (hkpShapeCollection)
43 void CalcContentStatistics(hkStatisticsCollector* a_collector, const hkClass* a_class) const override; // 02
44 std::int32_t CalcSizeForSpu(const CalcSizeForSpuInput& a_input, std::int32_t a_spuBufferSizeLeft) const override; // 06
45 void GetAabbImpl(const hkTransform& a_localToWorld, float a_tolerance, hkAabb& a_out) const override; // 07
46 bool CastRayImpl(const hkpShapeRayCastInput& a_input, hkpShapeRayCastOutput& a_output) const override; // 08
47 void CastRayWithCollectorImpl(const hkpShapeRayCastInput& a_input, const hkpCdBody& a_cdBody, hkpRayHitCollector& a_collector) const override; // 09
48
49 // override (hkpShapeContainer)
50 std::int32_t GetNumChildShapes() const override; // 01 - { return m_childInfo.getSize() - m_numDisabledChildren; }
51 hkpShapeKey GetFirstKey() const override; // 02 - { return hkpListShape::getNextKey(hkpShapeKey(-1)); }
52 hkpShapeKey GetNextKey(hkpShapeKey a_oldKey) const override; // 03
53 std::uint32_t GetCollisionFilterInfo(hkpShapeKey a_key) const override; // 04
54 const hkpShape* GetChildShape(hkpShapeKey a_key, hkpShapeBuffer& a_buffer) const override; // 05
55
56 // members
58 std::uint16_t flags; // 40
59 std::uint16_t numDisabledChildren; // 42
60 std::uint32_t pad44; // 44
63 std::uint32_t enabledChildren[8]; // 70
64 };
65 static_assert(sizeof(hkpListShape) == 0x90);
66}
Definition hkAabb.h:8
Definition hkArray.h:189
Definition hkTransform.h:9
Definition hkVector4.h:9
Definition hkpCdBody.h:8
Definition hkpListShape.h:10
void CalcContentStatistics(hkStatisticsCollector *a_collector, const hkClass *a_class) const override
void GetAabbImpl(const hkTransform &a_localToWorld, float a_tolerance, hkAabb &a_out) const override
static constexpr auto RTTI
Definition hkpListShape.h:12
std::uint32_t GetCollisionFilterInfo(hkpShapeKey a_key) const override
hkpShapeKey GetFirstKey() const override
std::int32_t CalcSizeForSpu(const CalcSizeForSpuInput &a_input, std::int32_t a_spuBufferSizeLeft) const override
bool CastRayImpl(const hkpShapeRayCastInput &a_input, hkpShapeRayCastOutput &a_output) const override
std::uint32_t enabledChildren[8]
Definition hkpListShape.h:63
hkpShapeKey GetNextKey(hkpShapeKey a_oldKey) const override
std::uint16_t numDisabledChildren
Definition hkpListShape.h:59
hkVector4 aabbHalfExtents
Definition hkpListShape.h:61
static constexpr auto VTABLE
Definition hkpListShape.h:13
std::uint32_t pad44
Definition hkpListShape.h:60
hkArray< ChildInfo > childInfo
Definition hkpListShape.h:57
@ kMaxChildrenForSPUMidPhase
Definition hkpListShape.h:17
@ kMaxDisabledChildren
Definition hkpListShape.h:18
const hkpShape * GetChildShape(hkpShapeKey a_key, hkpShapeBuffer &a_buffer) const override
~hkpListShape() override
hkVector4 aabbCenter
Definition hkpListShape.h:62
void CastRayWithCollectorImpl(const hkpShapeRayCastInput &a_input, const hkpCdBody &a_cdBody, hkpRayHitCollector &a_collector) const override
ListShapeFlags
Definition hkpListShape.h:22
std::int32_t GetNumChildShapes() const override
std::uint16_t flags
Definition hkpListShape.h:58
Definition hkpRayHitCollector.h:10
Definition hkpShapeCollection.h:12
Definition hkpShape.h:32
Definition AbsorbEffect.h:6
constexpr REL::VariantID RTTI_hkpListShape(689843, 397698, 0x1f59298)
constexpr std::array< REL::VariantID, 2 > VTABLE_hkpListShape
Definition Offsets_VTABLE.h:4991
std::uint32_t hkpShapeKey
Definition hkpContactPointEvent.h:12
Definition hkpListShape.h:28
std::uint32_t pad14
Definition hkpListShape.h:35
std::int32_t shapeSize
Definition hkpListShape.h:33
std::uint32_t collisionFilterInfo
Definition hkpListShape.h:32
std::int32_t numChildShapes
Definition hkpListShape.h:34
const hkpShape * shape
Definition hkpListShape.h:31
std::uint64_t pad18
Definition hkpListShape.h:36
Definition hkpShape.h:51
Definition hkpShapeBuffer.h:6
Definition hkpShapeRayCastOutput.h:9