6#include <unordered_set>
7#include <unordered_map>
18#include <BulletCollision/CollisionDispatch/btCollisionWorld.h>
79struct btDbvtBroadphase;
80class btDefaultCollisionConfiguration;
81class btCollisionDispatcher;
82class btSequentialImpulseConstraintSolver;
83class btDiscreteDynamicsWorld;
85class btCollisionShape;
86class btBvhTriangleMeshShape;
87class btTriangleIndexVertexArray;
88struct btTriangleInfoMap;
211 glm::vec3
mMin = { -0.5f, -0.5f, -0.5f };
212 glm::vec3
mMax = { 0.5f, 0.5f, 0.5f };
220 return AABB(glm::vec3(FLT_MAX), glm::vec3(-FLT_MAX));
225 return AABB(center - extents, center + extents);
254 return point.x >=
mMin.x && point.x <=
mMax.x
255 && point.y >=
mMin.y && point.y <=
mMax.y
256 && point.z >=
mMin.z && point.z <=
mMax.z;
271 bool Intersects(glm::vec3 sphereCenter,
float sphereRadius)
const
273 glm::vec3 closest = glm::clamp(sphereCenter,
mMin,
mMax);
274 glm::vec3 delta = closest - sphereCenter;
275 return glm::dot(delta, delta) <= (sphereRadius * sphereRadius);
306 glm::vec3 newCenter = glm::vec3(mat * glm::vec4(center, 1.0f));
307 glm::vec3 newExtents;
309 for (int32_t i = 0; i < 3; ++i)
312 glm::abs(mat[0][i]) * extents.x +
313 glm::abs(mat[1][i]) * extents.y +
314 glm::abs(mat[2][i]) * extents.z;
317 return AABB(newCenter - newExtents, newCenter + newExtents);
360 glm::vec4
mColor = { 0.25f, 0.25f, 1.0f, 1.0f };
559 virtual btScalar
addSingleResult(btCollisionWorld::LocalRayResult & rayResult,
bool normalInWorldSpace)
override;
569 const btVector3& convexFromWorld,
570 const btVector3& convexToWorld);
588 glm::vec4
mColor = { 0.0f, 0.0f, 0.0f, 1.0f };
675 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:667
FogDensityFunc
Definition EngineTypes.h:578
uint32_t NetId
Definition EngineTypes.h:73
CullMode
Definition EngineTypes.h:147
Platform
Definition EngineTypes.h:32
NetHostProfile NetServer
Definition EngineTypes.h:668
CollisionGroup
Definition EngineTypes.h:595
@ ColGroup0
Definition EngineTypes.h:596
@ ColGroup1
Definition EngineTypes.h:597
@ ColGroup2
Definition EngineTypes.h:598
@ ColGroup4
Definition EngineTypes.h:600
@ ColGroup5
Definition EngineTypes.h:601
@ ColGroupAll
Definition EngineTypes.h:605
@ ColGroup3
Definition EngineTypes.h:599
@ ColGroup7
Definition EngineTypes.h:603
@ ColGroup6
Definition EngineTypes.h:602
PropertyOwnerType
Definition EngineTypes.h:156
uint8_t NetHostId
Definition EngineTypes.h:626
ShadingModel
Definition EngineTypes.h:105
VertexColorMode
Definition EngineTypes.h:124
uint64_t RuntimeId
Definition EngineTypes.h:75
PostProcessPassId
Definition EngineTypes.h:182
AttenuationFunc
Definition EngineTypes.h:609
SkyType
Definition EngineTypes.h:191
ConsoleMode
Definition EngineTypes.h:476
uint32_t TypeId
Definition EngineTypes.h:72
LightType
Definition EngineTypes.h:164
uint32_t NodeId
Definition EngineTypes.h:74
PlatformBit
Definition EngineTypes.h:52
@ PlatformBit_Linux
Definition EngineTypes.h:54
@ PlatformBit_Windows
Definition EngineTypes.h:53
@ PlatformBit_N3DS
Definition EngineTypes.h:58
@ PlatformBit_All
Definition EngineTypes.h:61
@ PlatformBit_Psp
Definition EngineTypes.h:59
@ PlatformBit_Wii
Definition EngineTypes.h:57
@ PlatformBit_GameCube
Definition EngineTypes.h:56
@ PlatformBit_Android
Definition EngineTypes.h:55
NetStatus
Definition EngineTypes.h:617
uint32_t GetPlatformBit(Platform p)
Definition EngineTypes.h:64
TevMode
Definition EngineTypes.h:133
LightingDomain
Definition EngineTypes.h:173
CollisionShape
Definition EngineTypes.h:91
BlendMode
Definition EngineTypes.h:114
Definition Primitive3d.h:46
Definition StaticMesh.h:18
Definition SmartPointer.h:312
Definition EngineTypes.h:210
AABB Transform(const glm::mat4 &mat) const
Definition EngineTypes.h:298
bool Contains(const AABB &other) const
Definition EngineTypes.h:259
AABB(glm::vec3 min, glm::vec3 max)
Definition EngineTypes.h:215
void Encapsulate(glm::vec3 point)
Definition EngineTypes.h:278
glm::vec3 GetCenter() const
Definition EngineTypes.h:246
glm::vec3 GetExtents() const
Definition EngineTypes.h:247
glm::vec3 mMax
Definition EngineTypes.h:212
Bounds ToBounds() const
Definition EngineTypes.h:320
bool IsLarge() const
Definition EngineTypes.h:241
glm::vec3 GetSize() const
Definition EngineTypes.h:248
static AABB MakeFromCenterExtents(glm::vec3 center, glm::vec3 extents)
Definition EngineTypes.h:223
bool Intersects(glm::vec3 sphereCenter, float sphereRadius) const
Definition EngineTypes.h:271
glm::vec3 mMin
Definition EngineTypes.h:211
bool IsValid() const
Definition EngineTypes.h:234
float GetVolume() const
Definition EngineTypes.h:250
static AABB MakeLarge()
Definition EngineTypes.h:229
bool Contains(glm::vec3 point) const
Definition EngineTypes.h:252
bool Intersects(const AABB &other) const
Definition EngineTypes.h:264
void Expand(glm::vec3 amount)
Definition EngineTypes.h:294
void Encapsulate(const AABB &other)
Definition EngineTypes.h:284
float GetRadius() const
Definition EngineTypes.h:249
void Expand(float amount)
Definition EngineTypes.h:293
static AABB MakeInvalid()
Definition EngineTypes.h:218
Definition EngineTypes.h:201
glm::vec3 mCenter
Definition EngineTypes.h:202
float mRadius
Definition EngineTypes.h:203
Definition EngineTypes.h:355
glm::vec4 mColor
Definition EngineTypes.h:360
glm::mat4 mTransform
Definition EngineTypes.h:359
float mLife
Definition EngineTypes.h:361
StaticMesh * mMesh
Definition EngineTypes.h:356
Material * mMaterial
Definition EngineTypes.h:357
Node3D * mNode
Definition EngineTypes.h:358
Definition EngineTypes.h:330
TypeId mNodeType
Definition EngineTypes.h:338
float mDistance2
Definition EngineTypes.h:337
glm::vec3 mPosition
Definition EngineTypes.h:334
Bounds mBounds
Definition EngineTypes.h:335
int32_t mSortPriority
Definition EngineTypes.h:336
Node * mNode
Definition EngineTypes.h:331
BlendMode mBlendMode
Definition EngineTypes.h:333
bool mDepthless
Definition EngineTypes.h:339
Material * mMaterial
Definition EngineTypes.h:332
Definition EmbeddedFile.h:6
Definition EngineTypes.h:416
bool mLogging
Definition EngineTypes.h:439
uint32_t mEmbeddedConfigSize
Definition EngineTypes.h:456
bool mFullscreen
Definition EngineTypes.h:434
std::string mIconPath
Definition EngineTypes.h:461
bool mHeadless
Definition EngineTypes.h:464
bool mLogToFile
Definition EngineTypes.h:440
std::string mProjectPath
Definition EngineTypes.h:446
Platform mBuildPlatform
Definition EngineTypes.h:465
bool mPackageForSteam
Definition EngineTypes.h:437
bool mLinearColorSpace
Definition EngineTypes.h:436
int32_t mWindowWidth
Definition EngineTypes.h:431
std::string mWorkingDirectory
Definition EngineTypes.h:448
bool mScriptHotReload
Definition EngineTypes.h:441
std::string mDefaultEditorScene
Definition EngineTypes.h:425
std::string mEditorFont
Definition EngineTypes.h:449
struct EmbeddedFile * mEmbeddedScripts
Definition EngineTypes.h:453
float mLoadingMinDisplaySeconds
Definition EngineTypes.h:427
int32_t mColorScale
Definition EngineTypes.h:459
uint32_t mGameCode
Definition EngineTypes.h:429
uint32_t mVersion
Definition EngineTypes.h:430
float mEditorInterfaceScale
Definition EngineTypes.h:458
bool mBuildEmbedded
Definition EngineTypes.h:466
float mLoadingTimeoutSeconds
Definition EngineTypes.h:428
EngineConfig()
Definition EngineTypes.h:417
uint32_t mEmbeddedAssetCount
Definition EngineTypes.h:452
std::string mDefaultLoadingScene
Definition EngineTypes.h:426
struct EmbeddedFile * mEmbeddedAssets
Definition EngineTypes.h:451
int32_t mLqMaxTextureSize
Definition EngineTypes.h:443
uint32_t mEmbeddedScriptCount
Definition EngineTypes.h:454
std::string mProjectName
Definition EngineTypes.h:422
bool mUseAssetRegistry
Definition EngineTypes.h:438
const char * mEmbeddedConfig
Definition EngineTypes.h:455
std::string mCurrentFont
Definition EngineTypes.h:447
bool mLqEnableMipMaps
Definition EngineTypes.h:444
std::string mDefaultScene
Definition EngineTypes.h:424
bool mValidateGraphics
Definition EngineTypes.h:435
uint64_t mAddonRecoveryOldPid
Definition EngineTypes.h:472
int32_t mWindowHeight
Definition EngineTypes.h:432
Definition EngineTypes.h:483
uint32_t mSecondWindowHeight
Definition EngineTypes.h:487
bool mWindowMinimized
Definition EngineTypes.h:517
bool mFrameStep
Definition EngineTypes.h:506
float mAspectRatioScale
Definition EngineTypes.h:504
SystemState mSystem
Definition EngineTypes.h:520
lua_State * mLua
Definition EngineTypes.h:512
float mRealDeltaTime
Definition EngineTypes.h:500
uint32_t mGameCode
Definition EngineTypes.h:488
bool mPaused
Definition EngineTypes.h:505
GraphicsState mGraphics
Definition EngineTypes.h:521
std::string mIOAssetPath
Definition EngineTypes.h:492
float mGameElapsedTime
Definition EngineTypes.h:501
std::string mSolutionPath
Definition EngineTypes.h:496
bool mInitialized
Definition EngineTypes.h:507
float mRealElapsedTime
Definition EngineTypes.h:502
uint32_t mVersion
Definition EngineTypes.h:489
float mGameDeltaTime
Definition EngineTypes.h:499
FILE * mLogFile
Definition EngineTypes.h:509
InputState mInput
Definition EngineTypes.h:522
std::string mAssetDirectory
Definition EngineTypes.h:495
uint32_t mFrameNumber
Definition EngineTypes.h:490
std::string mProjectDirectory
Definition EngineTypes.h:493
bool mConsoleMode
Definition EngineTypes.h:515
bool mStandalone
Definition EngineTypes.h:518
char ** mArgV
Definition EngineTypes.h:498
uint32_t mSecondWindowWidth
Definition EngineTypes.h:486
uint32_t mWindowWidth
Definition EngineTypes.h:484
std::string mProjectName
Definition EngineTypes.h:494
uint32_t mWindowHeight
Definition EngineTypes.h:485
float mTimeDilation
Definition EngineTypes.h:503
bool mQuit
Definition EngineTypes.h:516
std::string mProjectPath
Definition EngineTypes.h:491
bool mSuspended
Definition EngineTypes.h:508
int32_t mArgC
Definition EngineTypes.h:497
Definition EngineTypes.h:671
glm::vec4 mColor
Definition EngineTypes.h:675
FadingLight(Light3D *comp)
Definition EngineTypes.h:678
LightData mData
Definition EngineTypes.h:674
float mAlpha
Definition EngineTypes.h:676
Light3D * mComponent
Definition EngineTypes.h:673
Definition EngineTypes.h:586
float mFar
Definition EngineTypes.h:591
FogDensityFunc mDensityFunc
Definition EngineTypes.h:589
bool mEnabled
Definition EngineTypes.h:587
float mNear
Definition EngineTypes.h:590
glm::vec4 mColor
Definition EngineTypes.h:588
Definition GraphicsTypes.h:32
Definition EngineTypes.h:567
uint32_t mNumIgnoreObjects
Definition EngineTypes.h:573
btCollisionObject ** mIgnoreObjects
Definition EngineTypes.h:574
virtual bool needsCollision(btBroadphaseProxy *proxy0) const
Definition EngineTypes.cpp:46
Definition EngineTypes.h:557
btCollisionObject ** mIgnoreObjects
Definition EngineTypes.h:562
uint32_t mNumIgnoreObjects
Definition EngineTypes.h:561
virtual btScalar addSingleResult(btCollisionWorld::LocalRayResult &rayResult, bool normalInWorldSpace) override
Definition EngineTypes.cpp:14
bool mIgnorePureOverlap
Definition EngineTypes.h:563
Definition EngineTypes.h:343
LightType mType
Definition EngineTypes.h:344
glm::vec3 mDirection
Definition EngineTypes.h:349
float mIntensity
Definition EngineTypes.h:351
float mRadius
Definition EngineTypes.h:350
glm::vec3 mPosition
Definition EngineTypes.h:347
LightingDomain mDomain
Definition EngineTypes.h:345
uint8_t mLightingChannels
Definition EngineTypes.h:346
glm::vec4 mColor
Definition EngineTypes.h:348
Definition EngineTypes.h:648
uint16_t mIncomingReliableSeq
Definition EngineTypes.h:660
std::unordered_set< NetId > mRelevantNetIds
Definition EngineTypes.h:654
WeakPtr< Node > mPawn
Definition EngineTypes.h:663
std::vector< char > mReliableSendBuffer
Definition EngineTypes.h:656
static const uint32_t sSendBufferSize
Definition EngineTypes.h:649
bool mReady
Definition EngineTypes.h:664
float mTimeSinceLastMsg
Definition EngineTypes.h:653
std::vector< ReliablePacket > mOutgoingPackets
Definition EngineTypes.h:657
float mPing
Definition EngineTypes.h:652
NetHost mHost
Definition EngineTypes.h:651
std::vector< char > mSendBuffer
Definition EngineTypes.h:655
std::vector< ReliablePacket > mIncomingPackets
Definition EngineTypes.h:658
uint16_t mOutgoingUnreliableSeq
Definition EngineTypes.h:661
uint16_t mIncomingUnreliableSeq
Definition EngineTypes.h:662
uint16_t mOutgoingReliableSeq
Definition EngineTypes.h:659
Definition EngineTypes.h:629
uint16_t mPort
Definition EngineTypes.h:631
NetHostId mId
Definition EngineTypes.h:632
uint64_t mOnlineId
Definition EngineTypes.h:633
uint32_t mIpAddress
Definition EngineTypes.h:630
Definition EngineTypes.h:365
PrimitivePair & operator=(const PrimitivePair &other)
Definition EngineTypes.h:400
Primitive3D * mPrimitiveB
Definition EngineTypes.h:367
PrimitivePair(const PrimitivePair &other)
Definition EngineTypes.h:394
PrimitivePair(Primitive3D *compA, Primitive3D *compB)
Definition EngineTypes.h:376
PrimitivePair & operator=(PrimitivePair &&other)
Definition EngineTypes.h:407
PrimitivePair()
Definition EngineTypes.h:369
bool operator==(const PrimitivePair &other) const
Definition EngineTypes.h:388
Primitive3D * mPrimitiveA
Definition EngineTypes.h:366
size_t operator()(const PrimitivePair &pairToHash) const
Definition EngineTypes.h:382
Definition EngineTypes.h:536
std::vector< glm::vec3 > mHitNormals
Definition EngineTypes.h:541
std::vector< float > mHitFractions
Definition EngineTypes.h:543
glm::vec3 mStart
Definition EngineTypes.h:537
glm::vec3 mEnd
Definition EngineTypes.h:538
std::vector< glm::vec3 > mHitPositions
Definition EngineTypes.h:542
std::vector< Primitive3D * > mHitNodes
Definition EngineTypes.h:540
uint32_t mNumHits
Definition EngineTypes.h:539
Definition EngineTypes.h:526
Primitive3D * mHitNode
Definition EngineTypes.h:529
glm::vec3 mStart
Definition EngineTypes.h:527
float mHitFraction
Definition EngineTypes.h:532
glm::vec3 mEnd
Definition EngineTypes.h:528
glm::vec3 mHitNormal
Definition EngineTypes.h:530
glm::vec3 mHitPosition
Definition EngineTypes.h:531
Definition EngineTypes.h:637
uint32_t mNumSends
Definition EngineTypes.h:641
float mTimeSinceSend
Definition EngineTypes.h:640
std::vector< char > mData
Definition EngineTypes.h:643
uint16_t mSeq
Definition EngineTypes.h:644
Definition EngineTypes.h:547
glm::vec3 mEnd
Definition EngineTypes.h:549
glm::vec3 mHitNormal
Definition EngineTypes.h:551
Primitive3D * mHitNode
Definition EngineTypes.h:550
glm::vec3 mStart
Definition EngineTypes.h:548
glm::vec3 mHitPosition
Definition EngineTypes.h:552
float mHitFraction
Definition EngineTypes.h:553
Definition SystemTypes.h:118