Kohi Game Engine
math_types.h File Reference

Contains various math types required for the engine. More...

#include "defines.h"

Go to the source code of this file.

Data Structures

union  vec2_u
 A 2-element vector. More...
 
union  vec3_u
 A 3-element vector. More...
 
union  vec4_u
 A 4-element vector. More...
 
union  uvec4_u
 A 4-element vector of unsigned ints. More...
 
union  mat3_u
 A 3x3 matrix. More...
 
union  mat4_u
 a 4x4 matrix, typically used to represent object transformations. More...
 
struct  extents_2d
 Represents the extents of a 2d object. More...
 
struct  extents_3d
 Represents the extents of a 3d object. More...
 
struct  vertex_3d
 Represents a single vertex in 3D space. More...
 
struct  vertex_2d
 Represents a single vertex in 2D space. More...
 
struct  colour_vertex_3d
 Represents a single vertex in 3D space with position and colour data only. More...
 
struct  plane_3d
 
struct  frustum
 
union  vec2i_t
 A 2-element integer-based vector. More...
 
union  vec3i_t
 A 3-element integer-based vector. More...
 
union  vec4i_t
 A 4-element integer-based vector. More...
 
struct  triangle
 
struct  ksphere
 

Macros

#define FRUSTUM_SIDE_COUNT   6
 

Typedefs

typedef union vec2_u vec2
 A 2-element vector. More...
 
typedef union vec3_u vec3
 A 3-element vector. More...
 
typedef union vec4_u vec4
 A 4-element vector. More...
 
typedef vec4 quat
 A quaternion, used to represent rotational orientation. More...
 
typedef vec4 rect_2d
 A 2d rectangle. More...
 
typedef union uvec4_u uvec4
 A 4-element vector of unsigned ints. More...
 
typedef union mat3_u mat3
 A 3x3 matrix. More...
 
typedef union mat4_u mat4
 a 4x4 matrix, typically used to represent object transformations. More...
 
typedef struct extents_2d extents_2d
 Represents the extents of a 2d object. More...
 
typedef struct extents_3d extents_3d
 Represents the extents of a 3d object. More...
 
typedef struct vertex_3d vertex_3d
 Represents a single vertex in 3D space. More...
 
typedef struct vertex_2d vertex_2d
 Represents a single vertex in 2D space. More...
 
typedef struct colour_vertex_3d colour_vertex_3d
 Represents a single vertex in 3D space with position and colour data only. More...
 
typedef struct plane_3d plane_3d
 
typedef enum frustum_side frustum_side
 
typedef struct frustum frustum
 
typedef union vec2i_t vec2i
 A 2-element integer-based vector. More...
 
typedef union vec3i_t vec3i
 A 3-element integer-based vector. More...
 
typedef union vec4i_t vec4i
 A 4-element integer-based vector. More...
 
typedef struct triangle triangle
 
typedef struct ksphere ksphere
 

Enumerations

enum  frustum_side {
  FRUSTUM_SIDE_TOP = 0 , FRUSTUM_SIDE_BOTTOM = 1 , FRUSTUM_SIDE_RIGHT = 2 , FRUSTUM_SIDE_LEFT = 3 ,
  FRUSTUM_SIDE_FAR = 4 , FRUSTUM_SIDE_NEAR = 5
}
 

Detailed Description

Contains various math types required for the engine.

Author
Travis Vroman (travi.nosp@m.s@ko.nosp@m.hieng.nosp@m.ine..nosp@m.com)
Version
1.0
Date
2022-01-10

Macro Definition Documentation

◆ FRUSTUM_SIDE_COUNT

#define FRUSTUM_SIDE_COUNT   6

Typedef Documentation

◆ colour_vertex_3d

Represents a single vertex in 3D space with position and colour data only.

◆ extents_2d

typedef struct extents_2d extents_2d

Represents the extents of a 2d object.

◆ extents_3d

typedef struct extents_3d extents_3d

Represents the extents of a 3d object.

◆ frustum

typedef struct frustum frustum

◆ frustum_side

typedef enum frustum_side frustum_side

◆ ksphere

typedef struct ksphere ksphere

◆ mat3

typedef union mat3_u mat3

A 3x3 matrix.

◆ mat4

typedef union mat4_u mat4

a 4x4 matrix, typically used to represent object transformations.

◆ plane_3d

typedef struct plane_3d plane_3d

◆ quat

typedef vec4 quat

A quaternion, used to represent rotational orientation.

◆ rect_2d

typedef vec4 rect_2d

A 2d rectangle.

◆ triangle

typedef struct triangle triangle

◆ uvec4

typedef union uvec4_u uvec4

A 4-element vector of unsigned ints.

◆ vec2

typedef union vec2_u vec2

A 2-element vector.

◆ vec2i

typedef union vec2i_t vec2i

A 2-element integer-based vector.

◆ vec3

typedef union vec3_u vec3

A 3-element vector.

◆ vec3i

typedef union vec3i_t vec3i

A 3-element integer-based vector.

◆ vec4

typedef union vec4_u vec4

A 4-element vector.

◆ vec4i

typedef union vec4i_t vec4i

A 4-element integer-based vector.

◆ vertex_2d

typedef struct vertex_2d vertex_2d

Represents a single vertex in 2D space.

◆ vertex_3d

typedef struct vertex_3d vertex_3d

Represents a single vertex in 3D space.

Enumeration Type Documentation

◆ frustum_side

Enumerator
FRUSTUM_SIDE_TOP 
FRUSTUM_SIDE_BOTTOM 
FRUSTUM_SIDE_RIGHT 
FRUSTUM_SIDE_LEFT 
FRUSTUM_SIDE_FAR 
FRUSTUM_SIDE_NEAR