Represents a point light source. More...
#include <lighting.h>
Public Member Functions | |
void | constructor (float r, float g, float b, float bias, float size, float constant, float linear, float quadratic) |
Constructor for the PointLight class. | |
void | update (vec3 pos, vec3 rot, vec3 scale, double delta, u8 *lightsCount) |
Updates the position, rotation, and scale of a point light, and increments the lights count. | |
void | get_settings_data (void ***ptr, int *length) |
Retrieves the settings data for the point light. | |
void | load (FILE *file) |
Loads data from a file. | |
void | save (FILE *file) |
Saves the state of the point light to a file. | |
void | configure_lighting (Camera *c, WorldShaders *shaders, DepthMap *depthMap, u8 *lightsCount, int pointLightId) |
Configures the lighting. | |
![]() | |
void | init_light () |
Initializes the light object. | |
void | is_gui_element (bool *result) |
Determines if the current object is a GUI element. | |
void | render (mat4 modelMatrix, Shader activeShader) |
Renders the light using the provided model matrix and active shader. | |
void | init_vao () |
Initializes the Vertex Array Object (VAO) for the light class. | |
void | configure_lighting (WorldShaders *shaders, mat4 lightView, mat4 lightProjection, int storageBufferIndex, DepthMap *depthMap) |
Configures the lighting for the scene. | |
![]() | |
void | constructor () |
Constructor for the Node class. | |
void | initialize_node () |
Initializes a node. | |
void | get_glow_shader (Shader *shader) |
Retrieves the glow shader. | |
void | get_settings_data (void ***ptr, int *length) |
Retrieves settings data. | |
void | load () |
Loads the necessary resources or data for the node. | |
void | save (FILE *file) |
Saves the current state to the specified file. | |
void | prepare_render (mat4 modelMatrix, Shader activeShader) |
Renders a node using the specified model matrix and shader. | |
void | render () |
Renders the node. | |
void | update_global_position (vec3 pos, vec3 rot, vec3 scale) |
Updates the global position of a node. | |
void | update (vec3 pos, vec3 rot, vec3 scale) |
Updates the position, rotation, and scale of a node. | |
void | on_resize () |
Handles the resize event for the node. | |
void | free () |
Frees the resources allocated by the object. | |
void | is_cshape (bool *cshape) |
Checks if the current shape is a custom shape. | |
void | is_body (bool *body) |
Sets the body status of the node. | |
void | is_area (bool *area) |
Checks if the current node is within a specified area. | |
void | is_render_target (bool *render_target) |
Sets the render target status. | |
void | is_gui_element (bool *result) |
Determines if the current node is a GUI element. | |
void | add_child (Node *child) |
Adds a child node to a parent node. | |
void | add_child_and_realloc (Node *child) |
Adds a child node to a parent node and reallocates memory if necessary. | |
void | remove_child (Node *child) |
Removes a child node from a parent node. | |
void | remove_child_and_realloc (Node *child) |
Removes a child node from a parent node and reallocates memory if necessary. | |
void | remove_child_and_free (Node *child) |
Removes a child node from a parent node and frees the memory of the child node. | |
void | remove_child_and_free_and_realloc (Node *child) |
Removes a child node from a parent node, frees the memory of the child node, and reallocates memory if necessary. | |
int | index_of_child (Node *child) |
Retrieves the index of a child node in a parent node's children array. | |
void | print (int level) |
Prints the details of a node at a specified level of indentation. | |
void | emit_ready (...) |
Emits the 'ready' signal for the node. | |
void | emit_update (...) |
Emits an update event for the node. | |
void | emit_signal (...) |
Emits a signal if the node has a script and the script has a signal handler. | |
Public Attributes | |
vec3 | color |
float | bias |
float | size |
float | constant |
float | linear |
float | quadratic |
![]() | |
void * | object |
struct Node ** | children |
struct Node * | parent |
u16 | length |
u8 | type |
u8 | flags |
vec3 | pos |
vec3 | rot |
vec3 | scale |
vec3 | globalPos |
vec3 | globalRot |
vec3 | globalScale |
Behavior * | behavior |
BehaviorAttribute * | attribute |
u8 | attributes_count |
Shader | shader |
Additional Inherited Members | |
![]() | |
static VBO | vbo = 0 |
Static variable representing the Vertex Buffer Object (VBO) for the light class. | |
static VAO | vao = 0 |
Static variable representing the Vertex Array Object (VAO) for the light class. | |
static Shader | billboardShader = 0 |
Static variable representing the shader program used for rendering billboard lights. | |
static TextureMap | lightPointTexture = 0 |
Static variable representing the texture map for point lights. | |
static TextureMap | directionalLightTexture = 0 |
Static variable representing the texture map for directional lights. | |
![]() | |
static Shader | glowShader = 0 |
A static Shader variable used for glow effect. | |
Represents a point light source.
A point light emits light in all directions from a single point. This structure contains the properties of a point light, including ambient, diffuse, and specular components, as well as attenuation factors.
|
inline |
Constructor for the PointLight class.
This function initializes a PointLight object with the specified parameters.
r | The red component of the light color. |
g | The green component of the light color. |
b | The blue component of the light color. |
bias | The bias value for the light. |
size | The size of the light. |
constant | The constant attenuation factor. |
linear | The linear attenuation factor. |
quadratic | The quadratic attenuation factor. |
|
inline |
Updates the position, rotation, and scale of a point light, and increments the lights count.
This function updates the position, rotation, and scale of a point light based on the provided delta time. It also increments the count of active lights.
pos | Vec3 structure representing the position of the point light. |
rot | Vec3 structure representing the rotation of the point light. |
scale | Vec3 structure representing the scale of the point light. |
delta | The time delta used to update the point light's properties. |
lightsCount | Pointer to an unsigned 8-bit integer representing the count of active lights. |
|
inline |
Retrieves the settings data for the point light.
This function populates the provided pointer with the settings data and sets the length of the data.
[out] | ptr | A pointer to a pointer to a pointer where the settings data will be stored. |
[out] | length | A pointer to an integer where the length of the settings data will be stored. |
|
inline |
Loads data from a file.
This function reads data from the specified file and loads it into the appropriate structures or variables. The file pointer should be valid and opened in the appropriate mode for reading.
file | A pointer to the file from which data will be loaded. |
|
inline |
Saves the state of the point light to a file.
This function writes the current state of the point light to the specified file. The state includes all relevant properties of the point light that need to be persisted.
file | A pointer to the FILE object where the point light state will be saved. |
|
inline |
Configures the lighting.
This function configures the lighting.
c | The camera for which the lighting is to be configured. |
shaders | The shaders to be used for rendering. |
lightsCount | The number of lights in the scene. |
pointLightId | The ID of the point light. |
vec3 PointLight::color |
Color component of the light.
float PointLight::bias |
Bias factor for the light.
float PointLight::size |
Size factor for the light.
float PointLight::constant |
Constant attenuation factor for the light.
float PointLight::linear |
Linear attenuation factor for the light.
float PointLight::quadratic |
Quadratic attenuation factor for the light.