00001 #ifndef OPENTISSUE_CORE_MATH_INTERVAL_INTERVAL_MATRIX_H 00002 #define OPENTISSUE_CORE_MATH_INTERVAL_INTERVAL_MATRIX_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/interval/interval_vector.h> 00013 #include <OpenTissue/core/math/math_matrix3x3.h> 00014 00015 namespace OpenTissue 00016 { 00017 namespace math 00018 { 00019 namespace interval 00020 { 00021 00033 template<typename interval_type> 00034 inline OpenTissue::math::Vector3< interval_type > operator*( OpenTissue::math::Matrix3x3< interval_type > const & m, OpenTissue::math::Vector3<typename interval_type::base_type> const & v) 00035 { 00036 typedef OpenTissue::math::Vector3< interval_type > interval_vector3_type; 00037 return interval_vector3_type( 00038 m.row(0) * v 00039 , m.row(1) * v 00040 , m.row(2) * v 00041 ); 00042 } 00043 00044 } // namespace interval 00045 } // namespace math 00046 } // namespace OpenTissue 00047 00048 // OPENTISSUE_CORE_MATH_INTERVAL_INTERVAL_MATRIX_H 00049 #endif