libigl v2.5.0
Loading...
Searching...
No Matches
shapeup.h File Reference
#include "min_quad_with_fixed.h"
#include "igl_inline.h"
#include "setdiff.h"
#include "cat.h"
#include <Eigen/Core>
#include <vector>
#include "PI.h"
#include "shapeup.cpp"

Go to the source code of this file.

Classes

struct  igl::ShapeupData
 Parameters and precomputed data for ShapeUp. More...
 

Namespaces

namespace  igl
 

Typedefs

using igl::shapeup_projection_function = std::function< bool(const Eigen::PlainObjectBase< Eigen::MatrixXd > &, const Eigen::PlainObjectBase< Eigen::VectorXi > &, const Eigen::PlainObjectBase< Eigen::MatrixXi > &, Eigen::PlainObjectBase< Eigen::MatrixXd > &)>
 Every function here defines a local projection for ShapeUp, and must have the following structure to qualify:
 

Functions

bool igl::shapeup_identity_projection (const Eigen::PlainObjectBase< Eigen::MatrixXd > &P, const Eigen::PlainObjectBase< Eigen::VectorXi > &SC, const Eigen::PlainObjectBase< Eigen::MatrixXi > &S, Eigen::PlainObjectBase< Eigen::MatrixXd > &projP)
 This projection does nothing but render points into projP.
 
bool igl::shapeup_regular_face_projection (const Eigen::PlainObjectBase< Eigen::MatrixXd > &P, const Eigen::PlainObjectBase< Eigen::VectorXi > &SC, const Eigen::PlainObjectBase< Eigen::MatrixXi > &S, Eigen::PlainObjectBase< Eigen::MatrixXd > &projP)
 the projection assumes that the sets are vertices of polygons in cyclic order
 
template<typename DerivedP , typename DerivedSC , typename DerivedS , typename Derivedw >
bool igl::shapeup_precomputation (const Eigen::PlainObjectBase< DerivedP > &P, const Eigen::PlainObjectBase< DerivedSC > &SC, const Eigen::PlainObjectBase< DerivedS > &S, const Eigen::PlainObjectBase< DerivedS > &E, const Eigen::PlainObjectBase< DerivedSC > &b, const Eigen::PlainObjectBase< Derivedw > &wShape, const Eigen::PlainObjectBase< Derivedw > &wSmooth, ShapeupData &sudata)
 This function precomputation the necessary matrices for the ShapeUp process, and prefactorizes them.
 
template<typename DerivedP , typename DerivedSC , typename DerivedS >
bool igl::shapeup_solve (const Eigen::PlainObjectBase< DerivedP > &bc, const std::function< bool(const Eigen::PlainObjectBase< DerivedP > &, const Eigen::PlainObjectBase< DerivedSC > &, const Eigen::PlainObjectBase< DerivedS > &, Eigen::PlainObjectBase< DerivedP > &)> &local_projection, const Eigen::PlainObjectBase< DerivedP > &P0, const ShapeupData &sudata, const bool quietIterations, Eigen::PlainObjectBase< DerivedP > &P)
 This function solve the shapeup project optimization.