Polyphase Game Engine
Loading...
Searching...
No Matches
EngineTypes.h
Go to the documentation of this file.
1#pragma once
2
3#include <string>
4#include <string.h>
5#include <unordered_set>
6#include <unordered_map>
7#include <algorithm>
8
9#include "Constants.h"
10#include "Maths.h"
11#include "SmartPointer.h"
12
13#include "System/SystemTypes.h"
15#include "Input/InputTypes.h"
16
17#include <BulletCollision/CollisionDispatch/btCollisionWorld.h>
18
19#if LUA_ENABLED
20#include <Lua/lua.hpp>
21#endif
22
23class Level;
24class Primitive3D;
25class Light3D;
26class Node3D;
27class Node;
28
29// Platform enum moved here for use in EngineConfig
30enum class Platform : int
31{
32 Windows,
33 Linux,
34 Android,
36 Wii,
37 N3DS,
38 // NOTE: the literal token `PSP` cannot be used here as an enum value
39 // because PSPSDK predefines `PSP=1` as a command-line macro for every TU
40 // it compiles — leaking into a Polyphase build that links against any
41 // PSP addon. The expansion `Platform::1` is a syntax error. `Psp` is
42 // unaffected and `GetPlatformString` still returns "PSP" for display.
43 Psp,
44
45 Count
46};
47
48// Bitmask form of Platform for per-asset platform-mask flags.
49// Values must mirror Platform's index order: PlatformBit::X == (1u << int(Platform::X)).
62
63inline uint32_t GetPlatformBit(Platform p)
64{
65 return (p >= Platform::Windows && p < Platform::Count) ? (1u << int(p)) : 0u;
66}
67
68class StaticMesh;
69class Material;
70
71typedef uint32_t TypeId;
72typedef uint32_t NetId;
73typedef uint32_t NodeId;
74typedef uint64_t RuntimeId;
75
76// Bullet Types
77class btDynamicsWorld;
78struct btDbvtBroadphase;
79class btDefaultCollisionConfiguration;
80class btCollisionDispatcher;
81class btSequentialImpulseConstraintSolver;
82class btDiscreteDynamicsWorld;
83class btRigidBody;
84class btCollisionShape;
85class btBvhTriangleMeshShape;
86class btTriangleIndexVertexArray;
87struct btTriangleInfoMap;
88
89enum class CollisionShape : uint32_t
90{
91 Empty,
92 Box,
93 Sphere,
94 Capsule,
99
100 Num
101};
102
103enum class ShadingModel : uint32_t
104{
105 Unlit,
106 Lit,
107 Toon,
108
109 Count
110};
111
112enum class BlendMode : uint32_t
113{
114 Opaque,
115 Masked,
117 Additive,
118
119 Count
120};
121
122enum class VertexColorMode : uint32_t
123{
124 None,
125 Modulate,
127
128 Count
129};
130
131enum class TevMode : uint32_t
132{
133 Replace,
134 Modulate,
135 Decal,
136 Add,
137 SignedAdd,
138 Subtract,
140 Pass,
141
142 Count
143};
144
145enum class CullMode : uint8_t
146{
147 None,
148 Back,
149 Front,
150
151 Count
152};
153
155{
156 Node,
157 Asset,
158 Global,
159 Count
160};
161
162enum class LightType : uint8_t
163{
164 Point,
165 Spot,
167
168 Count
169};
170
171enum class LightingDomain : uint8_t
172{
173 Static,
174 Dynamic,
175 All,
176
177 Count
178};
179
180enum class PostProcessPassId : uint8_t
181{
182 Blur,
183 Fxaa,
184 Tonemap,
185
186 Count
187};
188
189enum class SkyType : uint8_t
190{
191 None,
195
196 Count
197};
198
199struct Bounds
200{
201 glm::vec3 mCenter = { };
202 float mRadius = 1.0f;
203};
204
217
229
231{
232 StaticMesh* mMesh = nullptr;
233 Material* mMaterial = nullptr;
234 Node3D* mNode = nullptr;
235 glm::mat4 mTransform = glm::mat4(1);
236 glm::vec4 mColor = { 0.25f, 0.25f, 1.0f, 1.0f };
237 float mLife = 0.0f;
238};
239
241{
244
246 mPrimitiveA(nullptr),
247 mPrimitiveB(nullptr)
248 {
249
250 }
251
253 {
254 mPrimitiveA = compA;
255 mPrimitiveB = compB;
256 }
257
258 size_t operator()(const PrimitivePair& pairToHash) const
259 {
260 size_t hash = (size_t)pairToHash.mPrimitiveA + (size_t)pairToHash.mPrimitiveB;
261 return hash;
262 }
263
264 bool operator==(const PrimitivePair& other) const
265 {
266 return (mPrimitiveA == other.mPrimitiveA) &&
267 (mPrimitiveB == other.mPrimitiveB);
268 }
269
271 {
272 mPrimitiveA = other.mPrimitiveA;
273 mPrimitiveB = other.mPrimitiveB;
274 }
275
277 {
278 mPrimitiveA = other.mPrimitiveA;
279 mPrimitiveB = other.mPrimitiveB;
280 return *this;
281 }
282
284 {
285 mPrimitiveA = other.mPrimitiveA;
286 mPrimitiveB = other.mPrimitiveB;
287 return *this;
288 }
289};
290
292{
294 {
295
296 }
297
298 std::string mProjectName;
299
300 std::string mDefaultScene = "";
301 std::string mDefaultEditorScene = "";
302 std::string mDefaultLoadingScene = "";
305 uint32_t mGameCode = 0;
306 uint32_t mVersion = 0;
309
310 bool mFullscreen = false;
311 bool mValidateGraphics = false;
312 bool mLinearColorSpace = false;
313 bool mPackageForSteam = false;
314 bool mUseAssetRegistry = false;
315 bool mLogging = true;
316 bool mLogToFile = false;
317 bool mScriptHotReload = false;
318
319 int32_t mLqMaxTextureSize = 0;
320 bool mLqEnableMipMaps = true;
321
322 std::string mProjectPath;
323 std::string mCurrentFont;
324 std::string mWorkingDirectory;
325 std::string mEditorFont = "Default";
326
327 struct EmbeddedFile* mEmbeddedAssets = nullptr;
331 const char* mEmbeddedConfig = nullptr;
333
335 int32_t mColorScale = 2;
336
337 std::string mIconPath;
338
339 // Headless mode configuration
340 bool mHeadless = false;
341 Platform mBuildPlatform = Platform::Count; // Count = no build requested
342 bool mBuildEmbedded = false;
343
344 // Set when the editor was launched with --addon-recovery=<pid>. Value is
345 // the PID of the prior editor process whose sentinel JSON we should look
346 // for. EditorMain reads this on startup and triggers the addon-recovery
347 // wipe before the first OpenProject. 0 = not in recovery mode.
349};
350
351enum class ConsoleMode
352{
353 Off,
354 Overlay,
355 Full
356};
357
359{
364 uint32_t mGameCode = 0;
365 uint32_t mVersion = 0;
366 uint32_t mFrameNumber = 0;
367 std::string mProjectPath;
368 std::string mIOAssetPath;
369 std::string mProjectDirectory;
370 std::string mProjectName;
371 std::string mAssetDirectory;
372 std::string mSolutionPath;
373 int32_t mArgC = 0;
374 char** mArgV = nullptr;
375 float mGameDeltaTime = 0.0f;
376 float mRealDeltaTime = 0.0f;
377 float mGameElapsedTime = 0.0f;
378 float mRealElapsedTime = 0.0f;
379 float mTimeDilation = 1.0f;
380 float mAspectRatioScale = 1.0f;
381 bool mPaused = false;
382 bool mFrameStep = false;
383 bool mInitialized = false;
384 bool mSuspended = false;
385 FILE* mLogFile = nullptr;
386
387#if LUA_ENABLED
388 lua_State* mLua = nullptr;
389#endif
390
391 bool mConsoleMode = false;
392 bool mQuit = false;
393 bool mWindowMinimized = false;
394 bool mStandalone = false;
395
399};
400
402{
403 glm::vec3 mStart = {};
404 glm::vec3 mEnd = {};
406 glm::vec3 mHitNormal = {};
407 glm::vec3 mHitPosition = {};
408 float mHitFraction = 0.0f;
409};
410
412{
413 glm::vec3 mStart = {};
414 glm::vec3 mEnd = {};
415 uint32_t mNumHits = 0;
416 std::vector<Primitive3D*> mHitNodes;
417 std::vector<glm::vec3> mHitNormals;
418 std::vector<glm::vec3> mHitPositions;
419 std::vector<float> mHitFractions;
420};
421
423{
424 glm::vec3 mStart = {};
425 glm::vec3 mEnd = {};
427 glm::vec3 mHitNormal = {};
428 glm::vec3 mHitPosition = {};
429 float mHitFraction = 0.0f;
430};
431
432struct IgnoreRayResultCallback : btCollisionWorld::ClosestRayResultCallback
433{
434 IgnoreRayResultCallback(const btVector3& rayFromWorld, const btVector3& rayToWorld);
435 virtual btScalar addSingleResult(btCollisionWorld::LocalRayResult & rayResult, bool normalInWorldSpace) override;
436
437 uint32_t mNumIgnoreObjects = 0;
438 btCollisionObject** mIgnoreObjects = nullptr;
440};
441
442struct IgnoreConvexResultCallback : btCollisionWorld::ClosestConvexResultCallback
443{
445 const btVector3& convexFromWorld,
446 const btVector3& convexToWorld);
447 virtual bool needsCollision(btBroadphaseProxy* proxy0) const;
448
449 uint32_t mNumIgnoreObjects = 0;
450 btCollisionObject** mIgnoreObjects = nullptr;
451};
452
453enum class FogDensityFunc : uint8_t
454{
455 Linear,
457
458 Count
459};
460
462{
463 bool mEnabled = false;
464 glm::vec4 mColor = { 0.0f, 0.0f, 0.0f, 1.0f };
466 float mNear = 0.0f;
467 float mFar = 100.0f;
468};
469
483
485{
486 Constant,
487 Linear,
488
489 Count
490};
491
492enum class NetStatus
493{
494 Local,
496 Client,
497 Server,
498
499 Count
500};
501
502typedef uint8_t NetHostId;
503
505{
506 uint32_t mIpAddress = 0;
507 uint16_t mPort = 0;
509 uint64_t mOnlineId = 0;
510};
511
513{
514 ReliablePacket(uint16_t seqNum, const char* data, uint32_t size);
515
516 float mTimeSinceSend = 0.0f;
517 uint32_t mNumSends = 0;
518
519 std::vector<char> mData;
520 uint16_t mSeq = 0;
521};
522
524{
525 static const uint32_t sSendBufferSize = 512;
526
528 float mPing = 0.0f;
529 float mTimeSinceLastMsg = 0.0f;
530 std::unordered_set<NetId> mRelevantNetIds;
531 std::vector<char> mSendBuffer;
532 std::vector<char> mReliableSendBuffer;
533 std::vector<ReliablePacket> mOutgoingPackets;
534 std::vector<ReliablePacket> mIncomingPackets;
540 bool mReady = true;
541};
542
545
547{
548 // mNode should only be used for comparisons!! If deleted, we want to fade it out, not crash.
549 Light3D* mComponent = nullptr;
551 glm::vec4 mColor = { 0.0f, 0.0f, 0.0f, 0.0f };
552 float mAlpha = 0.0f;
553
555};
#define DEFAULT_WINDOW_HEIGHT
Definition Constants.h:12
#define INVALID_HOST_ID
Definition Constants.h:44
#define DEFAULT_WINDOW_WIDTH
Definition Constants.h:11
NetHostProfile NetClient
Definition EngineTypes.h:543
FogDensityFunc
Definition EngineTypes.h:454
uint32_t NetId
Definition EngineTypes.h:72
CullMode
Definition EngineTypes.h:146
Platform
Definition EngineTypes.h:31
NetHostProfile NetServer
Definition EngineTypes.h:544
CollisionGroup
Definition EngineTypes.h:471
@ ColGroup0
Definition EngineTypes.h:472
@ ColGroup1
Definition EngineTypes.h:473
@ ColGroup2
Definition EngineTypes.h:474
@ ColGroup4
Definition EngineTypes.h:476
@ ColGroup5
Definition EngineTypes.h:477
@ ColGroupAll
Definition EngineTypes.h:481
@ ColGroup3
Definition EngineTypes.h:475
@ ColGroup7
Definition EngineTypes.h:479
@ ColGroup6
Definition EngineTypes.h:478
PropertyOwnerType
Definition EngineTypes.h:155
uint8_t NetHostId
Definition EngineTypes.h:502
ShadingModel
Definition EngineTypes.h:104
VertexColorMode
Definition EngineTypes.h:123
uint64_t RuntimeId
Definition EngineTypes.h:74
PostProcessPassId
Definition EngineTypes.h:181
AttenuationFunc
Definition EngineTypes.h:485
SkyType
Definition EngineTypes.h:190
@ RayTracedSky
ConsoleMode
Definition EngineTypes.h:352
uint32_t TypeId
Definition EngineTypes.h:71
LightType
Definition EngineTypes.h:163
uint32_t NodeId
Definition EngineTypes.h:73
PlatformBit
Definition EngineTypes.h:51
@ PlatformBit_Linux
Definition EngineTypes.h:53
@ PlatformBit_Windows
Definition EngineTypes.h:52
@ PlatformBit_N3DS
Definition EngineTypes.h:57
@ PlatformBit_All
Definition EngineTypes.h:60
@ PlatformBit_Psp
Definition EngineTypes.h:58
@ PlatformBit_Wii
Definition EngineTypes.h:56
@ PlatformBit_GameCube
Definition EngineTypes.h:55
@ PlatformBit_Android
Definition EngineTypes.h:54
NetStatus
Definition EngineTypes.h:493
uint32_t GetPlatformBit(Platform p)
Definition EngineTypes.h:63
TevMode
Definition EngineTypes.h:132
LightingDomain
Definition EngineTypes.h:172
CollisionShape
Definition EngineTypes.h:90
BlendMode
Definition EngineTypes.h:113
Definition Light3d.h:6
Definition Material.h:48
Definition Node3d.h:14
Definition Node.h:67
Definition Primitive3d.h:46
Definition StaticMesh.h:18
Definition SmartPointer.h:312
Definition EngineTypes.h:200
glm::vec3 mCenter
Definition EngineTypes.h:201
float mRadius
Definition EngineTypes.h:202
Definition EngineTypes.h:231
glm::vec4 mColor
Definition EngineTypes.h:236
glm::mat4 mTransform
Definition EngineTypes.h:235
float mLife
Definition EngineTypes.h:237
StaticMesh * mMesh
Definition EngineTypes.h:232
Material * mMaterial
Definition EngineTypes.h:233
Node3D * mNode
Definition EngineTypes.h:234
Definition EngineTypes.h:206
TypeId mNodeType
Definition EngineTypes.h:214
float mDistance2
Definition EngineTypes.h:213
glm::vec3 mPosition
Definition EngineTypes.h:210
Bounds mBounds
Definition EngineTypes.h:211
int32_t mSortPriority
Definition EngineTypes.h:212
Node * mNode
Definition EngineTypes.h:207
BlendMode mBlendMode
Definition EngineTypes.h:209
bool mDepthless
Definition EngineTypes.h:215
Material * mMaterial
Definition EngineTypes.h:208
Definition EmbeddedFile.h:6
Definition EngineTypes.h:292
bool mLogging
Definition EngineTypes.h:315
uint32_t mEmbeddedConfigSize
Definition EngineTypes.h:332
bool mFullscreen
Definition EngineTypes.h:310
std::string mIconPath
Definition EngineTypes.h:337
bool mHeadless
Definition EngineTypes.h:340
bool mLogToFile
Definition EngineTypes.h:316
std::string mProjectPath
Definition EngineTypes.h:322
Platform mBuildPlatform
Definition EngineTypes.h:341
bool mPackageForSteam
Definition EngineTypes.h:313
bool mLinearColorSpace
Definition EngineTypes.h:312
int32_t mWindowWidth
Definition EngineTypes.h:307
std::string mWorkingDirectory
Definition EngineTypes.h:324
bool mScriptHotReload
Definition EngineTypes.h:317
std::string mDefaultEditorScene
Definition EngineTypes.h:301
std::string mEditorFont
Definition EngineTypes.h:325
struct EmbeddedFile * mEmbeddedScripts
Definition EngineTypes.h:329
float mLoadingMinDisplaySeconds
Definition EngineTypes.h:303
int32_t mColorScale
Definition EngineTypes.h:335
uint32_t mGameCode
Definition EngineTypes.h:305
uint32_t mVersion
Definition EngineTypes.h:306
float mEditorInterfaceScale
Definition EngineTypes.h:334
bool mBuildEmbedded
Definition EngineTypes.h:342
float mLoadingTimeoutSeconds
Definition EngineTypes.h:304
EngineConfig()
Definition EngineTypes.h:293
uint32_t mEmbeddedAssetCount
Definition EngineTypes.h:328
std::string mDefaultLoadingScene
Definition EngineTypes.h:302
struct EmbeddedFile * mEmbeddedAssets
Definition EngineTypes.h:327
int32_t mLqMaxTextureSize
Definition EngineTypes.h:319
uint32_t mEmbeddedScriptCount
Definition EngineTypes.h:330
std::string mProjectName
Definition EngineTypes.h:298
bool mUseAssetRegistry
Definition EngineTypes.h:314
const char * mEmbeddedConfig
Definition EngineTypes.h:331
std::string mCurrentFont
Definition EngineTypes.h:323
bool mLqEnableMipMaps
Definition EngineTypes.h:320
std::string mDefaultScene
Definition EngineTypes.h:300
bool mValidateGraphics
Definition EngineTypes.h:311
uint64_t mAddonRecoveryOldPid
Definition EngineTypes.h:348
int32_t mWindowHeight
Definition EngineTypes.h:308
Definition EngineTypes.h:359
uint32_t mSecondWindowHeight
Definition EngineTypes.h:363
bool mWindowMinimized
Definition EngineTypes.h:393
bool mFrameStep
Definition EngineTypes.h:382
float mAspectRatioScale
Definition EngineTypes.h:380
SystemState mSystem
Definition EngineTypes.h:396
lua_State * mLua
Definition EngineTypes.h:388
float mRealDeltaTime
Definition EngineTypes.h:376
uint32_t mGameCode
Definition EngineTypes.h:364
bool mPaused
Definition EngineTypes.h:381
GraphicsState mGraphics
Definition EngineTypes.h:397
std::string mIOAssetPath
Definition EngineTypes.h:368
float mGameElapsedTime
Definition EngineTypes.h:377
std::string mSolutionPath
Definition EngineTypes.h:372
bool mInitialized
Definition EngineTypes.h:383
float mRealElapsedTime
Definition EngineTypes.h:378
uint32_t mVersion
Definition EngineTypes.h:365
float mGameDeltaTime
Definition EngineTypes.h:375
FILE * mLogFile
Definition EngineTypes.h:385
InputState mInput
Definition EngineTypes.h:398
std::string mAssetDirectory
Definition EngineTypes.h:371
uint32_t mFrameNumber
Definition EngineTypes.h:366
std::string mProjectDirectory
Definition EngineTypes.h:369
bool mConsoleMode
Definition EngineTypes.h:391
bool mStandalone
Definition EngineTypes.h:394
char ** mArgV
Definition EngineTypes.h:374
uint32_t mSecondWindowWidth
Definition EngineTypes.h:362
uint32_t mWindowWidth
Definition EngineTypes.h:360
std::string mProjectName
Definition EngineTypes.h:370
uint32_t mWindowHeight
Definition EngineTypes.h:361
float mTimeDilation
Definition EngineTypes.h:379
bool mQuit
Definition EngineTypes.h:392
std::string mProjectPath
Definition EngineTypes.h:367
bool mSuspended
Definition EngineTypes.h:384
int32_t mArgC
Definition EngineTypes.h:373
Definition EngineTypes.h:547
glm::vec4 mColor
Definition EngineTypes.h:551
FadingLight(Light3D *comp)
Definition EngineTypes.h:554
LightData mData
Definition EngineTypes.h:550
float mAlpha
Definition EngineTypes.h:552
Light3D * mComponent
Definition EngineTypes.h:549
Definition EngineTypes.h:462
float mFar
Definition EngineTypes.h:467
FogDensityFunc mDensityFunc
Definition EngineTypes.h:465
bool mEnabled
Definition EngineTypes.h:463
float mNear
Definition EngineTypes.h:466
glm::vec4 mColor
Definition EngineTypes.h:464
Definition GraphicsTypes.h:32
Definition EngineTypes.h:443
uint32_t mNumIgnoreObjects
Definition EngineTypes.h:449
btCollisionObject ** mIgnoreObjects
Definition EngineTypes.h:450
virtual bool needsCollision(btBroadphaseProxy *proxy0) const
Definition EngineTypes.cpp:46
Definition EngineTypes.h:433
btCollisionObject ** mIgnoreObjects
Definition EngineTypes.h:438
uint32_t mNumIgnoreObjects
Definition EngineTypes.h:437
virtual btScalar addSingleResult(btCollisionWorld::LocalRayResult &rayResult, bool normalInWorldSpace) override
Definition EngineTypes.cpp:14
bool mIgnorePureOverlap
Definition EngineTypes.h:439
Definition InputTypes.h:107
Definition EngineTypes.h:219
LightType mType
Definition EngineTypes.h:220
glm::vec3 mDirection
Definition EngineTypes.h:225
float mIntensity
Definition EngineTypes.h:227
float mRadius
Definition EngineTypes.h:226
glm::vec3 mPosition
Definition EngineTypes.h:223
LightingDomain mDomain
Definition EngineTypes.h:221
uint8_t mLightingChannels
Definition EngineTypes.h:222
glm::vec4 mColor
Definition EngineTypes.h:224
Definition EngineTypes.h:524
uint16_t mIncomingReliableSeq
Definition EngineTypes.h:536
std::unordered_set< NetId > mRelevantNetIds
Definition EngineTypes.h:530
WeakPtr< Node > mPawn
Definition EngineTypes.h:539
std::vector< char > mReliableSendBuffer
Definition EngineTypes.h:532
static const uint32_t sSendBufferSize
Definition EngineTypes.h:525
bool mReady
Definition EngineTypes.h:540
float mTimeSinceLastMsg
Definition EngineTypes.h:529
std::vector< ReliablePacket > mOutgoingPackets
Definition EngineTypes.h:533
float mPing
Definition EngineTypes.h:528
NetHost mHost
Definition EngineTypes.h:527
std::vector< char > mSendBuffer
Definition EngineTypes.h:531
std::vector< ReliablePacket > mIncomingPackets
Definition EngineTypes.h:534
uint16_t mOutgoingUnreliableSeq
Definition EngineTypes.h:537
uint16_t mIncomingUnreliableSeq
Definition EngineTypes.h:538
uint16_t mOutgoingReliableSeq
Definition EngineTypes.h:535
Definition EngineTypes.h:505
uint16_t mPort
Definition EngineTypes.h:507
NetHostId mId
Definition EngineTypes.h:508
uint64_t mOnlineId
Definition EngineTypes.h:509
uint32_t mIpAddress
Definition EngineTypes.h:506
Definition EngineTypes.h:241
PrimitivePair & operator=(const PrimitivePair &other)
Definition EngineTypes.h:276
Primitive3D * mPrimitiveB
Definition EngineTypes.h:243
PrimitivePair(const PrimitivePair &other)
Definition EngineTypes.h:270
PrimitivePair(Primitive3D *compA, Primitive3D *compB)
Definition EngineTypes.h:252
PrimitivePair & operator=(PrimitivePair &&other)
Definition EngineTypes.h:283
PrimitivePair()
Definition EngineTypes.h:245
bool operator==(const PrimitivePair &other) const
Definition EngineTypes.h:264
Primitive3D * mPrimitiveA
Definition EngineTypes.h:242
size_t operator()(const PrimitivePair &pairToHash) const
Definition EngineTypes.h:258
Definition EngineTypes.h:412
std::vector< glm::vec3 > mHitNormals
Definition EngineTypes.h:417
std::vector< float > mHitFractions
Definition EngineTypes.h:419
glm::vec3 mStart
Definition EngineTypes.h:413
glm::vec3 mEnd
Definition EngineTypes.h:414
std::vector< glm::vec3 > mHitPositions
Definition EngineTypes.h:418
std::vector< Primitive3D * > mHitNodes
Definition EngineTypes.h:416
uint32_t mNumHits
Definition EngineTypes.h:415
Definition EngineTypes.h:402
Primitive3D * mHitNode
Definition EngineTypes.h:405
glm::vec3 mStart
Definition EngineTypes.h:403
float mHitFraction
Definition EngineTypes.h:408
glm::vec3 mEnd
Definition EngineTypes.h:404
glm::vec3 mHitNormal
Definition EngineTypes.h:406
glm::vec3 mHitPosition
Definition EngineTypes.h:407
Definition EngineTypes.h:513
uint32_t mNumSends
Definition EngineTypes.h:517
float mTimeSinceSend
Definition EngineTypes.h:516
std::vector< char > mData
Definition EngineTypes.h:519
uint16_t mSeq
Definition EngineTypes.h:520
Definition EngineTypes.h:423
glm::vec3 mEnd
Definition EngineTypes.h:425
glm::vec3 mHitNormal
Definition EngineTypes.h:427
Primitive3D * mHitNode
Definition EngineTypes.h:426
glm::vec3 mStart
Definition EngineTypes.h:424
glm::vec3 mHitPosition
Definition EngineTypes.h:428
float mHitFraction
Definition EngineTypes.h:429
Definition SystemTypes.h:118