https://github.com/HTDerekLiu/surface_multigrid_code
Raw File
Tip revision: a827578755d864df68b103c71048c7da7a00ce59 authored by HTDerekLiu on 09 August 2021, 18:36:04 UTC
add a faster example
Tip revision: a827578
normalize_unit_area.cpp
#include "normalize_unit_area.h"

void normalize_unit_area(
	Eigen::MatrixXd & V,
	const Eigen::MatrixXi & F)
{
    using namespace Eigen;
    using namespace std;

    VectorXd FA;
    igl::doublearea(V,F,FA);

    double scale = sqrt(FA.sum() / 2);
    V /=  scale; 

    // VectorXd FA_scaled;
    // igl::doublearea(V,F,FA_scaled);
    // cout << FA_scaled.sum() / 2 << endl;

    // for (int ii=0; ii<V.cols(); ii++)
    //     V.col(ii) = V.col(ii).array() - U.col(ii).mean();
     V.col(0) = V.col(0).array() - V.col(0).mean();
     V.col(1) = V.col(1).array() - V.col(1).mean();
     V.col(2) = V.col(2).array() - V.col(2).minCoeff();
}
back to top