Libs/Optimize/Constraints/FreeFormConstraint.h
Namespaces
| Name |
|---|
| shapeworks User usage reporting (telemetry) |
Classes
| Name | |
|---|---|
| class | shapeworks::FreeFormConstraint |
Source code
```cpp
pragma once
include "Constraint.h"
include "Libs/Mesh/Mesh.h"
class vtkFloatArray;
namespace shapeworks {
class FreeFormConstraint : public Constraint { public: FreeFormConstraint() {}
void setMesh(std::shared_ptr
std::shared_ptr
bool readyForOptimize() const;
bool isViolated(const Eigen::Vector3d& pt) const override;
void print() const override { std::cout << "FF" << std::endl; }
Eigen::Vector3d constraintGradient(const Eigen::Vector3d& pt) const override { return mesh_->getFFCGradient(pt); }
double constraintEval(const Eigen::Vector3d& pt) const override { return mesh_->getFFCValue(pt); }
void setDefinition(vtkSmartPointer
vtkSmartPointer
void applyToPolyData(vtkSmartPointer
std::vector
Eigen::Vector3d getQueryPoint() { return queryPoint_; };
void setQueryPoint(Eigen::Vector3d queryPoint) { queryPoint_ = queryPoint; };
void computeBoundaries();
void setInoutPolyData(vtkSmartPointer
vtkSmartPointer
void createInoutPolyData();
bool isSet();
void setPainted(bool painted);
void reset();
void computeGradientFields(std::shared_ptr
void convertLegacyFFC(vtkSmartPointer
private:
vtkSmartPointer
std::vector
vtkFloatArray getInOutScalars();
vtkFloatArray createFFCPaint(vtkSmartPointer
std::shared_ptr
vtkSmartPointer
std::vector
} // namespace shapeworks ```
Updated on 2026-03-31 at 16:02:11 +0000