LibGame  v0.4.0
The LG Game Engine - Copyright (C) 2024-2025 ETMSoftware
lg_scene.h
1 /*
2  * LibGame - Copyright (C) Emmanuel Thomas-Maurin 2011-2025
3  * All rights reserved
4  */
5 
6 #ifndef LG_SCENE_H
7 #define LG_SCENE_H
8 
9 /*
10  * LG_NODE_NTOS AND LG_SCENE ARE DEFINED IN LG_SCENE_GRAPH.H
11  * (THIS MAY CREATE A BIT OF CONFUSION)
12  */
13 
14 //#define SCENE_SERIAL_DATA_SIZE offsetof(LG_Scene, cam1)
15 
16 /* Standard arrow colors = RGB, alternate colors = purple, green, cyan */
17 #define STANDARD_ARROW_COLORS FALSE
18 
19 LG_Scene lg_scene_new(int, LG_Camera *, LG_Light, Rec2Df, uint16_t, const char *);
20 
21 void lg_scene_free(LG_Scene *);
22 
24 
25 void lg_fill_node_NTOS_from_local_matrix(LG_Node_NTOS *, mat4_t *, const char *, zboolean);
26 
27 void lg_fill_node_NTOS_from_scenenode(LG_Node_NTOS *, LG_SceneNode *, const char *, zboolean);
28 
30 
32 
34 
36 
38 
40 
42 
44 
46 
47 zboolean lg_scene_load_data_from_assets(LG_Scene *, const char *);
48 
49 zboolean lg_scene_load_data_from_file(LG_Scene *, const char *);
50 
51 zboolean lg_scene_save_data_to_file(LG_Scene *, const char *);
52 
53 zboolean lg_create_wr_scenes_dir();
54 
55 const char *lg_get_reversed_rot_order(const char *);
56 
57 zboolean lg_rot_order_is_valid(const char *);
58 
59 #define transl_v3(x, y, z) vec3(x, y, z)
60 
61 #define scaling_v3(x, y, z) vec3(x, y, z)
62 
63 #endif /* LG_SCENE_H */
LG_LoadMesh_Flags
Definition: lg_mesh.h:122
Rec2Df
Definition: lg_gr_func.h:56
LG_Quat
Definition: lg_quaternions.h:18
lg_fill_node_NTOS_from_local_matrix
void lg_fill_node_NTOS_from_local_matrix(LG_Node_NTOS *ntos, mat4_t *local_matrix, const char *euler_ang_rot_order, zboolean set_quat)
Definition: lg_scene.c:265
lg_scene_free
void lg_scene_free(LG_Scene *scene)
Definition: lg_scene.c:194
LG_SceneNode
Definition: lg_scene_graph.h:42
lg_set_NTOS_array_euler_angs_from_quats
void lg_set_NTOS_array_euler_angs_from_quats(LG_Scene *scene)
Definition: lg_scene.c:504
LG_Scene
Definition: lg_scene_graph.h:106
lg_create_wr_scenes_dir
zboolean lg_create_wr_scenes_dir()
Definition: lg_scene.c:684
LG_Light
Definition: lg_light.h:26
lg_fill_node_NTOS_from_scenenode
void lg_fill_node_NTOS_from_scenenode(LG_Node_NTOS *ntos, LG_SceneNode *node, const char *euler_ang_rot_order, zboolean set_quat)
Definition: lg_scene.c:307
lg_node_NTOS_array_info_to_stream
void lg_node_NTOS_array_info_to_stream(LG_Scene *scene, FILE *s)
Definition: lg_scene.c:589
lg_generate_scene_data_from_scenenodes
zboolean lg_generate_scene_data_from_scenenodes(LG_Scene *scene, LG_SceneNode *top_node)
Definition: lg_scene.c:355
lg_scene_new
LG_Scene lg_scene_new(int id, LG_Camera *cam1, LG_Light light1, Rec2Df landscape_rec, uint16_t grid_width, const char *euler_ang_rot_order)
Definition: lg_scene.c:106
lg_scene_generate_serializable_data
zboolean lg_scene_generate_serializable_data(LG_Scene *scene)
Definition: lg_scene.c:370
vec3_t
Definition: math_3d.h:123
LG_Camera
Definition: lg_camera.h:22
LG_Node_NTOS
Definition: lg_scene_graph.h:66
lg_rot_order_is_valid
zboolean lg_rot_order_is_valid(const char *rot_order)
Definition: lg_scene.c:724
lg_scene_load_data_from_assets
zboolean lg_scene_load_data_from_assets(LG_Scene *scene, const char *path)
Definition: lg_scene.c:615
lg_node_NTOS_info
void lg_node_NTOS_info(LG_Node_NTOS *ntos)
Definition: lg_scene.c:529
lg_scene_save_data_to_file
zboolean lg_scene_save_data_to_file(LG_Scene *scene, const char *path)
Definition: lg_scene.c:674
lg_node_NTOS_info_to_stream
void lg_node_NTOS_info_to_stream(LG_Node_NTOS *ntos, FILE *s)
Definition: lg_scene.c:547
lg_scenenode_new_and_set
LG_SceneNode * lg_scenenode_new_and_set(int id, LG_SceneNode *parent_node, const char *mesh_file, LG_LoadMesh_Flags flags, vec3_t transl, LG_Quat orientation, vec3_t scaling)
Definition: lg_scene.c:235
lg_set_TRS_matrix_from_node_NTOS_euler
zboolean lg_set_TRS_matrix_from_node_NTOS_euler(mat4_t *m_TRS, LG_Node_NTOS *ntos, const char *euler_ang_rot_order)
Definition: lg_scene.c:483
lg_scene_load_data_from_file
zboolean lg_scene_load_data_from_file(LG_Scene *scene, const char *path)
Definition: lg_scene.c:643
lg_generate_scenenodes_from_scene_data
LG_SceneNode * lg_generate_scenenodes_from_scene_data(LG_Scene *scene, LG_SceneNode *top_node, LG_LoadMesh_Flags flags)
Definition: lg_scene.c:429
lg_get_reversed_rot_order
const char * lg_get_reversed_rot_order(const char *rot_order)
Definition: lg_scene.c:702
mat4_t
Definition: math_3d.h:179
lg_node_NTOS_array_info
void lg_node_NTOS_array_info(LG_Scene *scene)
Definition: lg_scene.c:564