src/scene_node.c

changeset 290
2eb3813562e7
parent 286
26a41832c81d
equal deleted inserted replaced
289:237cb9038109 290:2eb3813562e7
68 68
69 void asc_scene_node_free(AscSceneNode *node) { 69 void asc_scene_node_free(AscSceneNode *node) {
70 if (node == NULL) return; 70 if (node == NULL) return;
71 71
72 // remove this node from its parent 72 // remove this node from its parent
73 asc_scene_node_unlink(node); 73 asc_scene_node_remove(node);
74 74
75 // free the entire subtree 75 // free the entire subtree
76 CxTreeIterator iter = asc_scene_node_iterator(node, true); 76 CxTreeIterator iter = asc_scene_node_iterator(node, true);
77 cx_foreach(AscSceneNode*, child, iter) { 77 cx_foreach(AscSceneNode*, child, iter) {
78 if (!iter.exiting) continue; 78 if (!iter.exiting) continue;
169 } 169 }
170 170
171 return cx_strcast(node->name); 171 return cx_strcast(node->name);
172 } 172 }
173 173
174 void asc_scene_node_link(AscSceneNode * restrict parent, AscSceneNode * restrict node) { 174 void asc_scene_node_add(AscSceneNode * restrict parent, AscSceneNode * restrict node) {
175 cx_tree_link( 175 cx_tree_add(
176 parent, node, 176 parent, node,
177 offsetof(AscSceneNode, parent), 177 offsetof(AscSceneNode, parent),
178 offsetof(AscSceneNode, children), 178 offsetof(AscSceneNode, children),
179 offsetof(AscSceneNode, last_child), 179 offsetof(AscSceneNode, last_child),
180 offsetof(AscSceneNode, prev), 180 offsetof(AscSceneNode, prev),
181 offsetof(AscSceneNode, next) 181 offsetof(AscSceneNode, next)
182 ); 182 );
183 asc_scene_node_update_transform(node); 183 asc_scene_node_update_transform(node);
184 } 184 }
185 185
186 void asc_scene_node_unlink(AscSceneNode *node) { 186 void asc_scene_node_remove(AscSceneNode *node) {
187 cx_tree_unlink( 187 cx_tree_remove(
188 node, 188 node,
189 offsetof(AscSceneNode, parent), 189 offsetof(AscSceneNode, parent),
190 offsetof(AscSceneNode, children), 190 offsetof(AscSceneNode, children),
191 offsetof(AscSceneNode, last_child), 191 offsetof(AscSceneNode, last_child),
192 offsetof(AscSceneNode, prev), 192 offsetof(AscSceneNode, prev),

mercurial