6#include <unordered_set>
7#include <unordered_map>
18#include <BulletCollision/CollisionDispatch/btCollisionWorld.h>
82struct btDbvtBroadphase;
83class btDefaultCollisionConfiguration;
84class btCollisionDispatcher;
85class btSequentialImpulseConstraintSolver;
86class btDiscreteDynamicsWorld;
88class btCollisionShape;
89class btBvhTriangleMeshShape;
90class btTriangleIndexVertexArray;
91struct btTriangleInfoMap;
214 glm::vec3
mMin = { -0.5f, -0.5f, -0.5f };
215 glm::vec3
mMax = { 0.5f, 0.5f, 0.5f };
223 return AABB(glm::vec3(FLT_MAX), glm::vec3(-FLT_MAX));
228 return AABB(center - extents, center + extents);
257 return point.x >=
mMin.x && point.x <=
mMax.x
258 && point.y >=
mMin.y && point.y <=
mMax.y
259 && point.z >=
mMin.z && point.z <=
mMax.z;
274 bool Intersects(glm::vec3 sphereCenter,
float sphereRadius)
const
276 glm::vec3 closest = glm::clamp(sphereCenter,
mMin,
mMax);
277 glm::vec3 delta = closest - sphereCenter;
278 return glm::dot(delta, delta) <= (sphereRadius * sphereRadius);
309 glm::vec3 newCenter = glm::vec3(mat * glm::vec4(center, 1.0f));
310 glm::vec3 newExtents;
312 for (int32_t i = 0; i < 3; ++i)
315 glm::abs(mat[0][i]) * extents.x +
316 glm::abs(mat[1][i]) * extents.y +
317 glm::abs(mat[2][i]) * extents.z;
320 return AABB(newCenter - newExtents, newCenter + newExtents);
370 glm::vec4
mColor = { 0.25f, 0.25f, 1.0f, 1.0f };
579 virtual btScalar
addSingleResult(btCollisionWorld::LocalRayResult & rayResult,
bool normalInWorldSpace)
override;
589 const btVector3& convexFromWorld,
590 const btVector3& convexToWorld);
608 glm::vec4
mColor = { 0.0f, 0.0f, 0.0f, 1.0f };
695 glm::vec4
mColor = { 0.0f, 0.0f, 0.0f, 0.0f };
#define DEFAULT_WINDOW_HEIGHT
Definition Constants.h:12
#define LARGE_BOUNDS
Definition Constants.h:55
#define INVALID_HOST_ID
Definition Constants.h:44
#define DEFAULT_WINDOW_WIDTH
Definition Constants.h:11
NetHostProfile NetClient
Definition EngineTypes.h:687
FogDensityFunc
Definition EngineTypes.h:598
uint32_t NetId
Definition EngineTypes.h:76
CullMode
Definition EngineTypes.h:150
Platform
Definition EngineTypes.h:32
NetHostProfile NetServer
Definition EngineTypes.h:688
CollisionGroup
Definition EngineTypes.h:615
@ ColGroup0
Definition EngineTypes.h:616
@ ColGroup1
Definition EngineTypes.h:617
@ ColGroup2
Definition EngineTypes.h:618
@ ColGroup4
Definition EngineTypes.h:620
@ ColGroup5
Definition EngineTypes.h:621
@ ColGroupAll
Definition EngineTypes.h:625
@ ColGroup3
Definition EngineTypes.h:619
@ ColGroup7
Definition EngineTypes.h:623
@ ColGroup6
Definition EngineTypes.h:622
PropertyOwnerType
Definition EngineTypes.h:159
uint8_t NetHostId
Definition EngineTypes.h:646
ShadingModel
Definition EngineTypes.h:108
VertexColorMode
Definition EngineTypes.h:127
uint64_t RuntimeId
Definition EngineTypes.h:78
PostProcessPassId
Definition EngineTypes.h:185
AttenuationFunc
Definition EngineTypes.h:629
SkyType
Definition EngineTypes.h:194
ConsoleMode
Definition EngineTypes.h:496
uint32_t TypeId
Definition EngineTypes.h:75
LightType
Definition EngineTypes.h:167
uint32_t NodeId
Definition EngineTypes.h:77
PlatformBit
Definition EngineTypes.h:54
@ PlatformBit_Linux
Definition EngineTypes.h:56
@ PlatformBit_Windows
Definition EngineTypes.h:55
@ PlatformBit_N3DS
Definition EngineTypes.h:60
@ PlatformBit_Mac
Definition EngineTypes.h:62
@ PlatformBit_All
Definition EngineTypes.h:64
@ PlatformBit_Psp
Definition EngineTypes.h:61
@ PlatformBit_Wii
Definition EngineTypes.h:59
@ PlatformBit_GameCube
Definition EngineTypes.h:58
@ PlatformBit_Android
Definition EngineTypes.h:57
NetStatus
Definition EngineTypes.h:637
uint32_t GetPlatformBit(Platform p)
Definition EngineTypes.h:67
TevMode
Definition EngineTypes.h:136
LightingDomain
Definition EngineTypes.h:176
CollisionShape
Definition EngineTypes.h:94
BlendMode
Definition EngineTypes.h:117
Definition Primitive3d.h:46
Definition StaticMesh.h:18
Definition SmartPointer.h:312
Definition EngineTypes.h:213
AABB Transform(const glm::mat4 &mat) const
Definition EngineTypes.h:301
bool Contains(const AABB &other) const
Definition EngineTypes.h:262
AABB(glm::vec3 min, glm::vec3 max)
Definition EngineTypes.h:218
void Encapsulate(glm::vec3 point)
Definition EngineTypes.h:281
glm::vec3 GetCenter() const
Definition EngineTypes.h:249
glm::vec3 GetExtents() const
Definition EngineTypes.h:250
glm::vec3 mMax
Definition EngineTypes.h:215
Bounds ToBounds() const
Definition EngineTypes.h:323
bool IsLarge() const
Definition EngineTypes.h:244
glm::vec3 GetSize() const
Definition EngineTypes.h:251
static AABB MakeFromCenterExtents(glm::vec3 center, glm::vec3 extents)
Definition EngineTypes.h:226
bool Intersects(glm::vec3 sphereCenter, float sphereRadius) const
Definition EngineTypes.h:274
glm::vec3 mMin
Definition EngineTypes.h:214
bool IsValid() const
Definition EngineTypes.h:237
float GetVolume() const
Definition EngineTypes.h:253
static AABB MakeLarge()
Definition EngineTypes.h:232
bool Contains(glm::vec3 point) const
Definition EngineTypes.h:255
bool Intersects(const AABB &other) const
Definition EngineTypes.h:267
void Expand(glm::vec3 amount)
Definition EngineTypes.h:297
void Encapsulate(const AABB &other)
Definition EngineTypes.h:287
float GetRadius() const
Definition EngineTypes.h:252
void Expand(float amount)
Definition EngineTypes.h:296
static AABB MakeInvalid()
Definition EngineTypes.h:221
Definition EngineTypes.h:204
glm::vec3 mCenter
Definition EngineTypes.h:205
float mRadius
Definition EngineTypes.h:206
Definition EngineTypes.h:365
glm::vec4 mColor
Definition EngineTypes.h:370
glm::mat4 mTransform
Definition EngineTypes.h:369
float mLife
Definition EngineTypes.h:371
StaticMesh * mMesh
Definition EngineTypes.h:366
Material * mMaterial
Definition EngineTypes.h:367
Node3D * mNode
Definition EngineTypes.h:368
Definition EngineTypes.h:333
TypeId mNodeType
Definition EngineTypes.h:341
float mDistance2
Definition EngineTypes.h:340
glm::vec3 mPosition
Definition EngineTypes.h:337
Bounds mBounds
Definition EngineTypes.h:338
static const uint32_t kDynamicOccludee
Definition EngineTypes.h:347
int32_t mSortPriority
Definition EngineTypes.h:339
Node * mNode
Definition EngineTypes.h:334
BlendMode mBlendMode
Definition EngineTypes.h:336
uint32_t mOcclusionSlot
Definition EngineTypes.h:343
bool mDepthless
Definition EngineTypes.h:342
Material * mMaterial
Definition EngineTypes.h:335
Definition EmbeddedFile.h:6
Definition EngineTypes.h:426
bool mLogging
Definition EngineTypes.h:449
uint32_t mEmbeddedConfigSize
Definition EngineTypes.h:467
bool mFullscreen
Definition EngineTypes.h:444
std::string mIconPath
Definition EngineTypes.h:473
bool mHeadless
Definition EngineTypes.h:476
bool mLogToFile
Definition EngineTypes.h:450
std::string mBuildTargetId
Definition EngineTypes.h:479
std::string mProjectPath
Definition EngineTypes.h:457
Platform mBuildPlatform
Definition EngineTypes.h:477
bool mPackageForSteam
Definition EngineTypes.h:447
int32_t mServicePort
Definition EngineTypes.h:486
bool mLinearColorSpace
Definition EngineTypes.h:446
int32_t mWindowWidth
Definition EngineTypes.h:441
std::string mWorkingDirectory
Definition EngineTypes.h:459
bool mScriptHotReload
Definition EngineTypes.h:451
std::string mDefaultEditorScene
Definition EngineTypes.h:435
std::string mEditorFont
Definition EngineTypes.h:460
struct EmbeddedFile * mEmbeddedScripts
Definition EngineTypes.h:464
float mLoadingMinDisplaySeconds
Definition EngineTypes.h:437
int32_t mColorScale
Definition EngineTypes.h:471
uint32_t mGameCode
Definition EngineTypes.h:439
uint32_t mVersion
Definition EngineTypes.h:440
float mEditorInterfaceScale
Definition EngineTypes.h:469
bool mBuildEmbedded
Definition EngineTypes.h:478
float mLoadingTimeoutSeconds
Definition EngineTypes.h:438
EngineConfig()
Definition EngineTypes.h:427
uint32_t mEmbeddedAssetCount
Definition EngineTypes.h:463
std::string mDefaultLoadingScene
Definition EngineTypes.h:436
struct EmbeddedFile * mEmbeddedAssets
Definition EngineTypes.h:462
int32_t mLqMaxTextureSize
Definition EngineTypes.h:454
uint32_t mEmbeddedScriptCount
Definition EngineTypes.h:465
std::string mProjectName
Definition EngineTypes.h:432
bool mUseAssetRegistry
Definition EngineTypes.h:448
const char * mEmbeddedConfig
Definition EngineTypes.h:466
bool mCSharpScripting
Definition EngineTypes.h:452
std::string mCurrentFont
Definition EngineTypes.h:458
bool mHeadlessService
Definition EngineTypes.h:485
bool mLqEnableMipMaps
Definition EngineTypes.h:455
std::string mDefaultScene
Definition EngineTypes.h:434
bool mEditorInterfaceScaleExplicit
Definition EngineTypes.h:470
bool mValidateGraphics
Definition EngineTypes.h:445
uint64_t mAddonRecoveryOldPid
Definition EngineTypes.h:492
int32_t mWindowHeight
Definition EngineTypes.h:442
Definition EngineTypes.h:503
uint32_t mSecondWindowHeight
Definition EngineTypes.h:507
bool mWindowMinimized
Definition EngineTypes.h:537
bool mFrameStep
Definition EngineTypes.h:526
float mAspectRatioScale
Definition EngineTypes.h:524
SystemState mSystem
Definition EngineTypes.h:540
lua_State * mLua
Definition EngineTypes.h:532
float mRealDeltaTime
Definition EngineTypes.h:520
uint32_t mGameCode
Definition EngineTypes.h:508
bool mPaused
Definition EngineTypes.h:525
GraphicsState mGraphics
Definition EngineTypes.h:541
std::string mIOAssetPath
Definition EngineTypes.h:512
float mGameElapsedTime
Definition EngineTypes.h:521
std::string mSolutionPath
Definition EngineTypes.h:516
bool mInitialized
Definition EngineTypes.h:527
float mRealElapsedTime
Definition EngineTypes.h:522
uint32_t mVersion
Definition EngineTypes.h:509
float mGameDeltaTime
Definition EngineTypes.h:519
FILE * mLogFile
Definition EngineTypes.h:529
InputState mInput
Definition EngineTypes.h:542
std::string mAssetDirectory
Definition EngineTypes.h:515
uint32_t mFrameNumber
Definition EngineTypes.h:510
std::string mProjectDirectory
Definition EngineTypes.h:513
bool mConsoleMode
Definition EngineTypes.h:535
bool mStandalone
Definition EngineTypes.h:538
char ** mArgV
Definition EngineTypes.h:518
uint32_t mSecondWindowWidth
Definition EngineTypes.h:506
uint32_t mWindowWidth
Definition EngineTypes.h:504
std::string mProjectName
Definition EngineTypes.h:514
uint32_t mWindowHeight
Definition EngineTypes.h:505
float mTimeDilation
Definition EngineTypes.h:523
bool mQuit
Definition EngineTypes.h:536
std::string mProjectPath
Definition EngineTypes.h:511
bool mSuspended
Definition EngineTypes.h:528
int32_t mArgC
Definition EngineTypes.h:517
Definition EngineTypes.h:691
glm::vec4 mColor
Definition EngineTypes.h:695
FadingLight(Light3D *comp)
Definition EngineTypes.h:698
LightData mData
Definition EngineTypes.h:694
float mAlpha
Definition EngineTypes.h:696
Light3D * mComponent
Definition EngineTypes.h:693
Definition EngineTypes.h:606
float mFar
Definition EngineTypes.h:611
FogDensityFunc mDensityFunc
Definition EngineTypes.h:609
bool mEnabled
Definition EngineTypes.h:607
float mNear
Definition EngineTypes.h:610
glm::vec4 mColor
Definition EngineTypes.h:608
Definition GraphicsTypes.h:32
Definition EngineTypes.h:587
uint32_t mNumIgnoreObjects
Definition EngineTypes.h:593
btCollisionObject ** mIgnoreObjects
Definition EngineTypes.h:594
virtual bool needsCollision(btBroadphaseProxy *proxy0) const
Definition EngineTypes.cpp:46
Definition EngineTypes.h:577
btCollisionObject ** mIgnoreObjects
Definition EngineTypes.h:582
uint32_t mNumIgnoreObjects
Definition EngineTypes.h:581
virtual btScalar addSingleResult(btCollisionWorld::LocalRayResult &rayResult, bool normalInWorldSpace) override
Definition EngineTypes.cpp:14
bool mIgnorePureOverlap
Definition EngineTypes.h:583
Definition EngineTypes.h:351
LightType mType
Definition EngineTypes.h:352
glm::vec3 mDirection
Definition EngineTypes.h:357
float mInnerConeAngle
Definition EngineTypes.h:360
float mIntensity
Definition EngineTypes.h:359
float mRadius
Definition EngineTypes.h:358
glm::vec3 mPosition
Definition EngineTypes.h:355
float mOuterConeAngle
Definition EngineTypes.h:361
LightingDomain mDomain
Definition EngineTypes.h:353
uint8_t mLightingChannels
Definition EngineTypes.h:354
glm::vec4 mColor
Definition EngineTypes.h:356
Definition EngineTypes.h:668
uint16_t mIncomingReliableSeq
Definition EngineTypes.h:680
std::unordered_set< NetId > mRelevantNetIds
Definition EngineTypes.h:674
WeakPtr< Node > mPawn
Definition EngineTypes.h:683
std::vector< char > mReliableSendBuffer
Definition EngineTypes.h:676
static const uint32_t sSendBufferSize
Definition EngineTypes.h:669
bool mReady
Definition EngineTypes.h:684
float mTimeSinceLastMsg
Definition EngineTypes.h:673
std::vector< ReliablePacket > mOutgoingPackets
Definition EngineTypes.h:677
float mPing
Definition EngineTypes.h:672
NetHost mHost
Definition EngineTypes.h:671
std::vector< char > mSendBuffer
Definition EngineTypes.h:675
std::vector< ReliablePacket > mIncomingPackets
Definition EngineTypes.h:678
uint16_t mOutgoingUnreliableSeq
Definition EngineTypes.h:681
uint16_t mIncomingUnreliableSeq
Definition EngineTypes.h:682
uint16_t mOutgoingReliableSeq
Definition EngineTypes.h:679
Definition EngineTypes.h:649
uint16_t mPort
Definition EngineTypes.h:651
NetHostId mId
Definition EngineTypes.h:652
uint64_t mOnlineId
Definition EngineTypes.h:653
uint32_t mIpAddress
Definition EngineTypes.h:650
Definition EngineTypes.h:375
PrimitivePair & operator=(const PrimitivePair &other)
Definition EngineTypes.h:410
Primitive3D * mPrimitiveB
Definition EngineTypes.h:377
PrimitivePair(const PrimitivePair &other)
Definition EngineTypes.h:404
PrimitivePair(Primitive3D *compA, Primitive3D *compB)
Definition EngineTypes.h:386
PrimitivePair & operator=(PrimitivePair &&other)
Definition EngineTypes.h:417
PrimitivePair()
Definition EngineTypes.h:379
bool operator==(const PrimitivePair &other) const
Definition EngineTypes.h:398
Primitive3D * mPrimitiveA
Definition EngineTypes.h:376
size_t operator()(const PrimitivePair &pairToHash) const
Definition EngineTypes.h:392
Definition EngineTypes.h:556
std::vector< glm::vec3 > mHitNormals
Definition EngineTypes.h:561
std::vector< float > mHitFractions
Definition EngineTypes.h:563
glm::vec3 mStart
Definition EngineTypes.h:557
glm::vec3 mEnd
Definition EngineTypes.h:558
std::vector< glm::vec3 > mHitPositions
Definition EngineTypes.h:562
std::vector< Primitive3D * > mHitNodes
Definition EngineTypes.h:560
uint32_t mNumHits
Definition EngineTypes.h:559
Definition EngineTypes.h:546
Primitive3D * mHitNode
Definition EngineTypes.h:549
glm::vec3 mStart
Definition EngineTypes.h:547
float mHitFraction
Definition EngineTypes.h:552
glm::vec3 mEnd
Definition EngineTypes.h:548
glm::vec3 mHitNormal
Definition EngineTypes.h:550
glm::vec3 mHitPosition
Definition EngineTypes.h:551
Definition EngineTypes.h:657
uint32_t mNumSends
Definition EngineTypes.h:661
float mTimeSinceSend
Definition EngineTypes.h:660
std::vector< char > mData
Definition EngineTypes.h:663
uint16_t mSeq
Definition EngineTypes.h:664
Definition EngineTypes.h:567
glm::vec3 mEnd
Definition EngineTypes.h:569
glm::vec3 mHitNormal
Definition EngineTypes.h:571
Primitive3D * mHitNode
Definition EngineTypes.h:570
glm::vec3 mStart
Definition EngineTypes.h:568
glm::vec3 mHitPosition
Definition EngineTypes.h:572
float mHitFraction
Definition EngineTypes.h:573
Definition SystemTypes.h:125