shapeworks::ImageDomain
Inherits from shapeworks::ParticleRegionDomain, shapeworks::ParticleDomain
Inherited by shapeworks::ImageDomainWithGradients< T >
Public Types
| Name | |
|---|---|
| using std::shared_ptr< ImageDomain > | Pointer |
| using itk::Image< T, DIMENSION > | ImageType |
| using ParticleRegionDomain::PointType | PointType |
Public Functions
| Name | |
|---|---|
| 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 bool | IsValidLocation(const PointType & p) const override |
| virtual double | GetMaxDiameter() const override |
| virtual void | DeleteImages() override |
| virtual void | UpdateZeroCrossingPoint() override |
Protected Functions
| Name | |
|---|---|
| openvdb::FloatGrid::Ptr | GetVDBImage() const |
| ImageDomain() | |
| virtual | ~ImageDomain() |
| void | PrintSelf(std::ostream & os, itk::Indent indent) const |
| openvdb::math::Transform::Ptr | transform() const |
| openvdb::Vec3R | ToVDBCoord(const PointType & p) const |
| std::string | DescribeUnsampleablePoint(const PointType & p) const |
Additional inherited members
Public Functions inherited from shapeworks::ParticleRegionDomain
| Name | |
|---|---|
| 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
| Name | |
|---|---|
| ParticleRegionDomain() | |
| virtual | ~ParticleRegionDomain() |
| bool | IsInsideBuffer(const PointType & p) const |
Public Types inherited from shapeworks::ParticleDomain
| Name | |
|---|---|
| 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 | |
|---|---|
| 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
| 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 |
Detailed Description
template <class T >
class shapeworks::ImageDomain;
Public Types Documentation
using Pointer
using shapeworks::ImageDomain< T >::Pointer = std::shared_ptr<ImageDomain>;
Standard class typedefs
using ImageType
using shapeworks::ImageDomain< T >::ImageType = itk::Image<T, DIMENSION>;
Type of the ITK image used by this class.
using PointType
using shapeworks::ImageDomain< 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 IsValidLocation
inline virtual bool IsValidLocation(
const PointType & p
) const override
Reimplements: shapeworks::ParticleDomain::IsValidLocation
Whether the distance transform is actually kept at this location: inside the image, and near enough to the surface to fall within the narrow band, which is all that is retained.
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::ImageDomainWithGradients::DeleteImages, shapeworks::ImageDomainWithGradN::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 ImageDomain
inline ImageDomain()
function ~ImageDomain
inline virtual ~ImageDomain()
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
function DescribeUnsampleablePoint
inline std::string DescribeUnsampleablePoint(
const PointType & p
) const
Explain why a point cannot be sampled. Two quite different problems arrive here and they need different answers: a particle that has drifted a little way off the surface wants a wider narrow band, but one that has been clamped against the edge of the image started out somewhere else entirely, and no width of band would have caught it.
Updated on 2026-09-04 at 15:55:28 +0000