CommonLibSSE (powerof3)
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
66 ~hkpWorld() override; // 00
67
68 // override (hkReferencedObject)
69 void CalcContentStatistics(hkStatisticsCollector* a_collector, const hkClass* a_class) const override; // 02
70
71 inline hkpPhantom* AddPhantom(hkpPhantom* a_phantom)
72 {
73 using func_t = decltype(&hkpWorld::AddPhantom);
74 REL::Relocation<func_t> func{ RELOCATION_ID(60502, 61314) };
75 return func(this, a_phantom);
76 }
77
78 inline void RemovePhantom(hkpPhantom* a_phantom)
79 {
80 using func_t = decltype(&hkpWorld::RemovePhantom);
81 REL::Relocation<func_t> func{ RELOCATION_ID(60504, 61316) };
82 return func(this, a_phantom);
83 }
84
85 inline void CastRay(const hkpWorldRayCastInput& a_input, hkpWorldRayCastOutput& a_output) const
86 {
87 using func_t = decltype(&hkpWorld::CastRay);
88 REL::Relocation<func_t> func{ RELOCATION_ID(60551, 61399) };
89 return func(this, a_input, a_output);
90 }
91
92 // members
93 hkpSimulation* simulation; // 010
94 std::uint64_t pad018; // 018
101 hkpWorldMaintenanceMgr* maintenanceMgr; // 070
104 std::uint8_t pad081; // 081
105 std::uint16_t pad082; // 082
106 std::uint32_t pad084; // 084
108 hkpTreeWorldManager* kdTreeManager; // 090
109 bool autoUpdateTree; // 098
110 std::uint8_t pad099; // 099
111 std::uint16_t pad09A; // 09A
112 std::uint32_t pad09C; // 09C
113 hkpTypedBroadPhaseDispatcher* broadPhaseDispatcher; // 0A0
114 hkpPhantomBroadPhaseListener* phantomBroadPhaseListener; // 0A8
115 hkpEntityEntityBroadPhaseListener* entityEntityBroadPhaseListener; // 0B0
116 hkpBroadPhaseBorderListener* broadPhaseBorderListener; // 0B8
117 hkpMtThreadStructure* multithreadedSimulationJobData; // 0C0
118 hkpProcessCollisionInput* collisionInput; // 0C8
120 hkpCollisionDispatcher* collisionDispatcher; // 0D8
122 hkpWorldOperationQueue* pendingOperations; // 0E8
123 std::int32_t pendingOperationsCount; // 0F0
124 std::int32_t pendingBodyOperationsCount; // 0F4
125 std::int32_t criticalOperationsLockCount; // 0F8
129 std::uint16_t pad102; // 102
130 std::uint32_t pad104; // 104
131 hkpDebugInfoOnPendingOperationQueues* pendingOperationQueues; // 108
132 std::int32_t pendingOperationQueueCount; // 110
136 std::uint16_t pad122; // 122
137 std::uint32_t minDesiredIslandSize; // 124
138 hkCriticalSection* modifyConstraintCriticalSection; // 128
139 std::int32_t isLocked; // 130
140 std::uint32_t pad134; // 134
141 hkCriticalSection* islandDirtyListCriticalSection; // 138
142 hkCriticalSection* propertyMasterLock; // 140
145 std::uint16_t pad14A; // 14A
149 bool wantDeactivation; // 155
151 std::uint8_t pad153; // 157
157 std::uint8_t pad169; // 169
158 std::uint16_t pad16A; // 16A
163 std::uint8_t pad179; // 179
164 std::uint16_t pad17A; // 17A
169 std::uint32_t lastEntityUID; // 18C
170 std::uint32_t lastIslandUID; // 190
171 std::uint32_t lastConstraintUID; // 194
187 hkpViolatedConstraintArray* violatedConstraintArray; // 288
188 hkpBroadPhaseBorder* broadPhaseBorder; // 290
189 hkdWorld* destructionWorld; // 298
190 hknpWorld* npWorld; // 2A0
191 std::uint64_t pad2A8; // 2A8
194 std::int32_t broadPhaseNumMarkers; // 410
195 std::int32_t sizeOfToiEventQueue; // 414
196 std::int32_t broadPhaseQuerySize; // 418
197 std::int32_t broadPhaseUpdateSize; // 41C
199 std::uint8_t pad421; // 421
200 std::uint16_t pad422; // 422
201 std::uint32_t pad424; // 424
202 std::uint64_t pad428; // 428
203 };
204 static_assert(sizeof(hkpWorld) == 0x430);
205}
#define RELOCATION_ID(SE, AE)
Definition: PCH.h:711
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:160
std::int32_t sizeOfToiEventQueue
Definition: hkpWorld.h:195
std::uint32_t pad09C
Definition: hkpWorld.h:112
bool enableToiWeldRejection
Definition: hkpWorld.h:148
bool wantDeactivation
Definition: hkpWorld.h:149
std::int32_t criticalOperationsLockCount
Definition: hkpWorld.h:125
hkArray< hkpContactListener * > contactListeners
Definition: hkpWorld.h:184
std::int32_t pendingOperationsCount
Definition: hkpWorld.h:123
std::uint16_t pad082
Definition: hkpWorld.h:105
std::uint32_t pad084
Definition: hkpWorld.h:106
std::int32_t maxSectorsPerMidphaseCollideTask
Definition: hkpWorld.h:154
bool allowIntegrationOfIslandsWithoutConstraintsInASeparateJob
Definition: hkpWorld.h:135
hkpPhantomBroadPhaseListener * phantomBroadPhaseListener
Definition: hkpWorld.h:114
std::uint16_t pad122
Definition: hkpWorld.h:136
stl::enumeration< hkpWorldCinfo::ContactPointGeneration, std::uint8_t > contactPointGeneration
Definition: hkpWorld.h:198
std::uint8_t pad099
Definition: hkpWorld.h:110
hkpCollisionDispatcher * collisionDispatcher
Definition: hkpWorld.h:120
hkVector4 broadPhaseExtents[2]
Definition: hkpWorld.h:193
float numToisTillAllowedPenetrationToiHigher
Definition: hkpWorld.h:167
std::uint8_t pad169
Definition: hkpWorld.h:157
std::uint8_t pad421
Definition: hkpWorld.h:199
std::uint32_t lastEntityUID
Definition: hkpWorld.h:169
hkArray< hkpWorldExtension * > worldExtensions
Definition: hkpWorld.h:186
hkpWorldMaintenanceMgr * maintenanceMgr
Definition: hkpWorld.h:101
std::int32_t pendingOperationQueueCount
Definition: hkpWorld.h:132
hkpBroadPhase * broadPhase
Definition: hkpWorld.h:107
float snapCollisionToConvexEdgeThreshold
Definition: hkpWorld.h:146
hkArray< hkpWorldPostIntegrateListener * > worldPostIntegrateListeners
Definition: hkpWorld.h:180
hkpPhantom * AddPhantom(hkpPhantom *a_phantom)
Definition: hkpWorld.h:71
hkCriticalSection * modifyConstraintCriticalSection
Definition: hkpWorld.h:138
float deactivationReferenceDistance
Definition: hkpWorld.h:152
hkArray< hkpConstraintListener * > constraintListeners
Definition: hkpWorld.h:176
float numToisTillAllowedPenetrationToi
Definition: hkpWorld.h:166
hkpTreeWorldManager * kdTreeManager
Definition: hkpWorld.h:108
std::int32_t maxNumToiCollisionPairsSinglethreaded
Definition: hkpWorld.h:161
hkArray< hkpSimulationIsland * > activeSimulationIslands
Definition: hkpWorld.h:98
hkArray< hkpWorldDeletionListener * > worldDeletionListeners
Definition: hkpWorld.h:177
std::uint8_t pad081
Definition: hkpWorld.h:104
bool criticalOperationsAllowed
Definition: hkpWorld.h:128
std::uint8_t pad153
Definition: hkpWorld.h:151
hkpEntityEntityBroadPhaseListener * entityEntityBroadPhaseListener
Definition: hkpWorld.h:115
std::uint8_t pad179
Definition: hkpWorld.h:163
std::uint32_t pad424
Definition: hkpWorld.h:201
bool assertOnRunningOutOfSolverMemory
Definition: hkpWorld.h:103
std::int32_t broadPhaseQuerySize
Definition: hkpWorld.h:196
hkArray< hkpPhantomListener * > phantomListeners
Definition: hkpWorld.h:175
std::uint32_t lastIslandUID
Definition: hkpWorld.h:170
hkpBroadPhaseBorder * broadPhaseBorder
Definition: hkpWorld.h:188
std::uint16_t pad09A
Definition: hkpWorld.h:111
bool useHybridBroadphase
Definition: hkpWorld.h:144
bool blockExecutingPendingOperations
Definition: hkpWorld.h:127
std::int32_t isLocked
Definition: hkpWorld.h:139
std::uint32_t lastConstraintUID
Definition: hkpWorld.h:171
std::uint16_t pad102
Definition: hkpWorld.h:129
hkCriticalSection * islandDirtyListCriticalSection
Definition: hkpWorld.h:141
float numToisTillAllowedPenetrationSimplifiedToi
Definition: hkpWorld.h:165
std::int32_t maxSectorsPerNarrowphaseCollideTask
Definition: hkpWorld.h:155
std::uint64_t pad018
Definition: hkpWorld.h:94
hkArray< hkpIslandPostCollideListener * > islandPostCollideListeners
Definition: hkpWorld.h:183
hkArray< hkpSimulationIsland * > dirtySimulationIslands
Definition: hkpWorld.h:100
hkVector4 gravity
Definition: hkpWorld.h:95
std::int32_t criticalOperationsLockCountForPhantoms
Definition: hkpWorld.h:126
hkpViolatedConstraintArray * violatedConstraintArray
Definition: hkpWorld.h:187
std::int32_t broadPhaseUpdateSize
Definition: hkpWorld.h:197
stl::enumeration< hkpWorldCinfo::SimulationType, std::uint8_t > simulationType
Definition: hkpWorld.h:162
bool wantSimulationIslands
Definition: hkpWorld.h:143
hkArray< hkpPhantom * > phantoms
Definition: hkpWorld.h:172
~hkpWorld() override
hkpCollisionFilter * collisionFilter
Definition: hkpWorld.h:119
hkArray< hkpContactImpulseLimitBreachedListener * > contactImpulseLimitBreachedListeners
Definition: hkpWorld.h:185
float toiCollisionResponseRotateNormal
Definition: hkpWorld.h:153
std::uint64_t pad2A8
Definition: hkpWorld.h:191
std::uint32_t pad104
Definition: hkpWorld.h:130
bool autoUpdateTree
Definition: hkpWorld.h:109
hkArray< hkpActionListener * > actionListeners
Definition: hkpWorld.h:173
std::uint32_t pad134
Definition: hkpWorld.h:140
hkArray< hkpIslandPostIntegrateListener * > islandPostIntegrateListeners
Definition: hkpWorld.h:182
hkpConvexListFilter * convexListFilter
Definition: hkpWorld.h:121
std::uint16_t pad16A
Definition: hkpWorld.h:158
hkArray< hkpSimulationIsland * > inactiveSimulationIslands
Definition: hkpWorld.h:99
float numToisTillAllowedPenetrationToiForced
Definition: hkpWorld.h:168
void CalcContentStatistics(hkStatisticsCollector *a_collector, const hkClass *a_class) const override
hkpBroadPhaseBorderListener * broadPhaseBorderListener
Definition: hkpWorld.h:116
static constexpr auto RTTI
Definition: hkpWorld.h:64
hkRefPtr< hkWorldMemoryAvailableWatchDog > memoryWatchDog
Definition: hkpWorld.h:102
std::uint16_t pad17A
Definition: hkpWorld.h:164
hkpDebugInfoOnPendingOperationQueues * pendingOperationQueues
Definition: hkpWorld.h:131
void RemovePhantom(hkpPhantom *a_phantom)
Definition: hkpWorld.h:78
std::uint16_t pad14A
Definition: hkpWorld.h:145
hkpSimulation * simulation
Definition: hkpWorld.h:93
std::int32_t pendingBodyOperationsCount
Definition: hkpWorld.h:124
hkArray< hkpWorldPostSimulationListener * > worldPostSimulationListeners
Definition: hkpWorld.h:179
bool shouldActivateOnRigidBodyTransformChange
Definition: hkpWorld.h:150
hkArray< hkpWorldPostCollideListener * > worldPostCollideListeners
Definition: hkpWorld.h:181
hknpWorld * npWorld
Definition: hkpWorld.h:190
hkpMtThreadStructure * multithreadedSimulationJobData
Definition: hkpWorld.h:117
std::uint32_t minDesiredIslandSize
Definition: hkpWorld.h:137
bool processToisMultithreaded
Definition: hkpWorld.h:156
hkdWorld * destructionWorld
Definition: hkpWorld.h:189
hkpSimulationIsland * fixedIsland
Definition: hkpWorld.h:96
float snapCollisionToConcaveEdgeThreshold
Definition: hkpWorld.h:147
hkpWorldDynamicsStepInfo dynamicsStepInfo
Definition: hkpWorld.h:192
hkpTypedBroadPhaseDispatcher * broadPhaseDispatcher
Definition: hkpWorld.h:113
hkpRigidBody * fixedRigidBody
Definition: hkpWorld.h:97
hkpProcessCollisionInput * collisionInput
Definition: hkpWorld.h:118
std::uint16_t pad422
Definition: hkpWorld.h:200
std::int32_t broadPhaseNumMarkers
Definition: hkpWorld.h:194
void CastRay(const hkpWorldRayCastInput &a_input, hkpWorldRayCastOutput &a_output) const
Definition: hkpWorld.h:85
hkArray< hkpEntityListener * > entityListeners
Definition: hkpWorld.h:174
hkCriticalSection * propertyMasterLock
Definition: hkpWorld.h:142
bool processActionsInSingleThread
Definition: hkpWorld.h:134
hkpWorldOperationQueue * pendingOperations
Definition: hkpWorld.h:122
hkArray< hkpIslandActivationListener * > islandActivationListeners
Definition: hkpWorld.h:178
std::int32_t maxEntriesPerToiMidphaseCollideTask
Definition: hkpWorld.h:159
std::uint64_t pad428
Definition: hkpWorld.h:202
hkMultiThreadCheck multiThreadCheck
Definition: hkpWorld.h:133
Definition: Relocation.h:875
Definition: PCH.h:217
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_hkpWorld(static_cast< std::uint64_t >(689895))
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