00001 #ifndef OPENTISSUE_CORE_GEOMETRY_GEOMETRY_VOLUME_SHAPE_H 00002 #define OPENTISSUE_CORE_GEOMETRY_GEOMETRY_VOLUME_SHAPE_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/geometry/geometry_base_shape.h> 00013 00014 00015 namespace OpenTissue 00016 { 00017 namespace geometry 00018 { 00025 template<typename math_types > 00026 class VolumeShape 00027 : public BaseShape< math_types > 00028 { 00029 public: 00030 00031 virtual ~VolumeShape() {} 00032 00033 public: 00034 00035 typedef typename math_types::real_type real_type; 00036 typedef typename math_types::vector3_type vector3_type; 00037 typedef typename math_types::matrix3x3_type matrix3x3_type; 00038 00044 virtual vector3_type center() const = 0; 00045 00051 virtual real_type volume() const = 0; 00052 00058 virtual real_type area() const = 0; 00059 00068 virtual real_type diameter() const = 0; 00069 00070 }; 00071 00072 } // namespace geometry 00073 00074 } // namespace OpenTissue 00075 00076 //OPENTISSUE_CORE_GEOMETRY_GEOMETRY_VOLUME_SHAPE_H 00077 #endif