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

Represents a kinematic body in the physics simulation. More...

#include <bodies.h>

Inheritance diagram for KinematicBody:
Collaboration diagram for KinematicBody:

Public Member Functions

void constructor (vec3 velocity)
 Constructor for the kinematic body class.
 
void get_length (u8 *length)
 Retrieves the length of a kinematic body.
 
void get_collisions_shapes (Node ****shapes, u8 **length)
 Retrieves the collision shapes and their count.
 
void update_global_position (vec3 pos, vec3 rot, vec3 scale)
 Updates the global position of a kinematic body.
 
void update (vec3 pos, vec3 rot, vec3 scale, float delta)
 Updates the position, rotation, and scale of a kinematic body.
 
void load (FILE *file, Camera **c, Script *scripts, Node *editor)
 Loads data from a file and initializes the provided Camera, Script, and Node objects.
 
void save (FILE *file)
 Saves the state of the kinematic body to a file.
 
void apply_impulse (vec3 impulse, vec3 torque, vec3 correction)
 Applies an impulse to the kinematic body.
 
float get_velocity_norm ()
 Get the velocity norm of a node.
 
void get_velocity (vec3 velocity)
 Get the velocity of a node.
 
void get_mass (float *mass)
 Get the mass of a node.
 
void get_center_of_mass (vec3 com)
 Get the center of mass of a node.
 
- Public Member Functions inherited from Body
void is_body (bool *body)
 Checks if the given pointer represents a body.
 
void apply_impulse ()
 Applies an impulse to the physics body.
 
void add_shape (Node *child)
 Adds a child shape to the specified node.
 
void add_shape_and_realloc (Node *child)
 Adds a child shape to the specified node and reallocates memory if necessary.
 
void remove_shape (Node *child)
 Removes a child shape from the specified node.
 
void remove_shape_and_realloc (Node *child)
 Removes a child shape from the specified node and reallocates memory if necessary.
 
void remove_shape_and_free (Node *child)
 Removes a child shape from the specified node and frees the memory allocated for the child shape.
 
void remove_shape_and_free_and_realloc (Node *child)
 Removes a child shape from the specified node, frees the memory allocated for the child shape, and reallocates memory if necessary.
 
void get_collision_normal (float *normal)
 Calculates the collision normal vector.
 
- Public Member Functions inherited from PhysicalNode
void free ()
 Frees the resources allocated for the PhysicalNode instance.
 
- 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

struct Node ** collisionsShapes
 
vec3 velocity
 
u8 length
 
- 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 Node
static Shader glowShader = 0
 A static Shader variable used for glow effect.
 

Detailed Description

Represents a kinematic body in the physics simulation.

A kinematic body is controlled by the user and is not affected by forces.

Member Function Documentation

◆ constructor()

void KinematicBody::constructor ( vec3  velocity)
inline

Constructor for the kinematic body class.

This function initializes a kinematic body with the given velocity.

Parameters
velocityVec3 representing the initial velocity of the kinematic body.

◆ get_length()

void KinematicBody::get_length ( u8 length)
inline

Retrieves the length of a kinematic body.

This function assigns the length of a kinematic body to the provided pointer.

Parameters
lengthA pointer to an unsigned 8-bit integer where the length will be stored.

◆ get_collisions_shapes()

void KinematicBody::get_collisions_shapes ( Node ****  shapes,
u8 **  length 
)
inline

Retrieves the collision shapes and their count.

This function populates the provided pointers with the collision shapes and their respective count.

Parameters
[out]shapesA pointer to a 4-dimensional array of Node pointers where the collision shapes will be stored.
[out]lengthA pointer to an array of unsigned 8-bit integers where the count of collision shapes will be stored.

◆ update_global_position()

void KinematicBody::update_global_position ( vec3  pos,
vec3  rot,
vec3  scale 
)
inline

Updates the global position of a kinematic body.

This function updates the global position of a kinematic body based on the provided position, rotation, and scale vectors.

Parameters
posVec3 structure representing the position of the kinematic body.
rotVec3 structure representing the rotation of the kinematic body.
scaleVec3 structure representing the scale of the kinematic body.

◆ update()

void KinematicBody::update ( vec3  pos,
vec3  rot,
vec3  scale,
float  delta 
)
inline

Updates the position, rotation, and scale of a kinematic body.

This function updates the position, rotation, and scale vectors of a kinematic body based on the given delta time. It is typically used in a physics simulation to update the state of the body over time.

Parameters
posVec3 structure representing the position of the body.
rotVec3 structure representing the rotation of the body.
scaleVec3 structure representing the scale of the body.
deltaThe time delta used to update the body's state.

◆ load()

void KinematicBody::load ( FILE *  file,
Camera **  c,
Script scripts,
Node editor 
)
inline

Loads data from a file and initializes the provided Camera, Script, and Node objects.

This function reads data from the specified file and uses it to initialize the provided Camera, Script, and Node objects. The function assumes that the file is already opened and ready for reading.

Parameters
fileA pointer to the FILE object from which data will be read.
cA double pointer to a Camera object that will be initialized with the data read from the file.
scriptsA pointer to a Script object that will be initialized with the data read from the file.
editorA pointer to a Node object that will be initialized with the data read from the file.

◆ save()

void KinematicBody::save ( FILE *  file)
inline

Saves the state of the kinematic body to a file.

This function writes the current state of the kinematic body to the specified file.

Parameters
fileA pointer to the file where the state will be saved.

◆ apply_impulse()

void KinematicBody::apply_impulse ( vec3  impulse,
vec3  torque,
vec3  correction 
)
inline

Applies an impulse to the kinematic body.

This function applies a given impulse and torque to the kinematic body and performs any necessary corrections.

Parameters
impulseVec3 representing the impulse to be applied.
torqueVec3 representing the torque to be applied.
correctionVec3 representing the correction to be applied.

◆ get_velocity_norm()

float KinematicBody::get_velocity_norm ( )
inline

Get the velocity norm of a node.

Returns
The velocity norm of the node.

◆ get_velocity()

void KinematicBody::get_velocity ( vec3  velocity)
inline

Get the velocity of a node.

Parameters
velocityOutput vector to store the velocity.

◆ get_mass()

void KinematicBody::get_mass ( float *  mass)
inline

Get the mass of a node.

Parameters
massOutput pointer to store the mass.

◆ get_center_of_mass()

void KinematicBody::get_center_of_mass ( vec3  com)
inline

Get the center of mass of a node.

Parameters
comOutput vector to store the center of mass.

Member Data Documentation

◆ collisionsShapes

struct Node** KinematicBody::collisionsShapes

Array of collision shapes associated with the kinematic body.

◆ velocity

vec3 KinematicBody::velocity

Current velocity of the kinematic body.

◆ length

u8 KinematicBody::length

Number of collision shapes.


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