55#if (_MSC_VER >= 1900 || __cplusplus > 199711L || defined(__GXX_EXPERIMENTAL_CXX0X__)) && !defined(OPENVOLUMEMESH_VECTOR_LEGACY)
56#include "Vector11T.hh"
61#ifndef OPENVOLUMEMESH_VECTOR_HH
62#define OPENVOLUMEMESH_VECTOR_HH
72#if defined(__GNUC__) && defined(__SSE__)
79namespace OpenVolumeMesh {
96template<
typename Scalar,
int N>
class VectorDataT {
102#if defined(__GNUC__) && defined(__SSE__)
105template<>
class VectorDataT<float, 4> {
122#define TEMPLATE_HEADER template <typename Scalar, int N>
123#define CLASSNAME VectorT
124#define DERIVED VectorDataT<Scalar,N>
125#define unroll(expr) for (int i=0; i<N; ++i) expr(i)
132#include "VectorT_inc.hh"
135#undef TEMPLATE_HEADER
145#define TEMPLATE_HEADER template <typename Scalar>
146#define CLASSNAME VectorT<Scalar,DIM>
147#define DERIVED VectorDataT<Scalar,DIM>
151#define unroll(expr) expr(0) expr(1)
152#define unroll_comb(expr, op) expr(0) op expr(1)
153#define unroll_csv(expr) expr(0), expr(1)
154#include "VectorT_inc.hh"
161#define unroll(expr) expr(0) expr(1) expr(2)
162#define unroll_comb(expr, op) expr(0) op expr(1) op expr(2)
163#define unroll_csv(expr) expr(0), expr(1), expr(2)
164#include "VectorT_inc.hh"
171#define unroll(expr) expr(0) expr(1) expr(2) expr(3)
172#define unroll_comb(expr, op) expr(0) op expr(1) op expr(2) op expr(3)
173#define unroll_csv(expr) expr(0), expr(1), expr(2), expr(3)
174#include "VectorT_inc.hh"
181#define unroll(expr) expr(0) expr(1) expr(2) expr(3) expr(4)
182#define unroll_comb(expr, op) expr(0) op expr(1) op expr(2) op expr(3) op expr(4)
183#define unroll_csv(expr) expr(0), expr(1), expr(2), expr(3), expr(4)
184#include "VectorT_inc.hh"
191#define unroll(expr) expr(0) expr(1) expr(2) expr(3) expr(4) expr(5)
192#define unroll_comb(expr, op) expr(0) op expr(1) op expr(2) op expr(3) op expr(4) op expr(5)
193#define unroll_csv(expr) expr(0), expr(1), expr(2), expr(3), expr(4), expr(5)
194#include "VectorT_inc.hh"
201#undef TEMPLATE_HEADER
215 values_[2]*_rhs.values_[0]-values_[0]*_rhs.values_[2],
216 values_[0]*_rhs.values_[1]-values_[1]*_rhs.values_[0]);
227 values_[2]*_rhs.values_[0]-values_[0]*_rhs.values_[2],
228 values_[0]*_rhs.values_[1]-values_[1]*_rhs.values_[0]);
238template<
typename Scalar1,
typename Scalar2,
int N>
246template<
typename Scalar,
int N>
255template<
typename Scalar,
int N>
374const std::string typeName();
376template <>
const std::string typeName<Geometry::Vec2f>();
377template <>
const std::string typeName<Geometry::Vec2d>();
378template <>
const std::string typeName<Geometry::Vec2i>();
379template <>
const std::string typeName<Geometry::Vec2ui>();
381template <>
const std::string typeName<Geometry::Vec3f>();
382template <>
const std::string typeName<Geometry::Vec3d>();
383template <>
const std::string typeName<Geometry::Vec3i>();
384template <>
const std::string typeName<Geometry::Vec3ui>();
386template <>
const std::string typeName<Geometry::Vec4f>();
387template <>
const std::string typeName<Geometry::Vec4d>();
388template <>
const std::string typeName<Geometry::Vec4i>();
389template <>
const std::string typeName<Geometry::Vec4ui>();
Definition Vector11T.hh:78
auto operator%(const VectorT< OtherScalar, DIM > &_rhs) const -> typename std::enable_if< DIM==3, VectorT< decltype(this->values_[0] *_rhs[0] - this->values_[0] *_rhs[0]), DIM > >::type
Definition Vector11T.hh:362