Skip to content

itk::MeshDomain

Inherits from itk::ParticleDomain, DataObject

Public Types

Name
typedef SmartPointer< MeshDomain > Pointer
typedef ParticleDomain::PointType PointType

Public Functions

Name
itkSimpleNewMacro(MeshDomain )
virtual shapeworks::DomainType GetDomainType() const override
virtual bool ApplyConstraints(PointType & p, int idx, bool dbg =false) const override
bool ApplyVectorConstraints(vnl_vector_fixed< double, DIMENSION > & gradE, const PointType & pos) const
virtual vnl_vector_fixed< double, DIMENSION > ProjectVectorToSurfaceTangent(vnl_vector_fixed< double, DIMENSION > & gradE, const PointType & pos, int idx) const override
virtual PointType UpdateParticlePosition(const PointType & point, int idx, vnl_vector_fixed< double, DIMENSION > & update) 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
virtual 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< shapeworks::MeshWrapper > mesh_)
virtual void UpdateZeroCrossingPoint() override

Protected Functions

Name
MeshDomain()
virtual ~MeshDomain()
void PrintSelf(std::ostream & os, Indent indent) const

Additional inherited members

Public Types inherited from itk::ParticleDomain

Name
typedef vnl_matrix_fixed< float, DIMENSION, DIMENSION > GradNType

Public Functions inherited from itk::ParticleDomain

Name
bool IsDomainFixed() const
std::shared_ptr< Constraints > GetConstraints() const
virtual PointType GetPositionAfterSplit(const PointType & pt, const vnl_vector_fixed< double, 3 > & random, double epsilon) const
void SetDomainID(int id)
void SetDomainName(std::string name)

Protected Functions inherited from itk::ParticleDomain

Name
ParticleDomain()
virtual ~ParticleDomain()

Protected Attributes inherited from itk::ParticleDomain

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

Public Types Documentation

typedef Pointer

typedef SmartPointer<MeshDomain> itk::MeshDomain::Pointer;

Standard class typedefs

typedef PointType

typedef ParticleDomain::PointType itk::MeshDomain::PointType;

Point type used to store particle locations.

Public Functions Documentation

function itkSimpleNewMacro

itkSimpleNewMacro(
    MeshDomain 
)

function GetDomainType

inline virtual shapeworks::DomainType GetDomainType() const override

Reimplements: itk::ParticleDomain::GetDomainType

function ApplyConstraints

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

Reimplements: itk::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

bool ApplyVectorConstraints(
    vnl_vector_fixed< double, DIMENSION > & gradE,
    const PointType & pos
) const

function ProjectVectorToSurfaceTangent

virtual vnl_vector_fixed< double, DIMENSION > ProjectVectorToSurfaceTangent(
    vnl_vector_fixed< double, DIMENSION > & gradE,
    const PointType & pos,
    int idx
) const override

Reimplements: itk::ParticleDomain::ProjectVectorToSurfaceTangent

Projects the vector to the surface tangent at the point.

function UpdateParticlePosition

virtual PointType UpdateParticlePosition(
    const PointType & point,
    int idx,
    vnl_vector_fixed< double, DIMENSION > & update
) const override

Reimplements: itk::ParticleDomain::UpdateParticlePosition

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

function InvalidateParticlePosition

virtual void InvalidateParticlePosition(
    int idx
) const override

Reimplements: itk::ParticleDomain::InvalidateParticlePosition

function GetCurvature

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

Reimplements: itk::ParticleDomain::GetCurvature

Used in ParticleMeanCurvatureAttribute

function GetSurfaceMeanCurvature

inline virtual double GetSurfaceMeanCurvature() const override

Reimplements: itk::ParticleDomain::GetSurfaceMeanCurvature

Used in ParticleMeanCurvatureAttribute

function GetSurfaceStdDevCurvature

inline virtual double GetSurfaceStdDevCurvature() const override

Reimplements: itk::ParticleDomain::GetSurfaceStdDevCurvature

Used in ParticleMeanCurvatureAttribute

function GetLowerBound

inline virtual const PointType & GetLowerBound() const override

Reimplements: itk::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

inline virtual const PointType & GetUpperBound() const override

Reimplements: itk::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

inline virtual PointType GetZeroCrossingPoint() const override

Reimplements: itk::ParticleDomain::GetZeroCrossingPoint

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

function GetValidLocationNear

inline virtual PointType GetValidLocationNear(
    PointType p
) const override

Reimplements: itk::ParticleDomain::GetValidLocationNear

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

function GetSurfaceArea

inline virtual double GetSurfaceArea() const override

Reimplements: itk::ParticleDomain::GetSurfaceArea

Use for neighborhood radius.

function GetMaxDiameter

virtual double GetMaxDiameter() const override

Reimplements: itk::ParticleDomain::GetMaxDiameter

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

function SampleGradientAtPoint

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

Reimplements: itk::ParticleDomain::SampleGradientAtPoint

function SampleNormalAtPoint

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

Reimplements: itk::ParticleDomain::SampleNormalAtPoint

function SampleGradNAtPoint

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

Reimplements: itk::ParticleDomain::SampleGradNAtPoint

function Distance

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

Reimplements: itk::ParticleDomain::Distance

Distance between locations is used for computing energy and neighborhoods. Optionally return the gradient of the distance

function SquaredDistance

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

Reimplements: itk::ParticleDomain::SquaredDistance

Squared Distance between locations is used for computing sigma.

function IsWithinDistance

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

Reimplements: itk::ParticleDomain::IsWithinDistance

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

function DeleteImages

inline virtual void DeleteImages() override

Reimplements: itk::ParticleDomain::DeleteImages

function DeletePartialDerivativeImages

inline virtual void DeletePartialDerivativeImages() override

Reimplements: itk::ParticleDomain::DeletePartialDerivativeImages

function SetMesh

inline void SetMesh(
    std::shared_ptr< shapeworks::MeshWrapper > mesh_
)

function UpdateZeroCrossingPoint

inline virtual void UpdateZeroCrossingPoint() override

Reimplements: itk::ParticleDomain::UpdateZeroCrossingPoint

Protected Functions Documentation

function MeshDomain

inline MeshDomain()

function ~MeshDomain

inline virtual ~MeshDomain()

function PrintSelf

inline void PrintSelf(
    std::ostream & os,
    Indent indent
) const

Updated on 2022-03-31 at 09:51:18 -0600