//============================================================================= // // OpenMesh // Copyright (C) 2003 by Computer Graphics Group, RWTH Aachen // www.openmesh.org // //----------------------------------------------------------------------------- // // License // // This library is free software; you can redistribute it and/or modify it // under the terms of the GNU Lesser General Public License as published // by the Free Software Foundation, version 2.1. // // This library is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // //----------------------------------------------------------------------------- // // $Revision$ // $Date$ // //============================================================================= //============================================================================= // // Helper Functions for binary reading / writing // //============================================================================= #ifndef OPENMESH_VECTOR_TRAITS_HH #define OPENMESH_VECTOR_TRAITS_HH //== INCLUDES ================================================================= #include #include #if defined(OM_CC_MIPS) # include #else # include #endif //== NAMESPACES =============================================================== namespace OpenMesh { //============================================================================= /** \name Provide a standardized access to relevant information about a vector type. */ //@{ //----------------------------------------------------------------------------- /** Helper class providing information about a vector type. * * If want to use a different vector type than the one provided %OpenMesh * you need to supply a specialization of this class for the new vector type. */ template struct vector_traits { /// Type of the vector class typedef typename T::vector_type vector_type; /// Type of the scalar value typedef typename T::value_type value_type; /// size/dimension of the vector static const size_t size_ = T::size_; /// size/dimension of the vector static size_t size() { return size_; } }; //@} //============================================================================= } // namespace OpenMesh //============================================================================= #endif // OPENMESH_MESHREADER_HH defined //=============================================================================