25 #define LT_DIRECTIONAL 0 // A light like a sun
26 #define LT_POINT 1 // A point light, like an explosion
27 #define LT_TUBE 2 // A tube light, like a fluorescent light
28 #define LT_CONE 3 // A cone light, like a flood light
30 #define MAX_LIGHT_LEVELS 16
69 int current_light_index;
70 int current_num_lights;
89 extern void light_add_directional(
const vec3d *dir,
float intensity,
float r,
float g,
float b,
float spec_r = 0.0
f,
float spec_g = 0.0
f,
float spec_b = 0.0
f,
bool specular =
false);
90 extern void light_add_point(
const vec3d *
pos,
float r1,
float r2,
float intensity,
float r,
float g,
float b,
int light_ignore_objnum,
float spec_r = 0.0
f,
float spec_g = 0.0
f,
float spec_b = 0.0
f,
bool specular =
false);
91 extern void light_add_point_unique(
const vec3d *
pos,
float r1,
float r2,
float intensity,
float r,
float g,
float b,
int affected_objnum,
float spec_r = 0.0
f,
float spec_g = 0.0
f,
float spec_b = 0.0
f,
bool specular =
false);
92 extern void light_add_tube(
const vec3d *
p0,
const vec3d *
p1,
float r1,
float r2,
float intensity,
float r,
float g,
float b,
int affected_objnum,
float spec_r = 0.0
f,
float spec_g = 0.0
f,
float spec_b = 0.0
f,
bool specular =
false);
93 extern void light_add_cone(
const vec3d *
pos,
const vec3d * dir,
float angle,
float inner_angle,
bool dual_cone,
float r1,
float r2,
float intensity,
float r,
float g,
float b,
int light_ignore_objnum,
float spec_r = 0.0
f,
float spec_g = 0.0
f,
float spec_b = 0.0
f,
bool specular =
false);
void light_apply_specular(ubyte *param_r, ubyte *param_g, ubyte *param_b, const vec3d *pos, const vec3d *norm, const vec3d *cam)
int light_filter_push(int objnum, const vec3d *pos, float rad)
bool light_compare_by_type(const light &a, const light &b)
int light_filter_push_box(const vec3d *min, const vec3d *max)
void setLightFilter(int objnum, const vec3d *pos, float rad)
light_indexing_info bufferLights()
void light_add_cone(const vec3d *pos, const vec3d *dir, float angle, float inner_angle, bool dual_cone, float r1, float r2, float intensity, float r, float g, float b, int light_ignore_objnum, float spec_r=0.0f, float spec_g=0.0f, float spec_b=0.0f, bool specular=false)
GLdouble GLdouble GLdouble r
GLboolean GLboolean GLboolean GLboolean a
int light_get_global_count()
void light_add_directional(const vec3d *dir, float intensity, float r, float g, float b, float spec_r=0.0f, float spec_g=0.0f, float spec_b=0.0f, bool specular=false)
bool setLights(const light_indexing_info *info)
void light_add_point_unique(const vec3d *pos, float r1, float r2, float intensity, float r, float g, float b, int affected_objnum, float spec_r=0.0f, float spec_g=0.0f, float spec_b=0.0f, bool specular=false)
GLboolean GLboolean GLboolean b
void light_add_point(const vec3d *pos, float r1, float r2, float intensity, float r, float g, float b, int light_ignore_objnum, float spec_r=0.0f, float spec_g=0.0f, float spec_b=0.0f, bool specular=false)
void light_apply_rgb(ubyte *param_r, ubyte *param_g, ubyte *param_b, const vec3d *pos, const vec3d *norm, float static_light_val)
int light_get_global_dir(vec3d *pos, int n)
void light_add_tube(const vec3d *p0, const vec3d *p1, float r1, float r2, float intensity, float r, float g, float b, int affected_objnum, float spec_r=0.0f, float spec_g=0.0f, float spec_b=0.0f, bool specular=false)
void light_set_ambient(float ambient_light)
void light_set_shadow(int state)
ubyte light_apply(const vec3d *pos, const vec3d *norm, float static_light_val)
SCP_vector< light * > Static_light
void addLight(const light *light_ptr)