From 0d619f33d349ce957eee0a2144a0a0393831a927 Mon Sep 17 00:00:00 2001 From: Hans-Christian Ebke Date: Tue, 10 Nov 2015 16:08:53 +0100 Subject: [PATCH] C++11: Create version of homogenized() for C++11 branch (without macros). --- src/OpenMesh/Core/Geometry/VectorT_inc.hh | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/OpenMesh/Core/Geometry/VectorT_inc.hh b/src/OpenMesh/Core/Geometry/VectorT_inc.hh index bc7e1570..89c0d6d7 100644 --- a/src/OpenMesh/Core/Geometry/VectorT_inc.hh +++ b/src/OpenMesh/Core/Geometry/VectorT_inc.hh @@ -107,6 +107,17 @@ public: typename = typename std::enable_if::value>::type> constexpr VectorT(T... vs) : Base { static_cast(vs)...} { } + + template::type> + typename std::enable_if::type + homogenized() const { + return VectorT( + Base::values_[0]/Base::values_[3], + Base::values_[1]/Base::values_[3], + Base::values_[2]/Base::values_[3], + 1); + } + #else /// special constructor for 1D vectors explicit inline VectorT(const Scalar& v) { @@ -136,7 +147,7 @@ public: Base::values_[0]=v0; Base::values_[1]=v1; Base::values_[2]=v2; Base::values_[3]=v3; } - VectorT homogenized() { return VectorT(Base::values_[0]/Base::values_[3], Base::values_[1]/Base::values_[3], Base::values_[2]/Base::values_[3], 1); } + VectorT homogenized() const { return VectorT(Base::values_[0]/Base::values_[3], Base::values_[1]/Base::values_[3], Base::values_[2]/Base::values_[3], 1); } #endif #if DIM == 5