00001 #ifndef OPENTISSUE_COLLISION_AABB_TREE_AABB_TREE_GEOMETRY_H 00002 #define OPENTISSUE_COLLISION_AABB_TREE_AABB_TREE_GEOMETRY_H 00003 // 00004 // OpenTissue Template Library 00005 // - A generic toolbox for physics-based modeling and simulation. 00006 // Copyright (C) 2008 Department of Computer Science, University of Copenhagen. 00007 // 00008 // OTTL is licensed under zlib: http://opensource.org/licenses/zlib-license.php 00009 // 00010 #include <OpenTissue/configuration.h> 00011 00012 #include <OpenTissue/core/math/math_basic_types.h> 00013 #include <OpenTissue/core/geometry/geometry_aabb.h> 00014 #include <OpenTissue/collision/aabb_tree/aabb_tree_triangle.h> 00015 #include <OpenTissue/collision/bvh/bvh.h> 00016 00017 namespace OpenTissue 00018 { 00019 namespace aabb_tree 00020 { 00021 00022 template< 00023 typename real_type_ 00024 , typename vertex_data_type_ 00025 > 00026 class Geometry 00027 { 00028 public: 00029 00030 typedef real_type_ real_type; 00031 typedef OpenTissue::math::BasicMathTypes<real_type,size_t> math_types; 00032 typedef vertex_data_type_ vertex_data_type; 00033 typedef OpenTissue::geometry::AABB<math_types> volume_type; 00034 00035 typedef OpenTissue::aabb_tree::TriangleWrapper<vertex_data_type> geometry_type; 00036 typedef OpenTissue::bvh::BoundingVolumeHierarchy<volume_type,geometry_type> bvh_type; 00037 00038 public: 00039 00040 bvh_type m_bvh; 00041 00042 }; 00043 00044 } // namespace aabb_tree 00045 } // namespace OpenTissue 00046 00047 // OPENTISSUE_COLLISION_AABB_TREE_AABB_TREE_GEOMETRY_H 00048 #endif