CommonLibSSE NG
Loading...
Searching...
No Matches
hkpWorld.h
Go to the documentation of this file.
1#pragma once
2
3#include "RE/H/hkArray.h"
6#include "RE/H/hkStepInfo.h"
9
10namespace RE
11{
12 class hkCriticalSection;
13 class hkdWorld;
14 class hknpWorld;
15 class hkpActionListener;
16 class hkpBroadPhase;
17 class hkpBroadPhaseBorder;
18 class hkpBroadPhaseBorderListener;
19 class hkpCollisionDispatcher;
20 class hkpCollisionFilter;
21 class hkpConstraintListener;
22 class hkpContactImpulseLimitBreachedListener;
23 class hkpContactListener;
24 class hkpConvexListFilter;
25 class hkpEntityEntityBroadPhaseListener;
26 class hkpEntityListener;
27 class hkpIslandActivationListener;
28 class hkpIslandPostCollideListener;
29 class hkpIslandPostIntegrateListener;
30 class hkpPhantom;
31 class hkpPhantomBroadPhaseListener;
32 class hkpPhantomListener;
33 class hkpSimulation;
34 class hkpSimulationIsland;
35 class hkpTreeWorldManager;
36 class hkpTypedBroadPhaseDispatcher;
37 class hkpWorldDeletionListener;
38 class hkpWorldExtension;
39 class hkpWorldMaintenanceMgr;
40 class hkpWorldOperationQueue;
41 class hkpWorldPostCollideListener;
42 class hkpWorldPostIntegrateListener;
43 class hkpWorldPostSimulationListener;
44 class hkWorldMemoryAvailableWatchDog;
45 struct hkpDebugInfoOnPendingOperationQueues;
46 struct hkpMtThreadStructure;
47 struct hkpProcessCollisionInput;
48 struct hkpViolatedConstraintArray;
49 struct hkpWorldRayCastInput;
50 struct hkpWorldRayCastOutput;
51
53 {
54 public:
55 // members
58 };
59 static_assert(sizeof(hkpWorldDynamicsStepInfo) == 0x140);
60
62 {
63 public:
64 inline static constexpr auto RTTI = RTTI_hkpWorld;
65 inline static constexpr auto VTABLE = VTABLE_hkpWorld;
66
67 ~hkpWorld() override; // 00
68
69 // override (hkReferencedObject)
70 void CalcContentStatistics(hkStatisticsCollector* a_collector, const hkClass* a_class) const override; // 02
71
72 inline hkpPhantom* AddPhantom(hkpPhantom* a_phantom)
73 {
74 using func_t = decltype(&hkpWorld::AddPhantom);
75 REL::Relocation<func_t> func{ RELOCATION_ID(60502, 61314) };
76 return func(this, a_phantom);
77 }
78
79 inline void RemovePhantom(hkpPhantom* a_phantom)
80 {
81 using func_t = decltype(&hkpWorld::RemovePhantom);
82 REL::Relocation<func_t> func{ RELOCATION_ID(60504, 61316) };
83 return func(this, a_phantom);
84 }
85
86 inline void CastRay(const hkpWorldRayCastInput& a_input, hkpWorldRayCastOutput& a_output) const
87 {
88 using func_t = decltype(&hkpWorld::CastRay);
89 REL::Relocation<func_t> func{ RELOCATION_ID(60551, 61399) };
90 return func(this, a_input, a_output);
91 }
92
93 // members
94 hkpSimulation* simulation; // 010
95 std::uint64_t pad018; // 018
102 hkpWorldMaintenanceMgr* maintenanceMgr; // 070
105 std::uint8_t pad081; // 081
106 std::uint16_t pad082; // 082
107 std::uint32_t pad084; // 084
109 hkpTreeWorldManager* kdTreeManager; // 090
110 bool autoUpdateTree; // 098
111 std::uint8_t pad099; // 099
112 std::uint16_t pad09A; // 09A
113 std::uint32_t pad09C; // 09C
114 hkpTypedBroadPhaseDispatcher* broadPhaseDispatcher; // 0A0
115 hkpPhantomBroadPhaseListener* phantomBroadPhaseListener; // 0A8
116 hkpEntityEntityBroadPhaseListener* entityEntityBroadPhaseListener; // 0B0
117 hkpBroadPhaseBorderListener* broadPhaseBorderListener; // 0B8
118 hkpMtThreadStructure* multithreadedSimulationJobData; // 0C0
119 hkpProcessCollisionInput* collisionInput; // 0C8
121 hkpCollisionDispatcher* collisionDispatcher; // 0D8
123 hkpWorldOperationQueue* pendingOperations; // 0E8
124 std::int32_t pendingOperationsCount; // 0F0
125 std::int32_t pendingBodyOperationsCount; // 0F4
126 std::int32_t criticalOperationsLockCount; // 0F8
130 std::uint16_t pad102; // 102
131 std::uint32_t pad104; // 104
132 hkpDebugInfoOnPendingOperationQueues* pendingOperationQueues; // 108
133 std::int32_t pendingOperationQueueCount; // 110
137 std::uint16_t pad122; // 122
138 std::uint32_t minDesiredIslandSize; // 124
139 hkCriticalSection* modifyConstraintCriticalSection; // 128
140 std::int32_t isLocked; // 130
141 std::uint32_t pad134; // 134
142 hkCriticalSection* islandDirtyListCriticalSection; // 138
143 hkCriticalSection* propertyMasterLock; // 140
146 std::uint16_t pad14A; // 14A
150 bool wantDeactivation; // 155
152 std::uint8_t pad153; // 157
158 std::uint8_t pad169; // 169
159 std::uint16_t pad16A; // 16A
164 std::uint8_t pad179; // 179
165 std::uint16_t pad17A; // 17A
170 std::uint32_t lastEntityUID; // 18C
171 std::uint32_t lastIslandUID; // 190
172 std::uint32_t lastConstraintUID; // 194
188 hkpViolatedConstraintArray* violatedConstraintArray; // 288
189 hkpBroadPhaseBorder* broadPhaseBorder; // 290
190 hkdWorld* destructionWorld; // 298
191 hknpWorld* npWorld; // 2A0
192 std::uint64_t pad2A8; // 2A8
195 std::int32_t broadPhaseNumMarkers; // 410
196 std::int32_t sizeOfToiEventQueue; // 414
197 std::int32_t broadPhaseQuerySize; // 418
198 std::int32_t broadPhaseUpdateSize; // 41C
200 std::uint8_t pad421; // 421
201 std::uint16_t pad422; // 422
202 std::uint32_t pad424; // 424
203 std::uint64_t pad428; // 428
204 };
205 static_assert(sizeof(hkpWorld) == 0x430);
206}
#define RELOCATION_ID(a_se, a_ae)
Definition PCH.h:794
Definition hkArray.h:189
Definition hkMultiThreadCheck.h:6
Definition hkRefPtr.h:7
Definition hkReferencedObject.h:11
Definition hkStepInfo.h:8
Definition hkVector4.h:9
Definition hkpBroadPhase.h:21
Definition hkpCollisionFilter.h:20
Definition hkpConvexListFilter.h:12
Definition hkpPhantom.h:15
Definition hkpRigidBody.h:8
Definition hkpSimulationIsland.h:16
Definition hkpWorld.h:62
std::int32_t maxEntriesPerToiNarrowphaseCollideTask
Definition hkpWorld.h:161
std::int32_t sizeOfToiEventQueue
Definition hkpWorld.h:196
std::uint32_t pad09C
Definition hkpWorld.h:113
bool enableToiWeldRejection
Definition hkpWorld.h:149
bool wantDeactivation
Definition hkpWorld.h:150
std::int32_t criticalOperationsLockCount
Definition hkpWorld.h:126
hkArray< hkpContactListener * > contactListeners
Definition hkpWorld.h:185
std::int32_t pendingOperationsCount
Definition hkpWorld.h:124
std::uint16_t pad082
Definition hkpWorld.h:106
std::uint32_t pad084
Definition hkpWorld.h:107
std::int32_t maxSectorsPerMidphaseCollideTask
Definition hkpWorld.h:155
bool allowIntegrationOfIslandsWithoutConstraintsInASeparateJob
Definition hkpWorld.h:136
hkpPhantomBroadPhaseListener * phantomBroadPhaseListener
Definition hkpWorld.h:115
std::uint16_t pad122
Definition hkpWorld.h:137
stl::enumeration< hkpWorldCinfo::ContactPointGeneration, std::uint8_t > contactPointGeneration
Definition hkpWorld.h:199
std::uint8_t pad099
Definition hkpWorld.h:111
hkpCollisionDispatcher * collisionDispatcher
Definition hkpWorld.h:121
hkVector4 broadPhaseExtents[2]
Definition hkpWorld.h:194
float numToisTillAllowedPenetrationToiHigher
Definition hkpWorld.h:168
std::uint8_t pad169
Definition hkpWorld.h:158
std::uint8_t pad421
Definition hkpWorld.h:200
std::uint32_t lastEntityUID
Definition hkpWorld.h:170
hkArray< hkpWorldExtension * > worldExtensions
Definition hkpWorld.h:187
hkpWorldMaintenanceMgr * maintenanceMgr
Definition hkpWorld.h:102
std::int32_t pendingOperationQueueCount
Definition hkpWorld.h:133
hkpBroadPhase * broadPhase
Definition hkpWorld.h:108
float snapCollisionToConvexEdgeThreshold
Definition hkpWorld.h:147
hkArray< hkpWorldPostIntegrateListener * > worldPostIntegrateListeners
Definition hkpWorld.h:181
hkpPhantom * AddPhantom(hkpPhantom *a_phantom)
Definition hkpWorld.h:72
hkCriticalSection * modifyConstraintCriticalSection
Definition hkpWorld.h:139
float deactivationReferenceDistance
Definition hkpWorld.h:153
hkArray< hkpConstraintListener * > constraintListeners
Definition hkpWorld.h:177
float numToisTillAllowedPenetrationToi
Definition hkpWorld.h:167
hkpTreeWorldManager * kdTreeManager
Definition hkpWorld.h:109
std::int32_t maxNumToiCollisionPairsSinglethreaded
Definition hkpWorld.h:162
hkArray< hkpSimulationIsland * > activeSimulationIslands
Definition hkpWorld.h:99
hkArray< hkpWorldDeletionListener * > worldDeletionListeners
Definition hkpWorld.h:178
std::uint8_t pad081
Definition hkpWorld.h:105
bool criticalOperationsAllowed
Definition hkpWorld.h:129
std::uint8_t pad153
Definition hkpWorld.h:152
hkpEntityEntityBroadPhaseListener * entityEntityBroadPhaseListener
Definition hkpWorld.h:116
std::uint8_t pad179
Definition hkpWorld.h:164
std::uint32_t pad424
Definition hkpWorld.h:202
bool assertOnRunningOutOfSolverMemory
Definition hkpWorld.h:104
std::int32_t broadPhaseQuerySize
Definition hkpWorld.h:197
hkArray< hkpPhantomListener * > phantomListeners
Definition hkpWorld.h:176
std::uint32_t lastIslandUID
Definition hkpWorld.h:171
hkpBroadPhaseBorder * broadPhaseBorder
Definition hkpWorld.h:189
std::uint16_t pad09A
Definition hkpWorld.h:112
bool useHybridBroadphase
Definition hkpWorld.h:145
bool blockExecutingPendingOperations
Definition hkpWorld.h:128
std::int32_t isLocked
Definition hkpWorld.h:140
std::uint32_t lastConstraintUID
Definition hkpWorld.h:172
std::uint16_t pad102
Definition hkpWorld.h:130
hkCriticalSection * islandDirtyListCriticalSection
Definition hkpWorld.h:142
float numToisTillAllowedPenetrationSimplifiedToi
Definition hkpWorld.h:166
static constexpr auto VTABLE
Definition hkpWorld.h:65
std::int32_t maxSectorsPerNarrowphaseCollideTask
Definition hkpWorld.h:156
std::uint64_t pad018
Definition hkpWorld.h:95
hkArray< hkpIslandPostCollideListener * > islandPostCollideListeners
Definition hkpWorld.h:184
hkArray< hkpSimulationIsland * > dirtySimulationIslands
Definition hkpWorld.h:101
hkVector4 gravity
Definition hkpWorld.h:96
std::int32_t criticalOperationsLockCountForPhantoms
Definition hkpWorld.h:127
hkpViolatedConstraintArray * violatedConstraintArray
Definition hkpWorld.h:188
std::int32_t broadPhaseUpdateSize
Definition hkpWorld.h:198
stl::enumeration< hkpWorldCinfo::SimulationType, std::uint8_t > simulationType
Definition hkpWorld.h:163
bool wantSimulationIslands
Definition hkpWorld.h:144
hkArray< hkpPhantom * > phantoms
Definition hkpWorld.h:173
~hkpWorld() override
hkpCollisionFilter * collisionFilter
Definition hkpWorld.h:120
hkArray< hkpContactImpulseLimitBreachedListener * > contactImpulseLimitBreachedListeners
Definition hkpWorld.h:186
float toiCollisionResponseRotateNormal
Definition hkpWorld.h:154
std::uint64_t pad2A8
Definition hkpWorld.h:192
std::uint32_t pad104
Definition hkpWorld.h:131
bool autoUpdateTree
Definition hkpWorld.h:110
hkArray< hkpActionListener * > actionListeners
Definition hkpWorld.h:174
std::uint32_t pad134
Definition hkpWorld.h:141
hkArray< hkpIslandPostIntegrateListener * > islandPostIntegrateListeners
Definition hkpWorld.h:183
hkpConvexListFilter * convexListFilter
Definition hkpWorld.h:122
std::uint16_t pad16A
Definition hkpWorld.h:159
hkArray< hkpSimulationIsland * > inactiveSimulationIslands
Definition hkpWorld.h:100
float numToisTillAllowedPenetrationToiForced
Definition hkpWorld.h:169
void CalcContentStatistics(hkStatisticsCollector *a_collector, const hkClass *a_class) const override
hkpBroadPhaseBorderListener * broadPhaseBorderListener
Definition hkpWorld.h:117
static constexpr auto RTTI
Definition hkpWorld.h:64
hkRefPtr< hkWorldMemoryAvailableWatchDog > memoryWatchDog
Definition hkpWorld.h:103
std::uint16_t pad17A
Definition hkpWorld.h:165
hkpDebugInfoOnPendingOperationQueues * pendingOperationQueues
Definition hkpWorld.h:132
void RemovePhantom(hkpPhantom *a_phantom)
Definition hkpWorld.h:79
std::uint16_t pad14A
Definition hkpWorld.h:146
hkpSimulation * simulation
Definition hkpWorld.h:94
std::int32_t pendingBodyOperationsCount
Definition hkpWorld.h:125
hkArray< hkpWorldPostSimulationListener * > worldPostSimulationListeners
Definition hkpWorld.h:180
bool shouldActivateOnRigidBodyTransformChange
Definition hkpWorld.h:151
hkArray< hkpWorldPostCollideListener * > worldPostCollideListeners
Definition hkpWorld.h:182
hknpWorld * npWorld
Definition hkpWorld.h:191
hkpMtThreadStructure * multithreadedSimulationJobData
Definition hkpWorld.h:118
std::uint32_t minDesiredIslandSize
Definition hkpWorld.h:138
bool processToisMultithreaded
Definition hkpWorld.h:157
hkdWorld * destructionWorld
Definition hkpWorld.h:190
hkpSimulationIsland * fixedIsland
Definition hkpWorld.h:97
float snapCollisionToConcaveEdgeThreshold
Definition hkpWorld.h:148
hkpWorldDynamicsStepInfo dynamicsStepInfo
Definition hkpWorld.h:193
hkpTypedBroadPhaseDispatcher * broadPhaseDispatcher
Definition hkpWorld.h:114
hkpRigidBody * fixedRigidBody
Definition hkpWorld.h:98
hkpProcessCollisionInput * collisionInput
Definition hkpWorld.h:119
std::uint16_t pad422
Definition hkpWorld.h:201
std::int32_t broadPhaseNumMarkers
Definition hkpWorld.h:195
void CastRay(const hkpWorldRayCastInput &a_input, hkpWorldRayCastOutput &a_output) const
Definition hkpWorld.h:86
hkArray< hkpEntityListener * > entityListeners
Definition hkpWorld.h:175
hkCriticalSection * propertyMasterLock
Definition hkpWorld.h:143
bool processActionsInSingleThread
Definition hkpWorld.h:135
hkpWorldOperationQueue * pendingOperations
Definition hkpWorld.h:123
hkArray< hkpIslandActivationListener * > islandActivationListeners
Definition hkpWorld.h:179
std::int32_t maxEntriesPerToiMidphaseCollideTask
Definition hkpWorld.h:160
std::uint64_t pad428
Definition hkpWorld.h:203
hkMultiThreadCheck multiThreadCheck
Definition hkpWorld.h:134
Definition Relocation.h:1638
Definition PCH.h:223
Definition AbsorbEffect.h:6
constexpr REL::VariantID RTTI_hkpWorld(689895, 397750, 0x1f59c90)
constexpr std::array< REL::VariantID, 1 > VTABLE_hkpWorld
Definition Offsets_VTABLE.h:5057
Definition hkpSolverInfo.h:9
Definition hkpWorld.h:53
hkStepInfo stepInfo
Definition hkpWorld.h:56
hkpSolverInfo solverInfo
Definition hkpWorld.h:57
Definition hkpWorldRayCastInput.h:8
Definition hkpWorldRayCastOutput.h:10