Tramway SDK
math.h
Go to the documentation of this file.
1// Tramway Drifting and Dungeon Exploration Simulator SDK Runtime
2
3#ifndef TRAM_SDK_FRAMEWORK_MATH_H
4#define TRAM_SDK_FRAMEWORK_MATH_H
5
6#include <glm/glm.hpp>
7#include <glm/gtx/quaternion.hpp>
8
9namespace tram {
10
21
22const vec3 DIRECTION_FORWARD (0.0f, 0.0f, -1.0f);
23const vec3 DIRECTION_SIDE (1.0f, 0.0f, 0.0f);
24const vec3 DIRECTION_UP (0.0f, 1.0f, 0.0f);
25
26const vec3 IDENTITY_POSITION (0.0f, 0.0f, 0.0f);
27const quat IDENTITY_ROTATION (1.0f, 0.0f, 0.0f, 0.0f);
28const vec3 IDENTITY_SCALE (1.0f, 1.0f, 1.0f);
29
30void QuatLookAt(quat& quaternion, const vec3& from, const vec3& to);
31void ProjectLine(vec3& point, const vec3& from, const vec3& to);
32
33vec3 RayTriangleIntersection(vec3 ray_pos, vec3 ray_dir, vec3 point1, vec3 point2, vec3 point3);
34
37
38void RotateAABB(vec3& min, vec3& max, quat rotation);
39void RotateAABB(vec3& min, vec3& max, mat4 rotation);
40
41mat4 PositionRotationToMatrix(const vec3& position, const quat& rotation);
42mat4 PositionRotationScaleToMatrix(const vec3& position, const quat& rotation, const vec3& scale);
43
44}
45
46#endif // TRAM_SDK_FRAMEWORK_MATH_H
Serialization, i.e.
const vec3 DIRECTION_SIDE(1.0f, 0.0f, 0.0f)
glm::mat2 mat2
Definition: math.h:13
glm::ivec4 ivec4
Definition: math.h:18
glm::vec4 vec4
Definition: math.h:15
glm::vec2 vec2
Definition: math.h:16
glm::ivec3 ivec3
Definition: math.h:17
vec3 MergeAABBMin(vec3 a, vec3 b)
Merges the min component of an AABB.
Definition: math.cpp:79
const vec3 IDENTITY_POSITION(0.0f, 0.0f, 0.0f)
glm::uvec3 uvec3
Definition: math.h:19
glm::vec3 vec3
Definition: math.h:11
const quat IDENTITY_ROTATION(1.0f, 0.0f, 0.0f, 0.0f)
const vec3 IDENTITY_SCALE(1.0f, 1.0f, 1.0f)
glm::quat quat
Definition: math.h:12
vec3 RayTriangleIntersection(vec3 ray_pos, vec3 ray_dir, vec3 point1, vec3 point2, vec3 point3)
Finds the intersection between a ray and a triangle.
Definition: math.cpp:40
void QuatLookAt(quat &quaternion, const vec3 &from, const vec3 &to)
Rotates a quaternion to face a point.
Definition: math.cpp:18
mat4 PositionRotationScaleToMatrix(const vec3 &position, const quat &rotation, const vec3 &scale)
Generates a transform matrix.
Definition: math.cpp:161
glm::mat4 mat4
Definition: math.h:14
mat4 PositionRotationToMatrix(const vec3 &position, const quat &rotation)
Generates a transform matrix.
Definition: math.cpp:153
const vec3 DIRECTION_UP(0.0f, 1.0f, 0.0f)
glm::uvec4 uvec4
Definition: math.h:20
const vec3 DIRECTION_FORWARD(0.0f, 0.0f, -1.0f)
vec3 MergeAABBMax(vec3 a, vec3 b)
Merges the max component of an AABB.
Definition: math.cpp:88
void RotateAABB(vec3 &min, vec3 &max, quat rotation)
Rotates an AABB box by the given rotation.
Definition: math.cpp:100
void ProjectLine(vec3 &point, const vec3 &from, const vec3 &to)
Projects a point on a line.
Definition: math.cpp:26