itk::ParticleImplicitSurfaceDomain
#include <itkParticleImplicitSurfaceDomain.h>
Inherits from itk::ParticleImageDomainWithCurvature< T >, itk::ParticleImageDomainWithGradN< T >, itk::ParticleImageDomainWithGradients< T >, itk::ParticleImageDomain< T >, itk::ParticleRegionDomain, itk::ParticleDomain, DataObject
Public Types
| Name | |
|---|---|
| typedef ParticleImageDomainWithCurvature< T > | Superclass | 
| typedef SmartPointer< ParticleImplicitSurfaceDomain > | Pointer | 
| typedef Superclass::ImageType | ImageType | 
| typedef Superclass::PointType | PointType | 
Public Functions
| Name | |
|---|---|
| itkNewMacro(ParticleImplicitSurfaceDomain ) | |
| virtual void | SetTolerance(const T _Tolerance) | 
| virtual T | GetTolerance() | 
| virtual shapeworks::DomainType | GetDomainType() const override | 
| virtual bool | ApplyConstraints(PointType & p, int idx, bool dbg =false) const override | 
| virtual PointType | UpdateParticlePosition(const PointType & point, int idx, vnl_vector_fixed< double, DIMENSION > & update) const override | 
| void | SetMesh(TriMesh * mesh) | 
| void | SetFeaMesh(const char * feaFile) | 
| void | SetFeaGrad(const char * feaGradFile) | 
| void | SetFids(const char * fidsFile) | 
| meshFIM * | GetMesh() | 
| meshFIM * | GetMesh() const | 
| virtual PointType | GetZeroCrossingPoint() const override | 
Protected Functions
| Name | |
|---|---|
| ParticleImplicitSurfaceDomain() | |
| void | PrintSelf(std::ostream & os, Indent indent) const | 
| virtual | ~ParticleImplicitSurfaceDomain() | 
Additional inherited members
Public Types inherited from itk::ParticleImageDomainWithCurvature< T >
| Name | |
|---|---|
| typedef Superclass::VnlMatrixType | VnlMatrixType | 
Public Functions inherited from itk::ParticleImageDomainWithCurvature< T >
| Name | |
|---|---|
| void | SetImage(ImageType * I, double narrow_band) | 
| virtual double | GetCurvature(const PointType & p, int idx) const override | 
| virtual double | GetSurfaceMeanCurvature() const override | 
| virtual double | GetSurfaceStdDevCurvature() const override | 
Protected Functions inherited from itk::ParticleImageDomainWithCurvature< T >
| Name | |
|---|---|
| ParticleImageDomainWithCurvature() | |
| virtual | ~ParticleImageDomainWithCurvature() | 
Public Types inherited from itk::ParticleImageDomainWithGradN< T >
| Name | |
|---|---|
| typedef Superclass::GradNType | GradNType | 
| typedef Superclass::GradNType | VnlMatrixType | 
Public Functions inherited from itk::ParticleImageDomainWithGradN< T >
| Name | |
|---|---|
| void | SetImage(ImageType * I, double narrow_band) | 
| virtual GradNType | SampleGradNAtPoint(const PointType & p, int idx) const override | 
| virtual void | DeletePartialDerivativeImages() override | 
| virtual void | DeleteImages() override | 
Protected Functions inherited from itk::ParticleImageDomainWithGradN< T >
| Name | |
|---|---|
| ParticleImageDomainWithGradN() | |
| virtual | ~ParticleImageDomainWithGradN() | 
Public Types inherited from itk::ParticleImageDomainWithGradients< T >
| Name | |
|---|---|
| typedef FixedArray< T, DIMENSION > | VectorType | 
| typedef vnl_vector_fixed< T, DIMENSION > | VnlVectorType | 
Public Functions inherited from itk::ParticleImageDomainWithGradients< T >
| Name | |
|---|---|
| void | SetImage(ImageType * I, double narrow_band) | 
| virtual vnl_vector_fixed< float, DIMENSION > | SampleGradientAtPoint(const PointType & p, int idx) const | 
| virtual vnl_vector_fixed< float, DIMENSION > | SampleNormalAtPoint(const PointType & p, int idx) const | 
| virtual vnl_vector_fixed< double, DIMENSION > | ProjectVectorToSurfaceTangent(vnl_vector_fixed< double, DIMENSION > & gradE, const PointType & pos, int idx) const override | 
| virtual void | DeleteImages() override | 
Protected Functions inherited from itk::ParticleImageDomainWithGradients< T >
| Name | |
|---|---|
| ParticleImageDomainWithGradients() | |
| virtual | ~ParticleImageDomainWithGradients() | 
| openvdb::VectorGrid::Ptr | GetVDBGradient() | 
Public Functions inherited from itk::ParticleImageDomain< T >
| 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 double | GetMaxDiameter() const override | 
| virtual void | DeleteImages() override | 
| virtual void | UpdateZeroCrossingPoint() override | 
Protected Functions inherited from itk::ParticleImageDomain< T >
| Name | |
|---|---|
| openvdb::FloatGrid::Ptr | GetVDBImage() const | 
| ParticleImageDomain() | |
| virtual | ~ParticleImageDomain() | 
| openvdb::math::Transform::Ptr | transform() const | 
| openvdb::Vec3R | ToVDBCoord(const PointType & p) const | 
Public Functions inherited from itk::ParticleRegionDomain
| Name | |
|---|---|
| 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 itk::ParticleRegionDomain
| Name | |
|---|---|
| ParticleRegionDomain() | |
| virtual | ~ParticleRegionDomain() | 
| bool | IsInsideBuffer(const PointType & p) const | 
Public Types inherited from itk::ParticleDomain
| Name | |
|---|---|
| typedef vnl_matrix_fixed< float, DIMENSION, DIMENSION > | GradNType | 
Public Functions inherited from itk::ParticleDomain
| Name | |
|---|---|
| virtual void | InvalidateParticlePosition(int idx) const | 
| virtual vnl_vector_fixed< double, DIMENSION > | ProjectVectorToSurfaceTangent(vnl_vector_fixed< double, DIMENSION > & gradE, const PointType & pos, int idx) const =0 | 
| virtual vnl_vector_fixed< float, DIMENSION > | SampleGradientAtPoint(const PointType & point, int idx) const =0 | 
| virtual vnl_vector_fixed< float, DIMENSION > | 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, vnl_vector_fixed< double, DIMENSION > * 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 double | GetSurfaceArea() const =0 | 
| virtual PointType | GetValidLocationNear(PointType p) const =0 | 
| virtual double | GetMaxDiameter() const =0 | 
| virtual void | DeleteImages() =0 | 
| virtual void | DeletePartialDerivativeImages() =0 | 
| virtual void | UpdateZeroCrossingPoint() =0 | 
| 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 | 
Detailed Description
template <class T >
class itk::ParticleImplicitSurfaceDomain;
A 3D cartesian domain that constrains points so that they always lie an implicit surface. The implicit surface is defined as the zero isosurface of the given image. Constraints are applied using a Newton-Raphson iteration, and this class assumes it has a distance transform as an image.
Public Types Documentation
typedef Superclass
typedef ParticleImageDomainWithCurvature<T> itk::ParticleImplicitSurfaceDomain< T >::Superclass;
Standard class typedefs
typedef Pointer
typedef SmartPointer<ParticleImplicitSurfaceDomain> itk::ParticleImplicitSurfaceDomain< T >::Pointer;
typedef ImageType
typedef Superclass::ImageType itk::ParticleImplicitSurfaceDomain< T >::ImageType;
typedef PointType
typedef Superclass::PointType itk::ParticleImplicitSurfaceDomain< T >::PointType;
Public Functions Documentation
function itkNewMacro
itkNewMacro(
    ParticleImplicitSurfaceDomain 
)
Method for creation through the object factory.
function SetTolerance
inline virtual void SetTolerance(
    const T _Tolerance
)
Set/Get the precision of the projection operation. The resulting projection will be within the specified tolerance.
function GetTolerance
inline virtual T GetTolerance()
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 method constrains points to lie within the given domain and on a given implicit surface. If the point is not already on the surface, it is projected back to the surface using a Newton-Raphson iteration. IMPORTANT: This method returns the true/false value of its superclass, and does not indicate changes only due to projection. This is done for speed: we typically will only want to know if a point tried to move outside of the bounding box domain, since movement off the surface will be very common. Consider subclassing this method to add a check for significant differences in the input and output points.
function UpdateParticlePosition
inline 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 SetMesh
void SetMesh(
    TriMesh * mesh
)
function SetFeaMesh
void SetFeaMesh(
    const char * feaFile
)
function SetFeaGrad
void SetFeaGrad(
    const char * feaGradFile
)
function SetFids
void SetFids(
    const char * fidsFile
)
function GetMesh
inline meshFIM * GetMesh()
function GetMesh
inline meshFIM * GetMesh() const
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.
Protected Functions Documentation
function ParticleImplicitSurfaceDomain
inline ParticleImplicitSurfaceDomain()
function PrintSelf
inline void PrintSelf(
    std::ostream & os,
    Indent indent
) const
function ~ParticleImplicitSurfaceDomain
inline virtual ~ParticleImplicitSurfaceDomain()
Updated on 2022-03-31 at 09:51:18 -0600