16template<
typename DerivedV,
typename DerivedF,
typename DerivedL>
18 const Eigen::PlainObjectBase<DerivedF> &F,
19 Eigen::PlainObjectBase<DerivedL> &
L)
22 L =
L.array().sqrt().eval();
25template<
typename DerivedV,
typename DerivedF,
typename DerivedL>
27 const Eigen::PlainObjectBase<DerivedF> &F,
28 Eigen::PlainObjectBase<DerivedL> &
L)
31 const int m = F.rows();
32 assert(F.cols() == 3);
39 for (
const int i :
range) {
40 L(i, 0) = (
V.row(
F(i, 1)) -
V.row(
F(i, 2))).squaredNorm();
41 L(i, 1) = (
V.row(
F(i, 2)) -
V.row(
F(i, 0))).squaredNorm();
42 L(i, 2) = (
V.row(
F(i, 0)) -
V.row(
F(i, 1))).squaredNorm();
void edge_lengths(const Eigen::PlainObjectBase< DerivedV > &V, const Eigen::PlainObjectBase< DerivedF > &F, Eigen::PlainObjectBase< DerivedL > &L)
void squared_edge_lengths(const Eigen::PlainObjectBase< DerivedV > &V, const Eigen::PlainObjectBase< DerivedF > &F, Eigen::PlainObjectBase< DerivedL > &L)
CCL_NAMESPACE_BEGIN struct Window V