Open Broadcaster Software
Free, open source software for live streaming and recording
bounds.h File Reference

Go to the source code of this file.

Data Structures

struct  bounds
 

Macros

#define BOUNDS_MAX_X   1
 
#define BOUNDS_MAX_Y   2
 
#define BOUNDS_MAX_Z   4
 
#define BOUNDS_OUTSIDE   1
 
#define BOUNDS_INSIDE   2
 
#define BOUNDS_PARTIAL   3
 

Functions

EXPORT void bounds_move (struct bounds *dst, const struct bounds *b, const struct vec3 *v)
 
EXPORT void bounds_scale (struct bounds *dst, const struct bounds *b, const struct vec3 *v)
 
EXPORT void bounds_merge (struct bounds *dst, const struct bounds *b1, const struct bounds *b2)
 
EXPORT void bounds_merge_point (struct bounds *dst, const struct bounds *b, const struct vec3 *v)
 
EXPORT void bounds_get_point (struct vec3 *dst, const struct bounds *b, unsigned int i)
 
EXPORT void bounds_get_center (struct vec3 *dst, const struct bounds *b)
 
EXPORT void bounds_transform (struct bounds *dst, const struct bounds *b, const struct matrix4 *m)
 
EXPORT void bounds_transform3x4 (struct bounds *dst, const struct bounds *b, const struct matrix3 *m)
 
EXPORT bool bounds_intersection_ray (const struct bounds *b, const struct vec3 *orig, const struct vec3 *dir, float *t)
 
EXPORT bool bounds_intersection_line (const struct bounds *b, const struct vec3 *p1, const struct vec3 *p2, float *t)
 
EXPORT bool bounds_plane_test (const struct bounds *b, const struct plane *p)
 
EXPORT bool bounds_under_plane (const struct bounds *b, const struct plane *p)
 
EXPORT bool bounds_intersects (const struct bounds *b, const struct bounds *test, float epsilon)
 
EXPORT bool bounds_intersects_obb (const struct bounds *b, const struct bounds *test, const struct matrix4 *m, float epsilon)
 
EXPORT bool bounds_intersects_obb3x4 (const struct bounds *b, const struct bounds *test, const struct matrix3 *m, float epsilon)
 
EXPORT float bounds_min_dist (const struct bounds *b, const struct plane *p)
 

Macro Definition Documentation

#define BOUNDS_INSIDE   2
#define BOUNDS_MAX_X   1
#define BOUNDS_MAX_Y   2
#define BOUNDS_MAX_Z   4
#define BOUNDS_OUTSIDE   1
#define BOUNDS_PARTIAL   3

Function Documentation

EXPORT void bounds_get_center ( struct vec3 dst,
const struct bounds b 
)
EXPORT void bounds_get_point ( struct vec3 dst,
const struct bounds b,
unsigned int  i 
)
EXPORT bool bounds_intersection_line ( const struct bounds b,
const struct vec3 p1,
const struct vec3 p2,
float *  t 
)
EXPORT bool bounds_intersection_ray ( const struct bounds b,
const struct vec3 orig,
const struct vec3 dir,
float *  t 
)
EXPORT bool bounds_intersects ( const struct bounds b,
const struct bounds test,
float  epsilon 
)
EXPORT bool bounds_intersects_obb ( const struct bounds b,
const struct bounds test,
const struct matrix4 m,
float  epsilon 
)
EXPORT bool bounds_intersects_obb3x4 ( const struct bounds b,
const struct bounds test,
const struct matrix3 m,
float  epsilon 
)
EXPORT void bounds_merge ( struct bounds dst,
const struct bounds b1,
const struct bounds b2 
)
EXPORT void bounds_merge_point ( struct bounds dst,
const struct bounds b,
const struct vec3 v 
)
EXPORT float bounds_min_dist ( const struct bounds b,
const struct plane p 
)
EXPORT void bounds_move ( struct bounds dst,
const struct bounds b,
const struct vec3 v 
)
EXPORT bool bounds_plane_test ( const struct bounds b,
const struct plane p 
)
EXPORT void bounds_scale ( struct bounds dst,
const struct bounds b,
const struct vec3 v 
)
EXPORT void bounds_transform ( struct bounds dst,
const struct bounds b,
const struct matrix4 m 
)

Note: transforms as OBB, then converts back to AABB, which can result in the actual size becoming larger than it originally was.

EXPORT void bounds_transform3x4 ( struct bounds dst,
const struct bounds b,
const struct matrix3 m 
)
EXPORT bool bounds_under_plane ( const struct bounds b,
const struct plane p 
)