ShapeOp  0.1.0
Public Member Functions | List of all members
ShapeOp::EdgeStrainConstraint Class Reference

Edge strain constraint. Constrains the distance between two points to a range. See [2] for more details. More...

#include <Constraint.h>

Inheritance diagram for ShapeOp::EdgeStrainConstraint:
ShapeOp::Constraint

Public Member Functions

 EdgeStrainConstraint (const std::vector< int > &idI, Scalar weight, const Matrix3X &positions, Scalar rangeMin=1.0, Scalar rangeMax=1.0)
 Constraint constructor. The target length is set to the distance of the two vertices in the parameter positions. The parameters rangeMin and rangeMax can be used to specify a target range for the distance (equivalent to edge length) [rangeMin*distance,rangeMax*distance]. More...
 
virtual void project (const Matrix3X &positions, Matrix3X &projections) const overridefinal
 Find the closest configuration from the input positions that satisfy the constraint.
 
virtual void addConstraint (std::vector< Triplet > &triplets, int &idO) const overridefinal
 Add the constraint to the linear system.
 
void setEdgeLength (Scalar length)
 Set a new edge length.
 
void setRangeMin (Scalar rMin)
 Set a new range minimum.
 
void setRangeMax (Scalar rMax)
 Set a new range maximum.
 
- Public Member Functions inherited from ShapeOp::Constraint
 Constraint (const std::vector< int > &idI, Scalar weight)
 Constraint constructor. More...
 
std::size_t nIndices () const
 Number of indices of vertices involved in the constraint.
 

Additional Inherited Members

- Static Public Member Functions inherited from ShapeOp::Constraint
static std::shared_ptr< ConstraintshapeConstraintFactory (const std::string &ConstraintType, const std::vector< int > &idI, Scalar weight, const Matrix3X &positions)
 Creates a constraint from a string type, a number of indices, a weight and the initial point positions. More...
 
- Protected Attributes inherited from ShapeOp::Constraint
std::vector< int > idI_
 ids of the vertices involved in this constraint.
 
Scalar weight_
 weight for the constraint.
 
int idO_
 location of this constraint in the linear system.
 

Detailed Description

Edge strain constraint. Constrains the distance between two points to a range. See [2] for more details.

Constructor & Destructor Documentation

SHAPEOP_INLINE ShapeOp::EdgeStrainConstraint::EdgeStrainConstraint ( const std::vector< int > &  idI,
Scalar  weight,
const Matrix3X positions,
Scalar  rangeMin = 1.0,
Scalar  rangeMax = 1.0 
)

Constraint constructor. The target length is set to the distance of the two vertices in the parameter positions. The parameters rangeMin and rangeMax can be used to specify a target range for the distance (equivalent to edge length) [rangeMin*distance,rangeMax*distance].

Parameters
idIare two indices of the vertices of the edge.
weightThe weight of the constraint to be added relative to the other constraints.
positionsThe positions of all the n vertices stacked in a 3 by n matrix.
rangeMinThe factor to determine the minimal distance from the target length: rangeMin*distance
rangeMaxThe factor to determine the maximal distance from the target length: rangeMax*distance

The documentation for this class was generated from the following files: