CommonLibSSE (Parapets fork)
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
14 enum
15 {
18 };
19
20 enum class ListShapeFlags
21 {
22 kNone = 0,
24 };
25
26 struct ChildInfo
27 {
28 public:
29 // members
30 alignas(0x10) const hkpShape* shape; // 00
31 std::uint32_t collisionFilterInfo; // 08
32 mutable std::int32_t shapeSize; // 0C
33 mutable std::int32_t numChildShapes; // 10
34 std::uint32_t pad14; // 14
35 std::uint64_t pad18; // 18
36 };
37 static_assert(sizeof(ChildInfo) == 0x20);
38
39 ~hkpListShape() override; // 00
40
41 // override (hkpShapeCollection)
42 void CalcContentStatistics(hkStatisticsCollector* a_collector, const hkClass* a_class) const override; // 02
43 std::int32_t CalcSizeForSpu(const CalcSizeForSpuInput& a_input, std::int32_t a_spuBufferSizeLeft) const override; // 06
44 void GetAabbImpl(const hkTransform& a_localToWorld, float a_tolerance, hkAabb& a_out) const override; // 07
45 bool CastRayImpl(const hkpShapeRayCastInput& a_input, hkpShapeRayCastOutput& a_output) const override; // 08
46 void CastRayWithCollectorImpl(const hkpShapeRayCastInput& a_input, const hkpCdBody& a_cdBody, hkpRayHitCollector& a_collector) const override; // 09
47
48 // override (hkpShapeContainer)
49 std::int32_t GetNumChildShapes() const override; // 01 - { return m_childInfo.getSize() - m_numDisabledChildren; }
50 hkpShapeKey GetFirstKey() const override; // 02 - { return hkpListShape::getNextKey(hkpShapeKey(-1)); }
51 hkpShapeKey GetNextKey(hkpShapeKey a_oldKey) const override; // 03
52 std::uint32_t GetCollisionFilterInfo(hkpShapeKey a_key) const override; // 04
53 const hkpShape* GetChildShape(hkpShapeKey a_key, hkpShapeBuffer& a_buffer) const override; // 05
54
55 // members
57 std::uint16_t flags; // 40
58 std::uint16_t numDisabledChildren; // 42
59 std::uint32_t pad44; // 44
62 std::uint32_t enabledChildren[8]; // 70
63 };
64 static_assert(sizeof(hkpListShape) == 0x90);
65}
Definition: hkAabb.h:8
Definition: hkArray.h:189
Definition: hkTransform.h:9
Definition: hkVector4.h:8
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:62
@ kMaxChildrenForSPUMidPhase
Definition: hkpListShape.h:16
@ kMaxDisabledChildren
Definition: hkpListShape.h:17
hkpShapeKey GetNextKey(hkpShapeKey a_oldKey) const override
std::uint16_t numDisabledChildren
Definition: hkpListShape.h:58
hkVector4 aabbHalfExtents
Definition: hkpListShape.h:60
std::uint32_t pad44
Definition: hkpListShape.h:59
hkArray< ChildInfo > childInfo
Definition: hkpListShape.h:56
const hkpShape * GetChildShape(hkpShapeKey a_key, hkpShapeBuffer &a_buffer) const override
~hkpListShape() override
hkVector4 aabbCenter
Definition: hkpListShape.h:61
void CastRayWithCollectorImpl(const hkpShapeRayCastInput &a_input, const hkpCdBody &a_cdBody, hkpRayHitCollector &a_collector) const override
ListShapeFlags
Definition: hkpListShape.h:21
std::int32_t GetNumChildShapes() const override
std::uint16_t flags
Definition: hkpListShape.h:57
Definition: hkpShapeCollection.h:12
Definition: hkpShape.h:31
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_hkpListShape
Definition: Offsets_RTTI.h:7641
std::uint32_t hkpShapeKey
Definition: hkpShape.h:27
Definition: hkpListShape.h:27
std::uint32_t pad14
Definition: hkpListShape.h:34
std::int32_t shapeSize
Definition: hkpListShape.h:32
std::uint32_t collisionFilterInfo
Definition: hkpListShape.h:31
std::int32_t numChildShapes
Definition: hkpListShape.h:33
const hkpShape * shape
Definition: hkpListShape.h:30
std::uint64_t pad18
Definition: hkpListShape.h:35
Definition: hkpShape.h:49
Definition: hkpShapeBuffer.h:6
Definition: hkpShapeRayCastOutput.h:9