RT
Macros | Functions
librt.h File Reference
#include "rtstruct.h"
Include dependency graph for librt.h:

Go to the source code of this file.

Macros

#define DEG_TO_RAD   (M_PI_F / 180)
 
#define M_PI_F   (float)M_PI
 
#define M_INV_PI_F   (1.0f / M_PI_F)
 
#define EPSILON   1e-6
 
#define SHADOW_BIAS   5e-2
 
#define AAAA   quad[0]
 
#define BBBB   quad[1]
 
#define CCCC   quad[2]
 
#define DDDD   quad[3]
 
#define EEEE   quad[4]
 

Functions

void normal_sphere (t_inter *inter)
 
void normal_cone (t_inter *inter)
 
void normal_cube (t_inter *inter)
 
void normal_tore (t_inter *inter)
 
void normal_cylinder (t_inter *inter)
 
void normal_plane (t_inter *inter)
 
t_vec3 get_sphere_uv (t_inter *inter)
 
t_vec3 get_plane_uv (t_inter *inter)
 
t_vec3 get_cone_uv (t_inter *inter)
 
t_vec3 get_cube_uv (t_inter *inter)
 
t_vec3 get_tore_uv (t_inter *inter)
 
t_vec3 get_cylinder_uv (t_inter *inter)
 
void inter_cylinder (t_inter *data, t_obj *node)
 
void inter_plane (t_inter *data, t_obj *node)
 
void inter_sphere (t_inter *data, t_obj *node)
 
void inter_cone (t_inter *data, t_obj *node)
 
void set_min_max_corner (t_cube *cube)
 
void inter_cube (t_inter *data, t_obj *node)
 
void inter_tore (t_inter *data, t_obj *node)
 
t_inter inter_from_csg_op (int type, t_inter left, t_inter right, t_ray incoming)
 
void inter_csg (t_inter *data, t_obj *node)
 
void inter_set (t_inter *inter, t_ray ray)
 
void inter_setdeflect (t_inter *inter, t_vec3 shading_normal)
 
void inter_setrefract (t_inter *inter, t_ray *res)
 
void inter_find (t_inter *primary, t_pt3 *value)
 
bool inter_plane_finite (t_inter *data, t_plane *plane, float dist)
 
void inter_setlight (t_inter *i, t_inter *light_i, t_light *light)
 
void vec3_find (t_pt3 *origin, t_pt3 *dest, t_vec3 *value)
 
void vec3_cpy (t_vec3 *dst, t_vec3 *src)
 
void vec3_new (t_vec3 *res, float x, float y, float z)
 
void vec3_add (t_vec3 *res, t_vec3 *v1, t_vec3 *v2)
 
float vec3_cos (t_vec3 *v1, t_vec3 *v2)
 
t_vec3 vec3_cross (t_vec3 v1, t_vec3 v2)
 
void create_orthobasis_qnd (t_vec3 vec, t_vec3 *t, t_vec3 *b)
 
float vec3_dot (t_vec3 *v1, t_vec3 *v2)
 
float vec3_mag (t_vec3 v1)
 
void vec3_normalize (t_vec3 *v1)
 
t_vec3 vec3_normalize_ (t_vec3 v1)
 
void vec3_print (t_vec3 *data)
 
void vec3_print_ (char *msg, t_vec3 data)
 
void vec3_scalar (t_vec3 *v1, float k)
 
void vec3_sub (t_vec3 *res, t_vec3 *v1, t_vec3 *v2)
 
t_vec3 vec3_sub_ (t_vec3 a, t_vec3 b)
 
void vec3_mul (t_vec3 *res, t_vec3 *v1, t_vec3 *v2)
 
t_vec3 vec3_mul_ (t_vec3 a, t_vec3 b)
 
t_vec3 vec3_deflect (t_vec3 vec, t_vec3 normal)
 
t_vec3 vec3_refract (t_vec3 ray, t_vec3 normal, float ior)
 
void vec3_cartesian_to_spherical (t_vec3 v, float *azimuth, float *polar)
 
void vec3_matrix_camera (t_matrix *matrix, t_cam *cam)
 
void vec3_matrix_mult (t_matrix *matrix, t_matrix *add)
 
t_matrix matrix_mult (const t_matrix *lhs, const t_matrix *rhs)
 
t_matrix mat_orbit (t_vec3 axis, float deg)
 
t_vec3 get_column (t_matrix m, int column)
 
void set_column (t_matrix *m, int column, t_vec3 vec)
 
void set_row (t_matrix *m, int row, t_vec3 vec)
 
t_matrix mat_set_axes (t_vec3 x, t_vec3 y, t_vec3 z)
 
void mat_transpose (t_matrix *m)
 
void apply_matrix (t_vec3 *v, t_matrix *mat)
 
void ray_new (t_ray *res, t_pt3 *origin, t_vec3 *n)
 
void print_matrix (t_matrix *mat)
 
void mat3_rot (t_matrix *mat_x, t_matrix *mat_y, t_vec3 *vi, t_cam *cam)
 
void create_orthobasis_from_y_axis (t_vec3 y, t_vec3 *x, t_vec3 *z)
 
t_matrix set_rotation (float yz_angle, float xz_angle)
 
float fresnel (t_vec3 ray_dir, t_vec3 normal, float ior)
 
void ray_offset_origin (t_ray *ray, t_vec3 normal)
 
t_ray ray_transform (t_ray ray, t_matrix m)
 
void apply_uv_mapping (t_vec3 *uv, t_uv_mapping mapping)
 
float remap_to_0_to_1 (float x)
 

Macro Definition Documentation

◆ AAAA

#define AAAA   quad[0]

◆ BBBB

#define BBBB   quad[1]

◆ CCCC

#define CCCC   quad[2]

◆ DDDD

#define DDDD   quad[3]

◆ DEG_TO_RAD

#define DEG_TO_RAD   (M_PI_F / 180)

◆ EEEE

#define EEEE   quad[4]

◆ EPSILON

#define EPSILON   1e-6

◆ M_INV_PI_F

#define M_INV_PI_F   (1.0f / M_PI_F)

◆ M_PI_F

#define M_PI_F   (float)M_PI

◆ SHADOW_BIAS

#define SHADOW_BIAS   5e-2

Function Documentation

◆ apply_matrix()

void apply_matrix ( t_vec3 v,
t_matrix mat 
)

◆ apply_uv_mapping()

void apply_uv_mapping ( t_vec3 uv,
t_uv_mapping  mapping 
)

◆ create_orthobasis_from_y_axis()

void create_orthobasis_from_y_axis ( t_vec3  y,
t_vec3 x,
t_vec3 z 
)

◆ create_orthobasis_qnd()

void create_orthobasis_qnd ( t_vec3  vec,
t_vec3 t,
t_vec3 b 
)

◆ fresnel()

float fresnel ( t_vec3  ray_dir,
t_vec3  normal,
float  ior 
)

◆ get_column()

t_vec3 get_column ( t_matrix  m,
int  column 
)

◆ get_cone_uv()

t_vec3 get_cone_uv ( t_inter inter)

◆ get_cube_uv()

t_vec3 get_cube_uv ( t_inter inter)

◆ get_cylinder_uv()

t_vec3 get_cylinder_uv ( t_inter inter)

◆ get_plane_uv()

t_vec3 get_plane_uv ( t_inter inter)

◆ get_sphere_uv()

t_vec3 get_sphere_uv ( t_inter inter)

◆ get_tore_uv()

t_vec3 get_tore_uv ( t_inter inter)

◆ inter_cone()

void inter_cone ( t_inter data,
t_obj node 
)

◆ inter_csg()

void inter_csg ( t_inter data,
t_obj node 
)

◆ inter_cube()

void inter_cube ( t_inter data,
t_obj node 
)

◆ inter_cylinder()

void inter_cylinder ( t_inter data,
t_obj node 
)

◆ inter_find()

void inter_find ( t_inter primary,
t_pt3 value 
)

◆ inter_from_csg_op()

t_inter inter_from_csg_op ( int  type,
t_inter  left,
t_inter  right,
t_ray  incoming 
)

◆ inter_plane()

void inter_plane ( t_inter data,
t_obj node 
)

◆ inter_plane_finite()

bool inter_plane_finite ( t_inter data,
t_plane plane,
float  dist 
)

◆ inter_set()

void inter_set ( t_inter inter,
t_ray  ray 
)

◆ inter_setdeflect()

void inter_setdeflect ( t_inter inter,
t_vec3  shading_normal 
)

◆ inter_setlight()

void inter_setlight ( t_inter i,
t_inter light_i,
t_light light 
)

◆ inter_setrefract()

void inter_setrefract ( t_inter inter,
t_ray res 
)

◆ inter_sphere()

void inter_sphere ( t_inter data,
t_obj node 
)

◆ inter_tore()

void inter_tore ( t_inter data,
t_obj node 
)

◆ mat3_rot()

void mat3_rot ( t_matrix mat_x,
t_matrix mat_y,
t_vec3 vi,
t_cam cam 
)

◆ mat_orbit()

t_matrix mat_orbit ( t_vec3  axis,
float  deg 
)

◆ mat_set_axes()

t_matrix mat_set_axes ( t_vec3  x,
t_vec3  y,
t_vec3  z 
)

◆ mat_transpose()

void mat_transpose ( t_matrix m)

◆ matrix_mult()

t_matrix matrix_mult ( const t_matrix lhs,
const t_matrix rhs 
)

◆ normal_cone()

void normal_cone ( t_inter inter)

◆ normal_cube()

void normal_cube ( t_inter inter)

◆ normal_cylinder()

void normal_cylinder ( t_inter inter)

◆ normal_plane()

void normal_plane ( t_inter inter)

◆ normal_sphere()

void normal_sphere ( t_inter inter)

◆ normal_tore()

void normal_tore ( t_inter inter)

◆ print_matrix()

void print_matrix ( t_matrix mat)

◆ ray_new()

void ray_new ( t_ray res,
t_pt3 origin,
t_vec3 n 
)

◆ ray_offset_origin()

void ray_offset_origin ( t_ray ray,
t_vec3  normal 
)

◆ ray_transform()

t_ray ray_transform ( t_ray  ray,
t_matrix  m 
)

◆ remap_to_0_to_1()

float remap_to_0_to_1 ( float  x)

◆ set_column()

void set_column ( t_matrix m,
int  column,
t_vec3  vec 
)

◆ set_min_max_corner()

void set_min_max_corner ( t_cube cube)

◆ set_rotation()

t_matrix set_rotation ( float  yz_angle,
float  xz_angle 
)

◆ set_row()

void set_row ( t_matrix m,
int  row,
t_vec3  vec 
)

◆ vec3_add()

void vec3_add ( t_vec3 res,
t_vec3 v1,
t_vec3 v2 
)

◆ vec3_cartesian_to_spherical()

void vec3_cartesian_to_spherical ( t_vec3  v,
float *  azimuth,
float *  polar 
)

◆ vec3_cos()

float vec3_cos ( t_vec3 v1,
t_vec3 v2 
)

◆ vec3_cpy()

void vec3_cpy ( t_vec3 dst,
t_vec3 src 
)

◆ vec3_cross()

t_vec3 vec3_cross ( t_vec3  v1,
t_vec3  v2 
)

◆ vec3_deflect()

t_vec3 vec3_deflect ( t_vec3  vec,
t_vec3  normal 
)

◆ vec3_dot()

float vec3_dot ( t_vec3 v1,
t_vec3 v2 
)

◆ vec3_find()

void vec3_find ( t_pt3 origin,
t_pt3 dest,
t_vec3 value 
)

◆ vec3_mag()

float vec3_mag ( t_vec3  v1)

◆ vec3_matrix_camera()

void vec3_matrix_camera ( t_matrix matrix,
t_cam cam 
)

◆ vec3_matrix_mult()

void vec3_matrix_mult ( t_matrix matrix,
t_matrix add 
)

◆ vec3_mul()

void vec3_mul ( t_vec3 res,
t_vec3 v1,
t_vec3 v2 
)

◆ vec3_mul_()

t_vec3 vec3_mul_ ( t_vec3  a,
t_vec3  b 
)

◆ vec3_new()

void vec3_new ( t_vec3 res,
float  x,
float  y,
float  z 
)

◆ vec3_normalize()

void vec3_normalize ( t_vec3 v1)

◆ vec3_normalize_()

t_vec3 vec3_normalize_ ( t_vec3  v1)

◆ vec3_print()

void vec3_print ( t_vec3 data)

◆ vec3_print_()

void vec3_print_ ( char *  msg,
t_vec3  data 
)

◆ vec3_refract()

t_vec3 vec3_refract ( t_vec3  ray,
t_vec3  normal,
float  ior 
)

◆ vec3_scalar()

void vec3_scalar ( t_vec3 v1,
float  k 
)

◆ vec3_sub()

void vec3_sub ( t_vec3 res,
t_vec3 v1,
t_vec3 v2 
)

◆ vec3_sub_()

t_vec3 vec3_sub_ ( t_vec3  a,
t_vec3  b 
)