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
 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::MatrixBase< Eigen::MatrixXd > &P, const Eigen::MatrixBase< Eigen::VectorXi > &SC, const Eigen::MatrixBase< 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::MatrixBase< Eigen::MatrixXd > &P, const Eigen::MatrixBase< Eigen::VectorXi > &SC, const Eigen::MatrixBase< 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::MatrixBase< DerivedP > &P, const Eigen::MatrixBase< DerivedSC > &SC, const Eigen::MatrixBase< DerivedS > &S, const Eigen::MatrixBase< DerivedS > &E, const Eigen::MatrixBase< DerivedSC > &b, const Eigen::MatrixBase< Derivedw > &wShape, const Eigen::MatrixBase< 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::MatrixBase< DerivedP > &bc, const std::function< bool(const Eigen::MatrixBase< DerivedP > &, const Eigen::MatrixBase< DerivedSC > &, const Eigen::MatrixBase< DerivedS > &, Eigen::PlainObjectBase< DerivedP > &)> &local_projection, const Eigen::MatrixBase< DerivedP > &P0, const ShapeupData &sudata, const bool quietIterations, Eigen::PlainObjectBase< DerivedP > &P)
 This function solve the shapeup project optimization.