CommonLibSSE NG
Loading...
Searching...
No Matches
hkp3AxisSweep.h
Go to the documentation of this file.
1#pragma once
2
3#include "RE/H/hkAabb.h"
4#include "RE/H/hkArray.h"
5#include "RE/H/hkVector4.h"
7
8namespace RE
9{
10 class hkpBroadPhaseHandle;
11
13 {
14 public:
15 inline static constexpr auto RTTI = RTTI_hkp3AxisSweep;
16 inline static constexpr auto VTABLE = VTABLE_hkp3AxisSweep;
17
18 using BpInt = std::uint16_t;
19
20 enum class MarkerHandling
21 {
23 kIgnore,
25 };
26
28 {
29 public:
30 // members
32 BpInt value; // 02
33 std::uint32_t pad04; // 04
35 };
36 static_assert(sizeof(hkpBpMarker) == 0x18);
37
39 {
40 public:
41 // members
42 BpInt minY; // 00
43 BpInt minZ; // 02
44 BpInt maxY; // 04
45 BpInt maxZ; // 06
46 BpInt minX; // 08
47 BpInt maxX; // 0A
48 std::uint32_t pad0C; // 0C
50 };
51 static_assert(sizeof(hkpBpNode) == 0x18);
52
54 {
55 public:
56 // members
59 };
60 static_assert(sizeof(hkpBpEndPoint) == 0x4);
61
63 {
64 public:
65 // members
67 };
68 static_assert(sizeof(hkpBpAxis) == 0x10);
69
70 ~hkp3AxisSweep() override; // 00
71
72 // override (hkpBroadPhase)
73 void CalcContentStatistics(hkStatisticsCollector* a_collector, const hkClass* a_class) const override; // 02
74 BroadPhaseType GetType() const override; // 03
75 void AddObject1(hkpBroadPhaseHandle* a_object, const hkAabbUint32& a_aabb, hkArray<hkpBroadPhaseHandlePair>& a_pairsOut) override; // 05
76 void AddObject2(hkpBroadPhaseHandle* a_object, const hkAabb& a_aabb, hkArray<hkpBroadPhaseHandlePair>& a_pairsOut) override; // 06
77 void AddObjectBatch(const hkArrayBase<hkpBroadPhaseHandle*>& a_addObjectList, const hkArrayBase<hkAabb>& a_addAabbList, hkArray<hkpBroadPhaseHandlePair>& a_newPairs) override; // 07
78 void RemoveObject(hkpBroadPhaseHandle* a_object, hkArray<hkpBroadPhaseHandlePair>& a_pairsOut) override; // 08
79 void RemoveObjectBatch(const hkArrayBase<hkpBroadPhaseHandle*>& a_removeObjectList, hkArray<hkpBroadPhaseHandlePair>& a_delPairsOut) override; // 09
80 std::int32_t GetNumObjects() const override; // 0A
81 void UpdateAabbs(hkpBroadPhaseHandle* a_objects[], const hkAabb* a_aabbs, std::int32_t a_numObjects, hkArray<hkpBroadPhaseHandlePair>& a_addedPairs, hkArray<hkpBroadPhaseHandlePair>& a_removedPairs) override; // 0B
82 void UpdateAabbsUInt32(hkpBroadPhaseHandle* a_objects[], const hkAabbUint32* a_aabbs, std::int32_t a_numObjects, hkArray<hkpBroadPhaseHandlePair>& a_addedPairs, hkArray<hkpBroadPhaseHandlePair>& a_removedPairs) override; // 0C
83 void Defragment() override; // 0D
84 void CheckDeterminism() override; // 0E - { return; }
85 void GetAllAabbs(hkArray<hkAabb>& a_allAabbs) const override; // 0F
86 void GetAabb(const hkpBroadPhaseHandle* a_object, hkAabb& a_aabb) const override; // 10
87 void GetExtents(hkVector4& a_worldMinOut, hkVector4& a_worldMaxOut) const override; // 11
88 void QuerySingleAabb(const hkAabb& a_aabb, hkArray<hkpBroadPhaseHandlePair>& a_pairsOut) const override; // 12
89 void ReQuerySingleObject(const hkpBroadPhaseHandle* a_object, hkArray<hkpBroadPhaseHandlePair>& a_pairsOut) const override; // 13
90 void QuerySingleAabbWithCollector(const hkAabb& a_aabb, hkpBroadPhaseCastCollector* a_collector) const override; // 14
91 bool AreAabbsOverlapping(const hkpBroadPhaseHandle* a_bhA, const hkpBroadPhaseHandle* a_bhB) const override; // 15
92 void ShiftAllObjects(const hkVector4& a_shiftDistance, hkVector4& a_effectiveShiftDistanceOut, hkArray<hkpBroadPhaseHandlePair>& a_newCollisionPairs) override; // 16
93 void ShiftBroadPhase(const hkVector4& a_shiftDistance, hkVector4& a_effectiveShiftDistanceOut, hkArray<hkpBroadPhaseHandlePair>& a_newCollisionPairs) override; // 17
94 void GetOffsetLowHigh32bit(hkVector4& a_offsetLow32bit, hkVector4& a_offsetHigh32bit) const override; // 18
95 void CastRay(const hkpCastRayInput& a_input, hkpBroadPhaseCastCollector* a_collectorBase, std::int32_t a_collectorStriding) const override; // 19
96 std::int32_t GetAabbCacheSize() const override; // 1A
97 void CalcAabbCache1(const hkAabb& a_aabb, hkpBroadPhaseAabbCache* a_aabbCacheOut) const override; // 1B
98 void CalcAabbCache2(const hkArrayBase<hkpCollidable*>& a_overlappingCollidables, hkpBroadPhaseAabbCache* a_aabbCacheOut) const override; // 1C
99 void CastAabb(const hkpCastAabbInput& a_input, hkpBroadPhaseCastCollector& a_collector) const override; // 1D
100 void Set32BitOffsetAndScale(const hkVector4& a_offsetLow, const hkVector4& a_offsetHigh, const hkVector4& a_scale) override; // 1E
101
102 // members
103 hkAabb aabb; // 030
111 hkpBpAxis axis[3]; // 0C0
112 std::int32_t numMarkers; // 0F0
113 std::int32_t ld2NumMarkers; // 0F4
116 std::uint32_t pad104; // 104
117 std::uint64_t pad108; // 108
118 };
119 static_assert(sizeof(hkp3AxisSweep) == 0x110);
120}
Definition hkAabb.h:8
Definition hkArray.h:9
Definition hkArray.h:189
Definition hkVector4.h:9
Definition hkp3AxisSweep.h:63
hkArray< hkpBpEndPoint > endPoints
Definition hkp3AxisSweep.h:66
Definition hkp3AxisSweep.h:54
BpInt value
Definition hkp3AxisSweep.h:57
BpInt nodeIndex
Definition hkp3AxisSweep.h:58
Definition hkp3AxisSweep.h:28
BpInt nodeIndex
Definition hkp3AxisSweep.h:31
std::uint32_t pad04
Definition hkp3AxisSweep.h:33
hkArray< BpInt > overlappingObjects
Definition hkp3AxisSweep.h:34
BpInt value
Definition hkp3AxisSweep.h:32
Definition hkp3AxisSweep.h:39
BpInt maxX
Definition hkp3AxisSweep.h:47
BpInt maxY
Definition hkp3AxisSweep.h:44
BpInt minX
Definition hkp3AxisSweep.h:46
BpInt minY
Definition hkp3AxisSweep.h:42
hkpBroadPhaseHandle * handle
Definition hkp3AxisSweep.h:49
std::uint32_t pad0C
Definition hkp3AxisSweep.h:48
BpInt minZ
Definition hkp3AxisSweep.h:43
BpInt maxZ
Definition hkp3AxisSweep.h:45
Definition hkp3AxisSweep.h:13
hkVector4 offsetHigh32bit
Definition hkp3AxisSweep.h:108
void Defragment() override
void RemoveObjectBatch(const hkArrayBase< hkpBroadPhaseHandle * > &a_removeObjectList, hkArray< hkpBroadPhaseHandlePair > &a_delPairsOut) override
void CastAabb(const hkpCastAabbInput &a_input, hkpBroadPhaseCastCollector &a_collector) const override
void GetExtents(hkVector4 &a_worldMinOut, hkVector4 &a_worldMaxOut) const override
MarkerHandling
Definition hkp3AxisSweep.h:21
void AddObject2(hkpBroadPhaseHandle *a_object, const hkAabb &a_aabb, hkArray< hkpBroadPhaseHandlePair > &a_pairsOut) override
void AddObject1(hkpBroadPhaseHandle *a_object, const hkAabbUint32 &a_aabb, hkArray< hkpBroadPhaseHandlePair > &a_pairsOut) override
void CalcAabbCache1(const hkAabb &a_aabb, hkpBroadPhaseAabbCache *a_aabbCacheOut) const override
hkVector4 scale32bit
Definition hkp3AxisSweep.h:109
hkVector4 offsetLow32bit
Definition hkp3AxisSweep.h:107
hkVector4 scale
Definition hkp3AxisSweep.h:106
void CalcContentStatistics(hkStatisticsCollector *a_collector, const hkClass *a_class) const override
hkArray< hkpBpNode > nodes
Definition hkp3AxisSweep.h:110
hkAabb aabb
Definition hkp3AxisSweep.h:103
void RemoveObject(hkpBroadPhaseHandle *a_object, hkArray< hkpBroadPhaseHandlePair > &a_pairsOut) override
std::uint32_t pad104
Definition hkp3AxisSweep.h:116
BroadPhaseType GetType() const override
void CastRay(const hkpCastRayInput &a_input, hkpBroadPhaseCastCollector *a_collectorBase, std::int32_t a_collectorStriding) const override
static constexpr auto VTABLE
Definition hkp3AxisSweep.h:16
static constexpr auto RTTI
Definition hkp3AxisSweep.h:15
void GetAllAabbs(hkArray< hkAabb > &a_allAabbs) const override
std::int32_t GetAabbCacheSize() const override
void ReQuerySingleObject(const hkpBroadPhaseHandle *a_object, hkArray< hkpBroadPhaseHandlePair > &a_pairsOut) const override
void QuerySingleAabb(const hkAabb &a_aabb, hkArray< hkpBroadPhaseHandlePair > &a_pairsOut) const override
void QuerySingleAabbWithCollector(const hkAabb &a_aabb, hkpBroadPhaseCastCollector *a_collector) const override
std::int32_t GetNumObjects() const override
void ShiftAllObjects(const hkVector4 &a_shiftDistance, hkVector4 &a_effectiveShiftDistanceOut, hkArray< hkpBroadPhaseHandlePair > &a_newCollisionPairs) override
void GetOffsetLowHigh32bit(hkVector4 &a_offsetLow32bit, hkVector4 &a_offsetHigh32bit) const override
void GetAabb(const hkpBroadPhaseHandle *a_object, hkAabb &a_aabb) const override
std::int32_t ld2NumMarkers
Definition hkp3AxisSweep.h:113
hkpBpAxis axis[3]
Definition hkp3AxisSweep.h:111
bool AreAabbsOverlapping(const hkpBroadPhaseHandle *a_bhA, const hkpBroadPhaseHandle *a_bhB) const override
std::int32_t numMarkers
Definition hkp3AxisSweep.h:112
void CheckDeterminism() override
hkpBpMarker * markers
Definition hkp3AxisSweep.h:114
std::uint16_t BpInt
Definition hkp3AxisSweep.h:18
void UpdateAabbs(hkpBroadPhaseHandle *a_objects[], const hkAabb *a_aabbs, std::int32_t a_numObjects, hkArray< hkpBroadPhaseHandlePair > &a_addedPairs, hkArray< hkpBroadPhaseHandlePair > &a_removedPairs) override
std::uint64_t pad108
Definition hkp3AxisSweep.h:117
hkVector4 offsetHigh
Definition hkp3AxisSweep.h:105
void UpdateAabbsUInt32(hkpBroadPhaseHandle *a_objects[], const hkAabbUint32 *a_aabbs, std::int32_t a_numObjects, hkArray< hkpBroadPhaseHandlePair > &a_addedPairs, hkArray< hkpBroadPhaseHandlePair > &a_removedPairs) override
void Set32BitOffsetAndScale(const hkVector4 &a_offsetLow, const hkVector4 &a_offsetHigh, const hkVector4 &a_scale) override
float intToFloatFloorCorrection
Definition hkp3AxisSweep.h:115
void ShiftBroadPhase(const hkVector4 &a_shiftDistance, hkVector4 &a_effectiveShiftDistanceOut, hkArray< hkpBroadPhaseHandlePair > &a_newCollisionPairs) override
~hkp3AxisSweep() override
hkVector4 offsetLow
Definition hkp3AxisSweep.h:104
void CalcAabbCache2(const hkArrayBase< hkpCollidable * > &a_overlappingCollidables, hkpBroadPhaseAabbCache *a_aabbCacheOut) const override
void AddObjectBatch(const hkArrayBase< hkpBroadPhaseHandle * > &a_addObjectList, const hkArrayBase< hkAabb > &a_addAabbList, hkArray< hkpBroadPhaseHandlePair > &a_newPairs) override
Definition hkpBroadPhaseCastCollector.h:8
Definition hkpBroadPhaseHandle.h:6
Definition hkpBroadPhase.h:21
BroadPhaseType
Definition hkpBroadPhase.h:27
Definition AbsorbEffect.h:6
constexpr std::array< REL::VariantID, 1 > VTABLE_hkp3AxisSweep
Definition Offsets_VTABLE.h:5216
char hkpBroadPhaseAabbCache
Definition hkpBroadPhase.h:18
constexpr REL::VariantID RTTI_hkp3AxisSweep(690078, 397933, 0x1f5ca98)
Definition hkpBroadPhase.h:59
Definition hkpBroadPhase.h:45