11#ifndef LG_SCENE_GRAPH_H
12#define LG_SCENE_GRAPH_H
14#define SCENENODE_CHILD_MAX_NUM 256
15#define SCENE_GRAPH_MAX_DEPTH 32
16#define SCENEGRAPH_PRINTOUT_MAX_DEPTH 8
18#define NODE_NTOS_MAX_NUM 1024
20#define SCENE_SERIAL_DATA_SIZE (offsetof(LG_Scene, cam1))
47 lg_scenenode_type type;
105 SCENE_ROOT_NODE_ID = 0,
107 SCENE_XYZ_ARROWS_NODE_ID,
108 SCENE_FIRST_OBJ_NODE_ID
118 char euler_ang_rot_order[4];
LG_SceneNode * lg_scenenode_new(int id, LG_Path name, lg_scenenode_type type)
Definition lg_scene_graph.c:24
void lg_traverse_scene_graph(LG_SceneNode *node, int(*func)(LG_SceneNode *))
Definition lg_scene_graph.c:313
LG_SceneNode * lg_scenenode_get_clone(LG_SceneNode *node, int32_t clone_id)
Definition lg_scene_graph.c:193
void lg_scenenode_free_v2(LG_SceneNode **node)
Definition lg_scene_graph.c:156
void lg_scenenode_set_local_matrix(LG_SceneNode *node, vec3_t transl, LG_Quat rot, vec3_t scaling)
Definition lg_scene_graph.c:479
void lg_scenenode_update_local_matrix(LG_SceneNode *node, vec3_t transl, LG_Quat rot, vec3_t scaling)
Definition lg_scene_graph.c:500
LG_SceneNode * lg_scenenode_find_by_id(LG_SceneNode *node, int id)
Definition lg_scene_graph.c:394
void lg_scenenode_info(LG_SceneNode *node)
Definition lg_scene_graph.c:811
void lg_scenenode_attach_to_camera(LG_SceneNode *node, const LG_Camera *cam, vec3_t transl, vec3_t scaling)
Definition lg_scene_graph.c:577
void lg_traverse_scene_graph_2(LG_SceneNode *node, int(*func)(LG_SceneNode *, LG_Scene *), LG_Scene *scene)
Definition lg_scene_graph.c:347
int lg_scenenode_clone_worldm_l3dvb(LG_SceneNode *dest_node, LG_SceneNode *src_node)
Definition lg_scene_graph.c:612
LG_SceneNode * lg_scenenode_get_root(LG_SceneNode *node)
Definition lg_scene_graph.c:171
void lg_scenenode_remove_and_free_all_equal_or_below(LG_SceneNode *node)
Definition lg_scene_graph.c:266
void lg_scenenode_update_world_matrix_tree(LG_SceneNode *node, mat4_t *parent_world_matrix)
Definition lg_scene_graph.c:518
void lg_scenenode_add_child(LG_SceneNode *node, LG_SceneNode *child)
Definition lg_scene_graph.c:79
void lg_traverse_printout_scene_graph(LG_SceneNode *node, zboolean extra_info)
Definition lg_scene_graph.c:772
void lg_scenenode_set_world_matrix(LG_SceneNode *node, vec3_t transl, LG_Quat rot, vec3_t scaling)
Definition lg_scene_graph.c:549
void lg_scenenode_remove_child(LG_SceneNode *node, LG_SceneNode *child)
Definition lg_scene_graph.c:104
void lg_scenenode_remove_and_free_all(LG_SceneNode *node)
Definition lg_scene_graph.c:254
void lg_scenenode_reset_local_matrix(LG_SceneNode *node)
Definition lg_scene_graph.c:456
char * lg_traverse_send_to_str_scene_graph(LG_SceneNode *node, zboolean extra_info)
Definition lg_scene_graph.c:792
int lg_scenenode_remove_and_free_leaf(LG_SceneNode *node)
Definition lg_scene_graph.c:227
char * lg_scenenode_info_to_string(LG_SceneNode *node)
Definition lg_scene_graph.c:893
int lg_scenenode_info2(LG_SceneNode *node)
Definition lg_scene_graph.c:881
LG_SceneNode * lg_scenenode_find_by_name(LG_SceneNode *node, const char *name, zboolean test_full_path, zboolean with_extension)
Definition lg_scene_graph.c:413
void lg_remove_path_extension(char *path)
Definition lg_scene_graph.c:437
const char * lg_scenenode_type_string(int type)
Definition lg_scene_graph.c:969
void lg_scenenode_free(LG_SceneNode *node)
Definition lg_scene_graph.c:138
Definition lg_camera.h:22
Definition lg_goodies.h:20
Definition lg_quaternions.h:18
Definition lg_scene_graph.h:44
Definition lg_scene_graph.h:111
Definition lg_shader_progs.h:11
Definition lg_shader_progs.h:16
Definition lg_textures.h:48
Definition lg_3d_primitives.h:53
Definition lg_gr_func.h:56
Definition lg_scene_graph.h:69