Implemented necessary free functions for OpenMesh Vectors
This commit is contained in:
@@ -718,6 +718,34 @@ noexcept(noexcept(_v1.swap(_v2))) {
|
|||||||
_v1.swap(_v2);
|
_v1.swap(_v2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// \relates OpenMesh::VectorT
|
||||||
|
/// non-member norm
|
||||||
|
template<typename Scalar, int DIM>
|
||||||
|
Scalar norm(const VectorT<Scalar, DIM>& _v) {
|
||||||
|
return _v.norm();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// \relates OpenMesh::VectorT
|
||||||
|
/// non-member sqrnorm
|
||||||
|
template<typename Scalar, int DIM>
|
||||||
|
Scalar sqrnorm(const VectorT<Scalar, DIM>& _v) {
|
||||||
|
return _v.sqrnorm();
|
||||||
|
}
|
||||||
|
/// \relates OpenMesh::VectorT
|
||||||
|
/// non-member vectorize
|
||||||
|
template<typename Scalar, int DIM, typename OtherScalar>
|
||||||
|
VectorT<Scalar, DIM>& vectorize(VectorT<Scalar, DIM>& _v, OtherScalar const& _val) {
|
||||||
|
return _v.vectorize(_val);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// \relates OpenMesh::VectorT
|
||||||
|
/// non-member normalize
|
||||||
|
template<typename Scalar, int DIM>
|
||||||
|
VectorT<Scalar, DIM>& normalize(VectorT<Scalar, DIM>& _v) {
|
||||||
|
return _v.normalize();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//== TYPEDEFS =================================================================
|
//== TYPEDEFS =================================================================
|
||||||
|
|
||||||
/** 1-byte signed vector */
|
/** 1-byte signed vector */
|
||||||
|
|||||||
@@ -539,7 +539,7 @@ public:
|
|||||||
calc_sector_normal(_heh, n0);
|
calc_sector_normal(_heh, n0);
|
||||||
calc_sector_normal(this->opposite_halfedge_handle(_heh), n1);
|
calc_sector_normal(this->opposite_halfedge_handle(_heh), n1);
|
||||||
calc_edge_vector(_heh, he);
|
calc_edge_vector(_heh, he);
|
||||||
Scalar denom = length(n0)*length(n1);
|
Scalar denom = norm(n0)*norm(n1);
|
||||||
if (denom == Scalar(0))
|
if (denom == Scalar(0))
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user