38 lines
1.3 KiB
C
38 lines
1.3 KiB
C
#ifndef WR_SPOT_LIGHT_H
|
|
#define WR_SPOT_LIGHT_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* Inheritance diagram: WrNode <- WrSpotLight */
|
|
struct WrSpotLight;
|
|
typedef struct WrSpotLight WrSpotLight;
|
|
|
|
/* Use wr_node_delete(WR_NODE(light)) to delete an instance */
|
|
WrSpotLight *wr_spot_light_new();
|
|
|
|
/* Expects a 3-component array */
|
|
void wr_spot_light_set_color(WrSpotLight *light, const float *color);
|
|
void wr_spot_light_set_intensity(WrSpotLight *light, float intensity);
|
|
void wr_spot_light_set_ambient_intensity(WrSpotLight *light, float ambient_intensity);
|
|
void wr_spot_light_set_on(WrSpotLight *light, bool on);
|
|
void wr_spot_light_set_cast_shadows(WrSpotLight *light, bool cast_shadows);
|
|
|
|
/* Expects a 3-component array */
|
|
void wr_spot_light_set_position_relative(WrSpotLight *light, const float *position);
|
|
void wr_spot_light_set_radius(WrSpotLight *light, float radius);
|
|
void wr_spot_light_set_attenuation(WrSpotLight *light, float attenuation_constant, float attenuation_linear,
|
|
float attenuation_quadratic);
|
|
|
|
/* Expects a 3-component array */
|
|
void wr_spot_light_set_direction(WrSpotLight *light, const float *direction);
|
|
void wr_spot_light_set_beam_width(WrSpotLight *light, float beam_width);
|
|
void wr_spot_light_set_cutoff_angle(WrSpotLight *light, float cutoff_angle);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif // WR_SPOT_LIGHT_H
|