6#include <Bullet/btBulletDynamicsCommon.h>
15#define OCT_ARRAY_SIZE(array) (int(sizeof(array) / sizeof(array[0])))
17#define OCT_UNUSED(var) (void)var
19#define FORCE_LINK_DEF(x) int gForceLink_##x = 0;
20#define FORCE_LINK_CALL(x) { extern int gForceLink_##x; gForceLink_##x = 1; }
34void CreateSymLink(
const std::string& original,
const std::string& link);
38void DebugDrawCollisionShape(btCollisionShape* collisionShape,
Node3D* node,
const glm::mat4& parentTransform, std::vector<DebugDraw>* inoutDraws =
nullptr);
44void CopyPropertyValues(std::vector<Property>& dstProps,
const std::vector<Property>& srcProps);
52glm::mat4
MakeTransform(glm::vec3 translation, glm::vec3 rotation, glm::vec3 scale);
67 glm::vec4 color = { 0.25f, 0.25f, 1.0f, 1.0f },
75 glm::vec4 color = { 0.25f, 0.25f, 1.0f, 1.0f },
91 return glm::vec3(vector3.x(), vector3.y(), vector3.z());
96 return glm::quat(quat.w(), quat.x(), quat.y(), quat.z());
101 return btVector3(vector3.x, vector3.y, vector3.z);
106 return btQuaternion(quat.x, quat.y, quat.z, quat.w);
113 uint8_t(glm::clamp(color.r * 255.0f, 0.0f, 255.0f)),
114 uint8_t(glm::clamp(color.g * 255.0f, 0.0f, 255.0f)),
115 uint8_t(glm::clamp(color.b * 255.0f, 0.0f, 255.0f)),
116 uint8_t(glm::clamp(color.a * 255.0f, 0.0f, 255.0f))
130 float r = float(color & 0x000000ff) / 255.0f;
131 float g = float((color & 0x0000ff00) >> 8) / 255.0f;
132 float b = float((color & 0x00ff0000) >> 16) / 255.0f;
133 float a = float((color & 0xff000000) >> 24) / 255.0f;
135 return glm::vec4(r, g, b, a);
140 uint8_t* charArray =
reinterpret_cast<uint8_t*
>(&color);
141 uint8_t c0 = charArray[0];
142 uint8_t c1 = charArray[1];
143 uint8_t c2 = charArray[2];
144 uint8_t c3 = charArray[3];
157 if (vertices.size() > 0)
159 glm::vec3 boxMin = { FLT_MAX, FLT_MAX, FLT_MAX };
160 glm::vec3 boxMax = { -FLT_MAX, -FLT_MAX, -FLT_MAX };
162 for (uint32_t i = 0; i < vertices.size(); ++i)
164 glm::vec3 pos = vertices[i].mPosition;
166 boxMin = glm::min(boxMin, pos);
167 boxMax = glm::max(boxMax, pos);
170 retBounds.
mCenter = (boxMin + boxMax) / 2.0f;
172 float maxDist = 0.0f;
174 for (uint32_t i = 0; i < vertices.size(); ++i)
176 glm::vec3 pos = vertices[i].mPosition;
178 float dist = glm::distance(pos, retBounds.
mCenter);
179 maxDist = glm::max(maxDist, dist);
191 uint32_t vectSize = (uint32_t)vect.size();
195 for (uint32_t i = 0; i < vectSize; ++i)
197 uint32_t p = Maths::RandRange<uint32_t>(0u, vectSize - 1);
205inline bool EndsWith(
const std::string& str,
const std::string& suffix)
207 if (suffix.size() > str.size())
return false;
208 return std::equal(suffix.rbegin(), suffix.rend(), str.rbegin());
Platform
Definition EngineTypes.h:31
void GatherNonDefaultProperties(Node *node, std::vector< Property > &props, NodePtr refNode=nullptr)
Definition Utilities.cpp:563
void RemoveDir(const char *dirPath)
Definition Utilities.cpp:112
const char * GetPlatformString(Platform platform)
Definition Utilities.cpp:473
void AddDebugDraw(const DebugDraw &draw)
Definition Utilities.cpp:856
void SetWorkingDirectory(const std::string &dirPath)
Definition Utilities.cpp:87
void DestroyCollisionShape(btCollisionShape *shape)
Definition Utilities.cpp:234
void CopyPropertyValues(std::vector< Property > &dstProps, const std::vector< Property > &srcProps)
Definition Utilities.cpp:427
uint8_t ConvertKeyCodeToChar(uint8_t keyCode, bool shiftDown)
Definition Utilities.cpp:491
std::string StringToUpper(const std::string &str)
Definition Utilities.cpp:71
void CreateSymLink(const std::string &original, const std::string &link)
Definition Utilities.cpp:132
void RemoveSpacesFromString(std::string &str)
Definition Utilities.cpp:845
btTransform MakeBulletTransform(glm::vec3 translation, glm::vec3 rotationDegrees)
Definition Utilities.cpp:549
uint32_t GetStringSerializationSize(const std::string &str)
Definition Utilities.cpp:468
Datum LuaObjectToDatum(lua_State *L, int idx)
Definition Utilities.cpp:1071
bool IsPlatformConsole(Platform platform)
Definition Utilities.cpp:53
glm::mat4 MakeTransform(glm::vec3 translation, glm::vec3 rotation, glm::vec3 scale)
Definition Utilities.cpp:536
std::string GetDirShortName(const std::string &dirName)
Definition Utilities.cpp:117
uint32_t OctHashString(const char *key)
Definition Utilities.cpp:377
std::string GetCurrentDirectoryPath()
Definition Utilities.cpp:82
void ApplySubSceneOverride(Node *sceneRoot, const SubSceneOverride &over)
Definition Utilities.cpp:756
uint32_t ColorFloat4ToUint32(glm::vec4 color)
Definition Utilities.h:109
void CreateTableLua(lua_State *L, const Datum &datum)
Definition Utilities.cpp:904
btVector3 GlmToBullet(const glm::vec3 &vector3)
Definition Utilities.h:99
bool DoesDirExist(const char *dirPath)
Definition Utilities.cpp:92
void GatherSubSceneOverrides(Node *node, Node *sceneRoot, std::vector< SubSceneOverride > &overs)
Definition Utilities.cpp:668
Bounds ComputeBounds(const std::vector< T > &vertices)
Definition Utilities.h:153
void ShuffleVector(std::vector< T > &vect)
Definition Utilities.h:189
void GatherAllNodeNames(std::vector< std::string > &outNames)
Definition Utilities.cpp:400
std::string StringToLower(const std::string &str)
Definition Utilities.cpp:60
btCollisionShape * CloneCollisionShape(const btCollisionShape *srcShape)
Definition Utilities.cpp:143
glm::vec4 ColorUint32ToFloat4(uint32_t color)
Definition Utilities.h:128
void CreateTableCpp(lua_State *L, int tableIdx, Datum &datum)
Definition Utilities.cpp:941
void ReverseColorUint32(uint32_t &color)
Definition Utilities.h:138
Platform GetPlatform()
Definition Utilities.cpp:34
void LuaPushDatum(lua_State *L, const Datum &arg)
Definition Utilities.cpp:993
void DebugDrawCollisionShape(btCollisionShape *collisionShape, Node3D *node, const glm::mat4 &parentTransform, std::vector< DebugDraw > *inoutDraws=nullptr)
Definition Utilities.cpp:255
Property * FindProperty(std::vector< Property > &props, const std::string &name)
Definition Utilities.cpp:411
glm::vec3 BulletToGlm(const btVector3 &vector3)
Definition Utilities.h:89
void CreateDir(const char *dirPath)
Definition Utilities.cpp:107
glm::vec3 EnforceEulerRange(const glm::vec3 &eulerAngles)
Definition Utilities.cpp:1140
bool EndsWith(const std::string &str, const std::string &suffix)
Definition Utilities.h:205
Definition StaticMesh.h:18
Definition EngineTypes.h:193
glm::vec3 mCenter
Definition EngineTypes.h:194
float mRadius
Definition EngineTypes.h:195
Definition EngineTypes.h:224