00001 #ifndef OPENTISSUE_COLLISION_COLLISION_GEOMETRY_INTERFACE_H 00002 #define OPENTISSUE_COLLISION_COLLISION_GEOMETRY_INTERFACE_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/utility/utility_class_id.h> 00013 00014 namespace OpenTissue 00015 { 00016 namespace collision 00017 { 00018 00019 00032 template< typename math_types > 00033 class GeometryInterface 00034 : virtual public OpenTissue::utility::ClassIDInterface 00035 { 00036 public: 00037 00038 typedef typename math_types::vector3_type vector3_type; 00039 typedef typename math_types::matrix3x3_type matrix3x3_type; 00040 00041 public: 00042 00054 virtual void compute_collision_aabb( 00055 vector3_type const & r 00056 , matrix3x3_type const & R 00057 , vector3_type & min_coord 00058 , vector3_type & max_coord 00059 ) const = 0; 00060 00061 }; 00062 00063 } // namespace collision 00064 00065 } // namespace OpenTissue 00066 00067 // OPENTISSUE_COLLISION_COLLISION_GEOMETRY_INTERFACE_H 00068 #endif