diff --git a/src/OpenMesh/Core/Geometry/NormalConeT.hh b/src/OpenMesh/Core/Geometry/NormalConeT.hh index 9baaf588..0b1cc6a1 100644 --- a/src/OpenMesh/Core/Geometry/NormalConeT.hh +++ b/src/OpenMesh/Core/Geometry/NormalConeT.hh @@ -60,6 +60,7 @@ #include +#include //== NAMESPACES =============================================================== @@ -77,13 +78,14 @@ namespace OpenMesh { the center normal and the opening angle. **/ -template +template class NormalConeT { public: // typedefs - typedef VectorT Vec3; + typedef typename vector_traits::value_type Scalar; + typedef Vector Vec3; //! default constructor (not initialized) diff --git a/src/OpenMesh/Core/Geometry/NormalConeT_impl.hh b/src/OpenMesh/Core/Geometry/NormalConeT_impl.hh index 487e2490..ed9ce908 100644 --- a/src/OpenMesh/Core/Geometry/NormalConeT_impl.hh +++ b/src/OpenMesh/Core/Geometry/NormalConeT_impl.hh @@ -70,8 +70,8 @@ namespace OpenMesh { //== IMPLEMENTATION ========================================================== -template -NormalConeT:: +template +NormalConeT:: NormalConeT(const Vec3& _center_normal, Scalar _angle) : center_normal_(_center_normal), angle_(_angle) { @@ -81,9 +81,9 @@ NormalConeT(const Vec3& _center_normal, Scalar _angle) //---------------------------------------------------------------------------- -template -Scalar -NormalConeT:: +template +typename NormalConeT::Scalar +NormalConeT:: max_angle(const Vec3& _norm) const { Scalar dotp = (center_normal_ | _norm); @@ -95,9 +95,9 @@ max_angle(const Vec3& _norm) const //---------------------------------------------------------------------------- -template -Scalar -NormalConeT:: +template +typename NormalConeT::Scalar +NormalConeT:: max_angle(const NormalConeT& _cone) const { Scalar dotp = (center_normal_ | _cone.center_normal_); @@ -112,12 +112,12 @@ max_angle(const NormalConeT& _cone) const //---------------------------------------------------------------------------- -template +template void -NormalConeT:: +NormalConeT:: merge(const NormalConeT& _cone) { - Scalar dotp = (center_normal_ | _cone.center_normal_); + Scalar dotp = dot(center_normal_, _cone.center_normal_); if (fabs(dotp) < 0.99999f) { diff --git a/src/OpenMesh/Tools/Decimater/ModNormalDeviationT.hh b/src/OpenMesh/Tools/Decimater/ModNormalDeviationT.hh index 9966d826..b3ea88e7 100644 --- a/src/OpenMesh/Tools/Decimater/ModNormalDeviationT.hh +++ b/src/OpenMesh/Tools/Decimater/ModNormalDeviationT.hh @@ -97,7 +97,7 @@ public: typedef typename Mesh::VertexHandle VertexHandle; typedef typename Mesh::FaceHandle FaceHandle; typedef typename Mesh::EdgeHandle EdgeHandle; - typedef NormalConeT NormalCone; + typedef NormalConeT NormalCone;