Skip to content

shapeworks::FreeFormConstraint

More...

#include <FreeFormConstraint.h>

Inherits from shapeworks::Constraint

Public Functions

Name
FreeFormConstraint()
void setMesh(std::shared_ptr< shapeworks::Mesh > mesh)
Sets the mesh that defines the FFC.
std::shared_ptr< shapeworks::Mesh > getMesh()
Returns the mesh that defines the FFC.
bool readyForOptimize() const
Prepares for optimize.
virtual bool isViolated(const Eigen::Vector3d & pt) const override
Returns if pt in Eigen format is violated by the constraint.
virtual void print() const override
Prints the constraint neatly.
virtual Eigen::Vector3d constraintGradient(const Eigen::Vector3d & pt) const override
Returns the gradient of the constraint.
virtual double constraintEval(const Eigen::Vector3d & pt) const override
Returns the evaluation on the constraint, i.e. the signed distance to the constraint boundary.
void setDefinition(vtkSmartPointer< vtkPolyData > polyData)
Set polydata where per-vertex free form constraint definition exists.
vtkSmartPointer< vtkPolyData > getDefinition()
Get polydata where per-vertex free form constraint definition exists.
void applyToPolyData(vtkSmartPointer< vtkPolyData > polyData)
Apply the free form constraint to a polydata.
std::vector< std::vector< Eigen::Vector3d > > & boundaries()
Eigen::Vector3d getQueryPoint()
void setQueryPoint(Eigen::Vector3d queryPoint)
void computeBoundaries()
void setInoutPolyData(vtkSmartPointer< vtkPolyData > polyData)
Set the in/out polydata.
vtkSmartPointer< vtkPolyData > getInoutPolyData()
Get the in/out polydata.
void createInoutPolyData()
Create the in/out poly data from the definition poly data.
bool isSet()
Return if this FFC is set or not.
void setPainted(bool painted)
Set if this FFC has paint on it or not.
void reset()
Reset to initial state.
void computeGradientFields(std::shared_ptr< Mesh > mesh)
Compute gradient fields for a mesh.
void convertLegacyFFC(vtkSmartPointer< vtkPolyData > polyData)
Convert legacy FFC to new format.

Additional inherited members

Public Functions inherited from shapeworks::Constraint

Name
void setMus(std::vector< double > inmu)
Initializes mu.
std::vector< double > getMus()
Gets mu.
void updateMu(const Eigen::Vector3d & pt, double C, size_t index)
Updates the value of mu according to the augmented lagrangian update.
Eigen::Vector3d lagragianGradient(const Eigen::Vector3d & pt, double C, size_t index) const
Computes the lagrangian gradient based on lagrangian inequality equations. NOTE: Not actually lagrangian. We are using quadratic penalty and not lagrangian because it works better.

Protected Functions inherited from shapeworks::Constraint

Name
int sgn(double val)
Returns the sign of the double.

Protected Attributes inherited from shapeworks::Constraint

Name
std::vector< double > mus_
Mu is the lagrangian momentum term.

Detailed Description

class shapeworks::FreeFormConstraint;

Encapsulate functionality related to free-form constraints (FFC). Inherits from Constraint. See [Constraint.h] for more information

Public Functions Documentation

function FreeFormConstraint

inline FreeFormConstraint()

function setMesh

inline void setMesh(
    std::shared_ptr< shapeworks::Mesh > mesh
)

Sets the mesh that defines the FFC.

function getMesh

inline std::shared_ptr< shapeworks::Mesh > getMesh()

Returns the mesh that defines the FFC.

function readyForOptimize

bool readyForOptimize() const

Prepares for optimize.

function isViolated

virtual bool isViolated(
    const Eigen::Vector3d & pt
) const override

Returns if pt in Eigen format is violated by the constraint.

Reimplements: shapeworks::Constraint::isViolated

function print

inline virtual void print() const override

Prints the constraint neatly.

Reimplements: shapeworks::Constraint::print

function constraintGradient

inline virtual Eigen::Vector3d constraintGradient(
    const Eigen::Vector3d & pt
) const override

Returns the gradient of the constraint.

Reimplements: shapeworks::Constraint::constraintGradient

function constraintEval

inline virtual double constraintEval(
    const Eigen::Vector3d & pt
) const override

Returns the evaluation on the constraint, i.e. the signed distance to the constraint boundary.

Reimplements: shapeworks::Constraint::constraintEval

function setDefinition

void setDefinition(
    vtkSmartPointer< vtkPolyData > polyData
)

Set polydata where per-vertex free form constraint definition exists.

function getDefinition

inline vtkSmartPointer< vtkPolyData > getDefinition()

Get polydata where per-vertex free form constraint definition exists.

function applyToPolyData

void applyToPolyData(
    vtkSmartPointer< vtkPolyData > polyData
)

Apply the free form constraint to a polydata.

function boundaries

std::vector< std::vector< Eigen::Vector3d > > & boundaries()

Deprecated:

Access the set of boundaries

function getQueryPoint

inline Eigen::Vector3d getQueryPoint()

Deprecated:

Get query (inside) point

function setQueryPoint

inline void setQueryPoint(
    Eigen::Vector3d queryPoint
)

Deprecated:

Set query (inside) point

function computeBoundaries

void computeBoundaries()

Deprecated:

Compute boundaries from definition polydata with ffc_paint scalars

function setInoutPolyData

inline void setInoutPolyData(
    vtkSmartPointer< vtkPolyData > polyData
)

Set the in/out polydata.

function getInoutPolyData

inline vtkSmartPointer< vtkPolyData > getInoutPolyData()

Get the in/out polydata.

function createInoutPolyData

void createInoutPolyData()

Create the in/out poly data from the definition poly data.

function isSet

bool isSet()

Return if this FFC is set or not.

function setPainted

void setPainted(
    bool painted
)

Set if this FFC has paint on it or not.

function reset

void reset()

Reset to initial state.

function computeGradientFields

void computeGradientFields(
    std::shared_ptr< Mesh > mesh
)

Compute gradient fields for a mesh.

function convertLegacyFFC

void convertLegacyFFC(
    vtkSmartPointer< vtkPolyData > polyData
)

Convert legacy FFC to new format.


Updated on 2024-03-17 at 12:58:44 -0600