X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=world_volumes.h;fp=world_volumes.h;h=da39d265644848fd93989ae3ecbac8f9b78cfec5;hb=4b8aac300ee193cfa12011dfe0238cfe7d7ffce7;hp=f333626087586a752d4aeeeb10e3aa9f3c2ce64e;hpb=0a33f65eecb5e75cddaefa08d3a5eb1a301d0479;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/world_volumes.h b/world_volumes.h index f333626..da39d26 100644 --- a/world_volumes.h +++ b/world_volumes.h @@ -3,7 +3,6 @@ #include "world.h" -#if 0 /* * BVH implementation * ---------------------------------------------------------------------------- @@ -13,35 +12,30 @@ VG_STATIC void volume_vg_expand_bound( void *user, boxf bound, u32 item_index ) { world_instance *world = user; - ent_volume *volume_array = world_ent_array( world, k_ent_volume ), - *volume = volume_array + item_index; + ent_volume *volume = mdl_arritm( &world->ent_volume, item_index ); - m4x3_expand_aabb_point( volume->transform, bound, (v3f){ 1.0f, 1.0f, 1.0f} ); - m4x3_expand_aabb_point( volume->transform, bound, (v3f){ 1.0f, 1.0f,-1.0f} ); - m4x3_expand_aabb_point( volume->transform, bound, (v3f){ 1.0f,-1.0f, 1.0f} ); - m4x3_expand_aabb_point( volume->transform, bound, (v3f){ 1.0f,-1.0f,-1.0f} ); - m4x3_expand_aabb_point( volume->transform, bound, (v3f){-1.0f, 1.0f, 1.0f} ); - m4x3_expand_aabb_point( volume->transform, bound, (v3f){-1.0f, 1.0f,-1.0f} ); - m4x3_expand_aabb_point( volume->transform, bound, (v3f){-1.0f,-1.0f, 1.0f} ); - m4x3_expand_aabb_point( volume->transform, bound, (v3f){-1.0f,-1.0f,-1.0f} ); + m4x3_expand_aabb_point( volume->to_world, bound, (v3f){ 1.0f, 1.0f, 1.0f} ); + m4x3_expand_aabb_point( volume->to_world, bound, (v3f){ 1.0f, 1.0f,-1.0f} ); + m4x3_expand_aabb_point( volume->to_world, bound, (v3f){ 1.0f,-1.0f, 1.0f} ); + m4x3_expand_aabb_point( volume->to_world, bound, (v3f){ 1.0f,-1.0f,-1.0f} ); + m4x3_expand_aabb_point( volume->to_world, bound, (v3f){-1.0f, 1.0f, 1.0f} ); + m4x3_expand_aabb_point( volume->to_world, bound, (v3f){-1.0f, 1.0f,-1.0f} ); + m4x3_expand_aabb_point( volume->to_world, bound, (v3f){-1.0f,-1.0f, 1.0f} ); + m4x3_expand_aabb_point( volume->to_world, bound, (v3f){-1.0f,-1.0f,-1.0f} ); } VG_STATIC float volume_vg_centroid( void *user, u32 item_index, int axis ) { world_instance *world = user; - - ent_volume *volume_array = world_ent_array( world, k_ent_volume ), - *volume = volume_array + item_index; - - return volume->transform[3][axis]; + ent_volume *volume = mdl_arritm( &world->ent_volume, item_index ); + return volume->to_world[3][axis]; } VG_STATIC void volume_vg_swap( void *user, u32 ia, u32 ib ) { world_instance *world = user; - ent_volume *volume_array = world_ent_array( world, k_ent_volume ), - *a = volume_array + ia, - *b = volume_array + ib, + ent_volume *a = mdl_arritm( &world->ent_volume, ia ), + *b = mdl_arritm( &world->ent_volume, ib ), temp; temp = *a; @@ -52,12 +46,10 @@ VG_STATIC void volume_vg_swap( void *user, u32 ia, u32 ib ) VG_STATIC void volume_vg_debug( void *user, u32 item_index ) { world_instance *world = user; - ent_volume *volume_array = world_ent_array( world, k_ent_volume ), - *volume = volume_array + item_index; - - vg_line_boxf_transformed( volume->transform, (boxf){{-1.0f,-1.0f,-1.0f}, - { 1.0f, 1.0f, 1.0f}}, - 0xff00ff00 ); + ent_volume *volume = mdl_arritm( &world->ent_volume, item_index ); + vg_line_boxf_transformed( volume->to_world, (boxf){{-1.0f,-1.0f,-1.0f}, + { 1.0f, 1.0f, 1.0f}}, + 0xff00ff00 ); } VG_STATIC bh_system bh_system_volumes = @@ -69,6 +61,5 @@ VG_STATIC bh_system bh_system_volumes = .item_debug = volume_vg_debug, .cast_ray = NULL }; -#endif #endif /* WORLD_VOLUMES_H */