From 6681e5e78772be7168b5ed2a5688d2e89ee4f5d5 Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Sat, 5 Jun 2010 23:46:29 -0600 Subject: Add children to dmnsn_objects, which enables splitting unions. Also, use PR-trees for unions internally. --- libdimension/object.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'libdimension/object.c') diff --git a/libdimension/object.c b/libdimension/object.c index a714f6e..d87eb12 100644 --- a/libdimension/object.c +++ b/libdimension/object.c @@ -40,6 +40,7 @@ dmnsn_new_object() object->texture = NULL; object->interior = NULL; object->trans = dmnsn_identity_matrix(); + object->children = dmnsn_new_array(sizeof(dmnsn_object *)); object->init_fn = NULL; object->free_fn = NULL; return object; @@ -50,6 +51,10 @@ void dmnsn_delete_object(dmnsn_object *object) { if (object) { + DMNSN_ARRAY_FOREACH (dmnsn_object **, child, object->children) { + dmnsn_delete_object(*child); + } + dmnsn_delete_array(object->children); dmnsn_delete_interior(object->interior); dmnsn_delete_texture(object->texture); if (object->free_fn) { -- cgit v1.2.3