162 } |
162 } |
163 // check if transform needs an update |
163 // check if transform needs an update |
164 if (asc_test_flag(node->flags, ASC_SCENE_NODE_UPDATE_TRANSFORM)) { |
164 if (asc_test_flag(node->flags, ASC_SCENE_NODE_UPDATE_TRANSFORM)) { |
165 asc_set_flag(node->flags, ASC_SCENE_NODE_TRANSFORM_UPDATED); |
165 asc_set_flag(node->flags, ASC_SCENE_NODE_TRANSFORM_UPDATED); |
166 asc_clear_flag(node->flags, ASC_SCENE_NODE_UPDATE_TRANSFORM); |
166 asc_clear_flag(node->flags, ASC_SCENE_NODE_UPDATE_TRANSFORM); |
|
167 |
|
168 asc_scene_node_calculate_transform(node); |
|
169 |
167 if (node->parent == scene->root) { |
170 if (node->parent == scene->root) { |
168 // skip unnecessary multiplication with unity matrix |
171 // skip unnecessary multiplication with unity matrix |
169 asc_transform_copy(node->world_transform, node->transform); |
172 asc_transform_copy(node->world_transform, node->transform); |
170 } else { |
173 } else { |
171 asc_mat4f_mul( |
174 asc_mat4f_mul( |