Skip to content

shapeworks::MeshDomain

Inherits from shapeworks::ParticleDomain

Public Types

Name
using std::shared_ptr< MeshDomain > Pointer

Public Functions

Name
virtual DomainType GetDomainType() const override
virtual bool ApplyConstraints(PointType & p, int idx, bool dbg =false) const override
bool ApplyVectorConstraints(VectorDoubleType & gradE, const PointType & pos) const
virtual VectorDoubleType ProjectVectorToSurfaceTangent(VectorDoubleType & gradE, const PointType & pos, int idx) const override
virtual PointType UpdateParticlePosition(const PointType & point, int idx, VectorDoubleType & update) const override
virtual PointType GetPositionAfterSplit(const PointType & pt, const VectorDoubleType & local_direction, const VectorDoubleType & global_direction, double epsilon) const override
virtual void InvalidateParticlePosition(int idx) const override
virtual double GetCurvature(const PointType & p, int idx) const override
virtual double GetSurfaceMeanCurvature() const override
virtual double GetSurfaceStdDevCurvature() const override
virtual const PointType & GetLowerBound() const override
virtual const PointType & GetUpperBound() const override
virtual PointType GetZeroCrossingPoint() const override
virtual PointType GetValidLocationNear(PointType p) const override
virtual double GetSurfaceArea() const override
virtual double GetMaxDiameter() const override
virtual vnl_vector_fixed< float, DIMENSION > SampleGradientAtPoint(const PointType & point, int idx) const override
virtual vnl_vector_fixed< float, DIMENSION > SampleNormalAtPoint(const PointType & point, int idx) const override
virtual 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, DIMENSION > * out_grad =nullptr) const override
virtual double SquaredDistance(const PointType & a, int idx_a, const PointType & b, int idx_b) const override
virtual bool IsWithinDistance(const PointType & a, int idx_a, const PointType & b, int idx_b, double test_dist, double & distance) const override
virtual void DeleteImages() override
virtual void DeletePartialDerivativeImages() override
void SetMesh(std::shared_ptr< Surface > mesh_, double geodesic_remesh_percent)
void SetMesh(std::shared_ptr< Surface > surface, std::shared_ptr< Surface > geodesics_surface, std::shared_ptr< Mesh > sw_mesh, double surface_area)
std::shared_ptr< Mesh > GetSWMesh() const
virtual void UpdateZeroCrossingPoint() override
std::shared_ptr< Surface > get_surface() const

Additional inherited members

Public Types inherited from shapeworks::ParticleDomain

Name
using itk::Point< double, 3 > PointType
using vnl_matrix_fixed< float, 3, 3 > GradNType
using vnl_vector_fixed< double, 3 > VectorDoubleType
using vnl_vector_fixed< float, 3 > VectorFloatType

Public Functions inherited from shapeworks::ParticleDomain

Name
bool IsDomainFixed() const
std::shared_ptr< shapeworks::Constraints > GetConstraints() const
void SetDomainID(int id)
void SetDomainName(std::string name)

Protected Functions inherited from shapeworks::ParticleDomain

Name
ParticleDomain()
virtual ~ParticleDomain()

Protected Attributes inherited from shapeworks::ParticleDomain

Name
bool m_FixedDomain
int m_DomainID
std::string m_DomainName
std::shared_ptr< shapeworks::Constraints > constraints

Public Types Documentation

using Pointer

cpp using shapeworks::MeshDomain::Pointer = std::shared_ptr<MeshDomain>;

Public Functions Documentation

function GetDomainType

cpp inline virtual DomainType GetDomainType() const override

Reimplements: shapeworks::ParticleDomain::GetDomainType

function ApplyConstraints

cpp virtual bool ApplyConstraints( PointType & p, int idx, bool dbg =false ) const override

Reimplements: shapeworks::ParticleDomain::ApplyConstraints

Apply any constraints to the given point location. This should force the point to a position on the surface that satisfies all constraints.

function ApplyVectorConstraints

cpp bool ApplyVectorConstraints( VectorDoubleType & gradE, const PointType & pos ) const

function ProjectVectorToSurfaceTangent

cpp virtual VectorDoubleType ProjectVectorToSurfaceTangent( VectorDoubleType & gradE, const PointType & pos, int idx ) const override

Reimplements: shapeworks::ParticleDomain::ProjectVectorToSurfaceTangent

Projects the vector to the surface tangent at the point.

function UpdateParticlePosition

cpp virtual PointType UpdateParticlePosition( const PointType & point, int idx, VectorDoubleType & update ) const override

Reimplements: shapeworks::ParticleDomain::UpdateParticlePosition

Applies the update to the point and returns the new point position.

function GetPositionAfterSplit

cpp virtual PointType GetPositionAfterSplit( const PointType & pt, const VectorDoubleType & local_direction, const VectorDoubleType & global_direction, double epsilon ) const override

Reimplements: shapeworks::ParticleDomain::GetPositionAfterSplit

function InvalidateParticlePosition

cpp virtual void InvalidateParticlePosition( int idx ) const override

Reimplements: shapeworks::ParticleDomain::InvalidateParticlePosition

function GetCurvature

cpp inline virtual double GetCurvature( const PointType & p, int idx ) const override

Reimplements: shapeworks::ParticleDomain::GetCurvature

Used in ParticleMeanCurvatureAttribute

function GetSurfaceMeanCurvature

cpp inline virtual double GetSurfaceMeanCurvature() const override

Reimplements: shapeworks::ParticleDomain::GetSurfaceMeanCurvature

Used in ParticleMeanCurvatureAttribute

function GetSurfaceStdDevCurvature

cpp inline virtual double GetSurfaceStdDevCurvature() const override

Reimplements: shapeworks::ParticleDomain::GetSurfaceStdDevCurvature

Used in ParticleMeanCurvatureAttribute

function GetLowerBound

cpp inline virtual const PointType & GetLowerBound() const override

Reimplements: shapeworks::ParticleDomain::GetLowerBound

Gets the minimum x, y, z values of the bounding box for the domain. This is used for setting up the PowerOfTwoPointTree.

function GetUpperBound

cpp inline virtual const PointType & GetUpperBound() const override

Reimplements: shapeworks::ParticleDomain::GetUpperBound

Gets the maximum x, y, z values of the bounding box for the domain. This is used for setting up the PowerOfTwoPointTree.

function GetZeroCrossingPoint

cpp virtual PointType GetZeroCrossingPoint() const override

Reimplements: shapeworks::ParticleDomain::GetZeroCrossingPoint

Get any valid point on the domain. This is used to place the first particle.

function GetValidLocationNear

cpp virtual PointType GetValidLocationNear( PointType p ) const override

Reimplements: shapeworks::ParticleDomain::GetValidLocationNear

GetValidLocation returns a PointType location on the surface. Used for placing the first particle.

function GetSurfaceArea

cpp inline virtual double GetSurfaceArea() const override

Reimplements: shapeworks::ParticleDomain::GetSurfaceArea

Use for neighborhood radius.

function GetMaxDiameter

cpp virtual double GetMaxDiameter() const override

Reimplements: shapeworks::ParticleDomain::GetMaxDiameter

GetMaxDiameter returns the maximum diameter of the domain and is used for computing sigma

function SampleGradientAtPoint

cpp virtual vnl_vector_fixed< float, DIMENSION > SampleGradientAtPoint( const PointType & point, int idx ) const override

Reimplements: shapeworks::ParticleDomain::SampleGradientAtPoint

function SampleNormalAtPoint

cpp virtual vnl_vector_fixed< float, DIMENSION > SampleNormalAtPoint( const PointType & point, int idx ) const override

Reimplements: shapeworks::ParticleDomain::SampleNormalAtPoint

function SampleGradNAtPoint

cpp virtual GradNType SampleGradNAtPoint( const PointType & p, int idx ) const override

Reimplements: shapeworks::ParticleDomain::SampleGradNAtPoint

function Distance

cpp double Distance( const PointType & a, int idx_a, const PointType & b, int idx_b, vnl_vector_fixed< double, DIMENSION > * out_grad =nullptr ) const override

function SquaredDistance

cpp virtual double SquaredDistance( const PointType & a, int idx_a, const PointType & b, int idx_b ) const override

Reimplements: shapeworks::ParticleDomain::SquaredDistance

Squared Distance between locations is used for computing sigma.

function IsWithinDistance

cpp virtual bool IsWithinDistance( const PointType & a, int idx_a, const PointType & b, int idx_b, double test_dist, double & distance ) const override

Reimplements: shapeworks::ParticleDomain::IsWithinDistance

Returns whether or not the two points are separated by the given distance

function DeleteImages

cpp inline virtual void DeleteImages() override

Reimplements: shapeworks::ParticleDomain::DeleteImages

function DeletePartialDerivativeImages

cpp inline virtual void DeletePartialDerivativeImages() override

Reimplements: shapeworks::ParticleDomain::DeletePartialDerivativeImages

function SetMesh

cpp void SetMesh( std::shared_ptr< Surface > mesh_, double geodesic_remesh_percent )

function SetMesh

cpp void SetMesh( std::shared_ptr< Surface > surface, std::shared_ptr< Surface > geodesics_surface, std::shared_ptr< Mesh > sw_mesh, double surface_area )

function GetSWMesh

cpp inline std::shared_ptr< Mesh > GetSWMesh() const

function UpdateZeroCrossingPoint

cpp inline virtual void UpdateZeroCrossingPoint() override

Reimplements: shapeworks::ParticleDomain::UpdateZeroCrossingPoint

function get_surface

cpp inline std::shared_ptr< Surface > get_surface() const


Updated on 2026-03-31 at 16:02:10 +0000