Claude Chappe' Curse - A C Game
Logo Institut d'Informatique Claude Chappe Logo Université de Le Mans Logo Raeptor Production
 
Loading...
Searching...
No Matches
PointLight Class Reference

Represents a point light source. More...

#include <lighting.h>

Inheritance diagram for PointLight:
Collaboration diagram for PointLight:

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.
 
- Public Member Functions inherited from Light
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.
 
- Public Member Functions inherited from Node
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
 
- Public Attributes inherited from Node
void * object
 
struct Node ** children
 
struct Nodeparent
 
u16 length
 
u8 type
 
u8 flags
 
vec3 pos
 
vec3 rot
 
vec3 scale
 
vec3 globalPos
 
vec3 globalRot
 
vec3 globalScale
 
Behaviorbehavior
 
BehaviorAttributeattribute
 
u8 attributes_count
 
Shader shader
 

Additional Inherited Members

- Static Public Attributes inherited from Light
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 Public Attributes inherited from Node
static Shader glowShader = 0
 A static Shader variable used for glow effect.
 

Detailed Description

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.

Member Function Documentation

◆ constructor()

void PointLight::constructor ( float  r,
float  g,
float  b,
float  bias,
float  size,
float  constant,
float  linear,
float  quadratic 
)
inline

Constructor for the PointLight class.

This function initializes a PointLight object with the specified parameters.

Parameters
rThe red component of the light color.
gThe green component of the light color.
bThe blue component of the light color.
biasThe bias value for the light.
sizeThe size of the light.
constantThe constant attenuation factor.
linearThe linear attenuation factor.
quadraticThe quadratic attenuation factor.

◆ update()

void PointLight::update ( vec3  pos,
vec3  rot,
vec3  scale,
double  delta,
u8 lightsCount 
)
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.

Parameters
posVec3 structure representing the position of the point light.
rotVec3 structure representing the rotation of the point light.
scaleVec3 structure representing the scale of the point light.
deltaThe time delta used to update the point light's properties.
lightsCountPointer to an unsigned 8-bit integer representing the count of active lights.

◆ get_settings_data()

void PointLight::get_settings_data ( void ***  ptr,
int *  length 
)
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.

Parameters
[out]ptrA pointer to a pointer to a pointer where the settings data will be stored.
[out]lengthA pointer to an integer where the length of the settings data will be stored.

◆ load()

void PointLight::load ( FILE *  file)
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.

Parameters
fileA pointer to the file from which data will be loaded.

◆ save()

void PointLight::save ( FILE *  file)
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.

Parameters
fileA pointer to the FILE object where the point light state will be saved.

◆ configure_lighting()

void PointLight::configure_lighting ( Camera c,
WorldShaders shaders,
DepthMap depthMap,
u8 lightsCount,
int  pointLightId 
)
inline

Configures the lighting.

This function configures the lighting.

Parameters
cThe camera for which the lighting is to be configured.
shadersThe shaders to be used for rendering.
lightsCountThe number of lights in the scene.
pointLightIdThe ID of the point light.

Member Data Documentation

◆ color

vec3 PointLight::color

Color component of the light.

◆ bias

float PointLight::bias

Bias factor for the light.

◆ size

float PointLight::size

Size factor for the light.

◆ constant

float PointLight::constant

Constant attenuation factor for the light.

◆ linear

float PointLight::linear

Linear attenuation factor for the light.

◆ quadratic

float PointLight::quadratic

Quadratic attenuation factor for the light.


The documentation for this class was generated from the following files: