50 #ifndef OPENMESH_VECTORCAST_HH
51 #define OPENMESH_VECTORCAST_HH
57 #include <OpenMesh/Core/System/config.h>
58 #include <OpenMesh/Core/Utils/vector_traits.hh>
59 #include <OpenMesh/Core/Utils/GenProg.hh>
62 #include <OpenMesh/Core/Geometry/VectorT.hh>
81 template <
typename src_t,
typename dst_t>
82 inline void vector_copy(
const src_t &_src, dst_t &_dst, GenProg::Int2Type<1> )
87 template <
typename src_t,
typename dst_t>
88 inline void vector_copy(
const src_t &_src, dst_t &_dst, GenProg::Int2Type<2> )
94 template <
typename src_t,
typename dst_t>
95 inline void vector_copy(
const src_t &_src, dst_t &_dst, GenProg::Int2Type<3> )
102 template <
typename src_t,
typename dst_t>
103 inline void vector_copy(
const src_t &_src, dst_t &_dst, GenProg::Int2Type<4> )
111 template <
typename src_t,
typename dst_t>
112 inline void vector_copy(
const src_t &_src, dst_t &_dst, GenProg::Int2Type<5> )
121 template <
typename src_t,
typename dst_t>
122 inline void vector_copy(
const src_t &_src, dst_t &_dst, GenProg::Int2Type<6> )
134 #ifndef DOXY_IGNORE_THIS
136 template <
typename dst_t,
typename src_t>
139 typedef dst_t return_type;
141 inline static return_type cast(
const src_t& _src)
144 vector_copy(_src, dst, GenProg::Int2Type<vector_traits<dst_t>::size_>());
149 #if !defined(OM_CC_MSVC)
150 template <
typename dst_t>
151 struct vector_caster<dst_t,dst_t>
153 typedef const dst_t& return_type;
155 inline static return_type cast(
const dst_t& _src)
167 template <
typename dst_t,
typename src_t>
169 typename vector_caster<dst_t, src_t>::return_type
172 return vector_caster<dst_t, src_t>::cast(_src);
182 #endif // OPENMESH_MESHREADER_HH defined