Skip to content



#include <ParticleImageDomain.h>

Inherits from shapeworks::ParticleRegionDomain, shapeworks::ParticleDomain

Inherited by shapeworks::ParticleImageDomainWithGradients< T >

Public Types

using std::shared_ptr< ParticleImageDomain > Pointer
using itk::Image< T, DIMENSION > ImageType
using ParticleRegionDomain::PointType PointType

Public Functions

void SetImage(ImageType * I, double narrow_band)
virtual double GetSurfaceArea() const override
PointType GetOrigin() const
ImageType::SizeType GetSize() const
ImageType::SpacingType GetSpacing() const
ImageType::RegionType::IndexType GetIndex() const
virtual PointType GetValidLocationNear(PointType p) const override
T Sample(const PointType & p) const
virtual double GetMaxDiameter() const override
virtual void DeleteImages() override
virtual void UpdateZeroCrossingPoint() override

Protected Functions

openvdb::FloatGrid::Ptr GetVDBImage() const
virtual ~ParticleImageDomain()
void PrintSelf(std::ostream & os, itk::Indent indent) const
openvdb::math::Transform::Ptr transform() const
openvdb::Vec3R ToVDBCoord(const PointType & p) const

Additional inherited members

Public Functions inherited from shapeworks::ParticleRegionDomain

virtual bool ApplyConstraints(PointType & p) const
virtual const PointType & GetUpperBound() const
virtual const PointType & GetLowerBound() const
void SetUpperBound(const PointType _UpperBound)
void SetLowerBound(const PointType _LowerBound)
void SetRegion(const PointType & lowerBound, const PointType & upperBound)

Protected Functions inherited from shapeworks::ParticleRegionDomain

virtual ~ParticleRegionDomain()
bool IsInsideBuffer(const PointType & p) const

Public Types inherited from shapeworks::ParticleDomain

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

virtual bool ApplyConstraints(PointType & p, int idx, bool dbg =false) const =0
virtual PointType UpdateParticlePosition(const PointType & point, int idx, VectorDoubleType & update) const =0
virtual void InvalidateParticlePosition(int idx) const
virtual VectorDoubleType ProjectVectorToSurfaceTangent(VectorDoubleType & gradE, const PointType & pos, int idx) const =0
virtual VectorFloatType SampleGradientAtPoint(const PointType & point, int idx) const =0
virtual VectorFloatType SampleNormalAtPoint(const PointType & point, int idx) const =0
virtual GradNType SampleGradNAtPoint(const PointType & p, int idx) const =0
virtual double Distance(const PointType & a, int idx_a, const PointType & b, int idx_b, VectorDoubleType * out_grad =nullptr) const
virtual double SquaredDistance(const PointType & a, int idx_a, const PointType & b, int idx_b) const
virtual bool IsWithinDistance(const PointType & a, int idx_a, const PointType & b, int idx_b, double test_dist, double & distance) const
virtual double GetCurvature(const PointType & p, int idx) const =0
virtual double GetSurfaceMeanCurvature() const =0
virtual double GetSurfaceStdDevCurvature() const =0
virtual const PointType & GetLowerBound() const =0
virtual const PointType & GetUpperBound() const =0
virtual PointType GetZeroCrossingPoint() const =0
virtual void DeletePartialDerivativeImages() =0
bool IsDomainFixed() const
virtual shapeworks::DomainType GetDomainType() const =0
std::shared_ptr< shapeworks::Constraints > GetConstraints() const
virtual PointType GetPositionAfterSplit(const PointType & pt, const VectorDoubleType & local_direction, const VectorDoubleType & global_direction, double epsilon) const
void SetDomainID(int id)
void SetDomainName(std::string name)

Protected Functions inherited from shapeworks::ParticleDomain

virtual ~ParticleDomain()

Protected Attributes inherited from shapeworks::ParticleDomain

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

Detailed Description

template <class T >
class shapeworks::ParticleImageDomain;

A bounding-box region domain that sets its bounding box according to the origin, spacing, and RequestedRegion of a specified itk::Image. This Domain object may be sampled for interpolated image values using the Sample(Point) method.

Public Types Documentation

using Pointer

using shapeworks::ParticleImageDomain< T >::Pointer =  std::shared_ptr<ParticleImageDomain>;

Standard class typedefs

using ImageType

using shapeworks::ParticleImageDomain< T >::ImageType =  itk::Image<T, DIMENSION>;

Type of the ITK image used by this class.

using PointType

using shapeworks::ParticleImageDomain< T >::PointType =  ParticleRegionDomain::PointType;

Point type of the domain (not the image).

Public Functions Documentation

function SetImage

inline void SetImage(
    ImageType * I,
    double narrow_band

Set/Get the itk::Image specifying the particle domain. The set method modifies the parent class LowerBound and UpperBound.

function GetSurfaceArea

inline virtual double GetSurfaceArea() const override

Reimplements: shapeworks::ParticleDomain::GetSurfaceArea

Use for neighborhood radius.

function GetOrigin

inline PointType GetOrigin() const

function GetSize

inline ImageType::SizeType GetSize() const

function GetSpacing

inline ImageType::SpacingType GetSpacing() const

function GetIndex

inline ImageType::RegionType::IndexType GetIndex() const

function GetValidLocationNear

inline 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 Sample

inline T Sample(
    const PointType & p
) const

Sample the image at a point. This method performs bounds checking.

function GetMaxDiameter

inline virtual double GetMaxDiameter() const override

Reimplements: shapeworks::ParticleDomain::GetMaxDiameter

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

function DeleteImages

inline virtual void DeleteImages() override

Reimplements: shapeworks::ParticleDomain::DeleteImages

Reimplemented by: shapeworks::ParticleImageDomainWithGradients::DeleteImages, shapeworks::ParticleImageDomainWithGradN::DeleteImages

Used when a domain is fixed.

function UpdateZeroCrossingPoint

inline virtual void UpdateZeroCrossingPoint() override

Reimplements: shapeworks::ParticleDomain::UpdateZeroCrossingPoint

Protected Functions Documentation

function GetVDBImage

inline openvdb::FloatGrid::Ptr GetVDBImage() const

function ParticleImageDomain

inline ParticleImageDomain()

function ~ParticleImageDomain

inline virtual ~ParticleImageDomain()

function PrintSelf

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

function transform

inline openvdb::math::Transform::Ptr transform() const

function ToVDBCoord

inline openvdb::Vec3R ToVDBCoord(
    const PointType & p
) const

Updated on 2022-07-23 at 17:50:03 -0600