Nilorea Library
C utilities for networking, threading, graphics
|
Data Structures | |
struct | PHYSICS |
structure of the physics of an object More... | |
Macros | |
#define | copy_point(__src_, __dst_) memcpy( __dst_ , __src_ , sizeof( VECTOR3D ) ); |
VECTOR3D copy wrapper. More... | |
#define | MOVE_INTER 1 |
PHYSICS object state for move interpolated between two position. More... | |
#define | MOVE_SIMU 2 |
PHYSICS object state for move simulated from latest update. More... | |
#define | MOVE_STOPPED 0 |
PHYSICS object state for STOPPED. More... | |
#define | VECTOR3D_COLLINEAR -1 |
value when the two VECTOR3D are collinear More... | |
#define | VECTOR3D_DO_INTERSECT 0 |
value when the two VECTOR3D are intersecting More... | |
#define | VECTOR3D_DONT_INTERSECT -2 |
value when the two VECTOR3D are not connected More... | |
#define | VECTOR3D_SET(VECTOR, X, Y, Z) |
helper to set a VECTOR3D position More... | |
Typedefs | |
typedef double | VECTOR3D[3] |
struct of a point More... | |
Functions | |
double | distance (VECTOR3D *p1, VECTOR3D *p2) |
compute the distance between two VECTOR3D points More... | |
int | update_physics_position (PHYSICS *object, double delta_t) |
Update object position, reversed. More... | |
int | update_physics_position_nb (PHYSICS *object, int it, double delta_t) |
Update object position componant. More... | |
int | update_physics_position_reverse (PHYSICS *object, double delta_t) |
Update object position, reversed. More... | |
int | update_physics_position_reverse_nb (PHYSICS *object, int it, double delta_t) |
Update object position componant, reversed. More... | |
double | vector_angle_between (VECTOR3D *vec1, VECTOR3D *vec2) |
Compute angle beteen two VECTOR3D. More... | |
double | vector_dot_product (VECTOR3D *vec1, VECTOR3D *vec2) |
Compute the dot product of two VECTOR3D. More... | |
int | vector_intersect (VECTOR3D *p0, VECTOR3D *p1, VECTOR3D *p2, VECTOR3D *p3, VECTOR3D *px) |
Compute if two vectors are intersecting or not. More... | |
double | vector_normalize (VECTOR3D *vec) |
Return the normalized value of vec. More... | |
struct PHYSICS |
structure of the physics of an object
Data Fields | ||
---|---|---|
VECTOR3D | acceleration | ax,ay,az actual acceleration |
VECTOR3D | angular_acceleration | rax,ray,raz actual angular acceleration |
VECTOR3D | angular_speed | rvx,rvy,rvz actual angular speed |
int | can_jump | ability |
time_t | delta_t | last delta_t used |
VECTOR3D | gravity | gx , gy , gz gravity |
VECTOR3D | orientation | ax,ay,az actual rotation position |
VECTOR3D | position | x,y,z actual position |
VECTOR3D | speed | vx,vy,vz actual speed |
int | sz | size |
int | type | optionnal type id |
#define copy_point | ( | __src_, | |
__dst_ | |||
) | memcpy( __dst_ , __src_ , sizeof( VECTOR3D ) ); |
#define MOVE_INTER 1 |
#define MOVE_SIMU 2 |
#define VECTOR3D_COLLINEAR -1 |
#define VECTOR3D_DO_INTERSECT 0 |
#define VECTOR3D_DONT_INTERSECT -2 |
#define VECTOR3D_SET | ( | VECTOR, | |
X, | |||
Y, | |||
Z | |||
) |
helper to set a VECTOR3D position
int update_physics_position | ( | PHYSICS * | object, |
double | delta_t | ||
) |
Update object position, reversed.
Wrapper of update_physics_position_reverse_nb to update each componants.
object | The object physics to update |
delta_t | Elapsed time since last call for componant update computing |
Definition at line 98 of file n_3d.c.
References update_physics_position_nb().
Referenced by manage_particle_ex().
int update_physics_position_nb | ( | PHYSICS * | object, |
int | it, | ||
double | delta_t | ||
) |
Update object position componant.
object | The object physics to update |
it | Componant of VECTOR3D to update. it values : 0 -> x, 1 -> y , 2 -> z |
delta_t | Elapsed time since last call for componant update computing |
Definition at line 34 of file n_3d.c.
References __n_assert.
Referenced by update_physics_position(), and update_physics_position_reverse().
int update_physics_position_reverse | ( | PHYSICS * | object, |
double | delta_t | ||
) |
Update object position, reversed.
Wrapper of update_physics_position_reverse_nb to update each componants.
object | The object physics to update |
delta_t | Elapsed time since last call for componant update computing |
Definition at line 73 of file n_3d.c.
References update_physics_position_nb().
int update_physics_position_reverse_nb | ( | PHYSICS * | object, |
int | it, | ||
double | delta_t | ||
) |
Update object position componant, reversed.
object | The object physics to update |
it | Componant of VECTOR3D to update. it values : 0 -> x, 1 -> y , 2 -> z |
delta_t | Elapsed time since last call for componant update computing |
Definition at line 55 of file n_3d.c.
References __n_assert.
Compute angle beteen two VECTOR3D.
vec1 | first VECTOR3D |
vec2 | second VECTOR3D |
Definition at line 254 of file n_3d.c.
References vector_dot_product(), and vector_normalize().
Compute the dot product of two VECTOR3D.
vec1 | first VECTOR3D |
vec2 | second VECTOR3D |
Definition at line 224 of file n_3d.c.
Referenced by vector_angle_between().
Compute if two vectors are intersecting or not.
p1 | First point of vector 1 |
p2 | Second poinf of vector 1 |
p3 | First point of vector 2 |
p4 | Second point of vector 2 |
px | Storage for the eventual point |
Definition at line 132 of file n_3d.c.
References same_sign(), VECTOR3D_COLLINEAR, VECTOR3D_DO_INTERSECT, and VECTOR3D_DONT_INTERSECT.
double vector_normalize | ( | VECTOR3D * | vec | ) |
Return the normalized value of vec.
vec | VECTOR3D to normalize |
Definition at line 236 of file n_3d.c.
Referenced by vector_angle_between().