Libs/Optimize/Domain/MeshDomain.h
Namespaces
| Name |
|---|
| shapeworks User usage reporting (telemetry) |
Classes
| Name | |
|---|---|
| class | shapeworks::MeshDomain |
Source code
```cpp
pragma once
include
include "Surface.h"
include "ParticleDomain.h"
namespace shapeworks {
class MeshDomain : public ParticleDomain {
public:
using Pointer = std::shared_ptr
DomainType GetDomainType() const override { return DomainType::Mesh; }
bool ApplyConstraints(PointType &p, int idx, bool dbg = false) const override; bool ApplyVectorConstraints(VectorDoubleType &gradE, const PointType &pos) const; VectorDoubleType ProjectVectorToSurfaceTangent(VectorDoubleType &gradE, const PointType &pos, int idx) const override; PointType UpdateParticlePosition(const PointType &point, int idx, VectorDoubleType &update) const override; PointType GetPositionAfterSplit(const PointType &pt, const VectorDoubleType &local_direction, const VectorDoubleType &global_direction, double epsilon) const override;
virtual void InvalidateParticlePosition(int idx) const override;
double GetCurvature(const PointType &p, int idx) const override { // TODO Why not return the actual curvature return GetSurfaceMeanCurvature(); }
inline double GetSurfaceMeanCurvature() const override { // This function is used by MeanCurvatureAttribute which is used for good/bad assessment // These arbitrary values should eventually be replaced with actual computation return 0.15; }
inline double GetSurfaceStdDevCurvature() const override { // This function is used by MeanCurvatureAttribute which is used for good/bad assessment // These arbitrary values should eventually be replaced with actual computation return 0.02; }
const PointType &GetLowerBound() const override { return surface_->get_mesh_lower_bound(); } const PointType &GetUpperBound() const override { return surface_->get_mesh_upper_bound(); }
PointType GetZeroCrossingPoint() const override;
PointType GetValidLocationNear(PointType p) const override;
double GetSurfaceArea() const override { return surface_area_; }
double GetMaxDiameter() const override;
vnl_vector_fixed
vnl_vector_fixed
GradNType SampleGradNAtPoint(const PointType &p, int idx) const override;
double Distance(const PointType &a, int idx_a, const PointType &b, int idx_b,
vnl_vector_fixed
double SquaredDistance(const PointType &a, int idx_a, const PointType &b, int idx_b) const override;
bool IsWithinDistance(const PointType &a, int idx_a, const PointType &b, int idx_b, double test_dist, double &dist) const override;
void DeleteImages() override { // TODO Change this to a generic delete function }
void DeletePartialDerivativeImages() override { // TODO Change this to a generic delete function }
void SetMesh(std::shared_ptr
std::shared_ptr
void UpdateZeroCrossingPoint() override {}
std::shared_ptr
private:
std::shared_ptr
} // namespace shapeworks ```
Updated on 2026-03-31 at 16:02:11 +0000