Shapeworks Studio
2.1
Shape analysis software suite
|
#include <itkPSMImplicitSurfaceDomain.h>
Public Types | |
typedef PSMImplicitSurfaceDomain | Self |
typedef PSMImageDomainWithCurvature< T, VDimension > | Superclass |
typedef SmartPointer< Self > | Pointer |
typedef SmartPointer< const Self > | ConstPointer |
typedef WeakPointer< const Self > | ConstWeakPointer |
typedef Superclass::ImageType | ImageType |
typedef Superclass::PointType | PointType |
typedef T | PixelType |
Public Types inherited from itk::PSMImageDomainWithCurvature< T, VDimension > | |
typedef PSMImageDomainWithCurvature | Self |
typedef PSMImageDomainWithHessians< T, VDimension > | Superclass |
typedef SmartPointer< Self > | Pointer |
typedef SmartPointer< const Self > | ConstPointer |
typedef WeakPointer< const Self > | ConstWeakPointer |
typedef Superclass::PointType | PointType |
typedef Superclass::ImageType | ImageType |
typedef Superclass::ScalarInterpolatorType | ScalarInterpolatorType |
typedef Superclass::VnlMatrixType | VnlMatrixType |
Public Types inherited from itk::PSMImageDomainWithHessians< T, VDimension > | |
typedef PSMImageDomainWithHessians | Self |
typedef PSMImageDomainWithGradients< T, VDimension > | Superclass |
typedef SmartPointer< Self > | Pointer |
typedef SmartPointer< const Self > | ConstPointer |
typedef WeakPointer< const Self > | ConstWeakPointer |
typedef Superclass::PointType | PointType |
typedef Superclass::ImageType | ImageType |
typedef Superclass::ScalarInterpolatorType | ScalarInterpolatorType |
typedef vnl_matrix_fixed< T, VDimension, VDimension > | VnlMatrixType |
Public Types inherited from itk::PSMImageDomainWithGradients< T, VDimension > | |
typedef PSMImageDomainWithGradients | Self |
typedef PSMImageDomain< T, VDimension > | Superclass |
typedef SmartPointer< Self > | Pointer |
typedef SmartPointer< const Self > | ConstPointer |
typedef WeakPointer< const Self > | ConstWeakPointer |
typedef Superclass::PointType | PointType |
typedef Superclass::ImageType | ImageType |
typedef Superclass::ScalarInterpolatorType | ScalarInterpolatorType |
typedef GradientImageFilter< ImageType > | GradientImageFilterType |
typedef GradientImageFilterType::OutputImageType | GradientImageType |
typedef VectorLinearInterpolateImageFunction< GradientImageType, typename PointType::CoordRepType > | GradientInterpolatorType |
typedef FixedArray< T, VDimension > | VectorType |
typedef vnl_vector_fixed< T, VDimension > | VnlVectorType |
Public Types inherited from itk::PSMImageDomain< T, VDimension > | |
typedef PSMImageDomain | Self |
typedef PSMRegionDomain< VDimension > | Superclass |
typedef SmartPointer< Self > | Pointer |
typedef SmartPointer< const Self > | ConstPointer |
typedef WeakPointer< const Self > | ConstWeakPointer |
typedef Image< T, VDimension > | ImageType |
typedef Superclass::PointType | PointType |
typedef LinearInterpolateImageFunction< ImageType, typename PointType::CoordRepType > | ScalarInterpolatorType |
Public Types inherited from itk::PSMRegionDomain< VDimension > | |
typedef PSMRegionDomain | Self |
typedef PSMDomain< VDimension > | Superclass |
typedef SmartPointer< Self > | Pointer |
typedef SmartPointer< const Self > | ConstPointer |
typedef WeakPointer< const Self > | ConstWeakPointer |
typedef Point< double, VDimension > | PointType |
Public Types inherited from itk::PSMDomain< VDimension > | |
typedef PSMDomain | Self |
typedef DataObject | Superclass |
typedef SmartPointer< Self > | Pointer |
typedef SmartPointer< const Self > | ConstPointer |
typedef WeakPointer< const Self > | ConstWeakPointer |
typedef Point< double, VDimension > | PointType |
Public Member Functions | |
itkNewMacro (Self) | |
itkTypeMacro (PSMImplicitSurfaceDomain, ParticleClipByRegionDomain) | |
itkStaticConstMacro (Dimension, unsigned int, VDimension) | |
itkSetMacro (Tolerance, T) | |
itkGetMacro (Tolerance, T) | |
virtual bool | ApplyConstraints (PointType &p) const |
virtual bool | ApplyVectorConstraints (vnl_vector_fixed< double, VDimension > &gradE, const PointType &pos, double maxtimestep) const |
virtual double | Distance (const PointType &, const PointType &) const |
void | SetCuttingPlane (const vnl_vector< double > &a, const vnl_vector< double > &b, const vnl_vector< double > &c) |
void | RemoveCuttingPlane () |
bool | IsCuttingPlaneDefined () const |
const vnl_vector_fixed< double, VDimension > & | GetCuttingPlanePoint () const |
const vnl_vector_fixed< double, VDimension > & | GetCuttingPlaneNormal () const |
void | AddSphere (const vnl_vector_fixed< double, VDimension > &v, double r) |
double | GetSphereRadius (unsigned int i) const |
vnl_vector_fixed< double, VDimension > | GetSphereCenter (unsigned int i) const |
unsigned int | GetNumberOfSpheres () const |
Public Member Functions inherited from itk::PSMImageDomainWithCurvature< T, VDimension > | |
itkNewMacro (Self) | |
itkTypeMacro (PSMImageDomainWithCurvature, PSMImageDomainWithHessians) | |
itkStaticConstMacro (Dimension, unsigned int, VDimension) | |
void | SetImage (ImageType *I) |
double | GetCurvature (const PointType &pos) const |
ImageType::Pointer * | GetCurvatureImage () |
Public Member Functions inherited from itk::PSMImageDomainWithHessians< T, VDimension > | |
itkNewMacro (Self) | |
itkTypeMacro (PSMImageDomainWithHessians, PSMImageDomainWithGradients) | |
itkStaticConstMacro (Dimension, unsigned int, VDimension) | |
void | SetImage (ImageType *I) |
VnlMatrixType | SampleHessianVnl (const PointType &p) const |
itkSetMacro (Sigma, double) | |
itkGetMacro (Sigma, double) | |
ScalarInterpolatorType::Pointer * | GetInterpolators () |
ImageType::Pointer * | GetPartialDerivatives () |
Public Member Functions inherited from itk::PSMImageDomainWithGradients< T, VDimension > | |
itkNewMacro (Self) | |
itkTypeMacro (PSMImageDomainWithGradients, PSMImageDomain) | |
itkStaticConstMacro (Dimension, unsigned int, VDimension) | |
void | SetImage (ImageType *I) |
itkGetObjectMacro (GradientImage, GradientImageType) | |
VectorType | SampleGradient (const PointType &p) const |
VnlVectorType | SampleGradientVnl (const PointType &p) const |
VnlVectorType | SampleNormalVnl (const PointType &p, T epsilon=1.0e-5) const |
itkGetObjectMacro (GradientInterpolator, GradientInterpolatorType) | |
Public Member Functions inherited from itk::PSMImageDomain< T, VDimension > | |
itkNewMacro (Self) | |
itkTypeMacro (PSMImageDomain, PSMRegionDomain) | |
itkStaticConstMacro (Dimension, unsigned int, VDimension) | |
void | SetImage (ImageType *I) |
itkGetObjectMacro (Image, ImageType) | |
itkGetConstObjectMacro (Image, ImageType) | |
T | Sample (const PointType &p) const |
bool | IsInsideBuffer (const PointType &p) const |
itkGetObjectMacro (ScalarInterpolator, ScalarInterpolatorType) | |
Public Member Functions inherited from itk::PSMRegionDomain< VDimension > | |
itkNewMacro (Self) | |
itkTypeMacro (PSMRegionDomain, PSMDomain) | |
itkStaticConstMacro (Dimension, unsigned int, VDimension) | |
itkSetMacro (LowerBound, PointType) | |
itkSetMacro (UpperBound, PointType) | |
virtual const PointType & | GetUpperBound () const |
virtual const PointType & | GetLowerBound () const |
void | SetRegion (const PointType &l, const PointType &u) |
Public Member Functions inherited from itk::PSMDomain< VDimension > | |
itkNewMacro (Self) | |
itkTypeMacro (PSMDomain, DataObject) | |
itkStaticConstMacro (Dimension, unsigned int, VDimension) | |
void | DisableConstraints () |
void | EnableConstraints () |
bool | GetConstraintsEnabled () const |
void | SetConstraintsEnabled (bool g) |
Protected Member Functions | |
void | PrintSelf (std::ostream &os, Indent indent) const |
Protected Member Functions inherited from itk::PSMImageDomainWithCurvature< T, VDimension > | |
void | PrintSelf (std::ostream &os, Indent indent) const |
double | MeanCurvature (const PointType &pos) |
double | vnl_trace (const VnlMatrixType &m) const |
Protected Member Functions inherited from itk::PSMImageDomainWithHessians< T, VDimension > | |
void | PrintSelf (std::ostream &os, Indent indent) const |
void | DeletePartialDerivativeImages () |
Protected Member Functions inherited from itk::PSMImageDomainWithGradients< T, VDimension > | |
void | PrintSelf (std::ostream &os, Indent indent) const |
Protected Member Functions inherited from itk::PSMImageDomain< T, VDimension > | |
void | PrintSelf (std::ostream &os, Indent indent) const |
Protected Member Functions inherited from itk::PSMRegionDomain< VDimension > | |
void | PrintSelf (std::ostream &os, Indent indent) const |
Protected Member Functions inherited from itk::PSMDomain< VDimension > | |
void | PrintSelf (std::ostream &os, Indent indent) const |
Additional Inherited Members | |
Protected Attributes inherited from itk::PSMDomain< VDimension > | |
bool | m_ConstraintsEnabled |
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.
Definition at line 35 of file itkPSMImplicitSurfaceDomain.h.
typedef PSMImplicitSurfaceDomain itk::PSMImplicitSurfaceDomain< T, VDimension >::Self |
Standard class typedefs
Definition at line 40 of file itkPSMImplicitSurfaceDomain.h.
|
inline |
Maintain a list of spheres within the domain. These are used as soft constraints by some particle forcing functions.
Definition at line 104 of file itkPSMImplicitSurfaceDomain.h.
|
virtual |
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.
Reimplemented from itk::PSMRegionDomain< VDimension >.
Definition at line 89 of file itkPSMImplicitSurfaceDomain.hxx.
|
virtual |
Optionally add a repulsion from a planar boundar specified in m_CuttingPlane
Reimplemented from itk::PSMImageDomainWithGradients< T, VDimension >.
Definition at line 50 of file itkPSMImplicitSurfaceDomain.hxx.
|
virtual |
Define a distance measure on the surface. Note that this distance measure is NOT the geodesic distance, as one might expect, but is only a Euclidean distance which ignores points whose normals are not sufficiently aligned (method returns a negative number). The assumption here is that points are sufficiently close to one another on the surface that they may be considered to lie in a tangent plane.
Reimplemented from itk::PSMDomain< VDimension >.
Definition at line 134 of file itkPSMImplicitSurfaceDomain.hxx.
|
inline |
Returns the center point of sphere i. If sphere i does not exist, returns 0 vector.
Definition at line 122 of file itkPSMImplicitSurfaceDomain.h.
|
inline |
Returns the radius of sphere i, or 0.0 if sphere i does not exist
Definition at line 114 of file itkPSMImplicitSurfaceDomain.h.
itk::PSMImplicitSurfaceDomain< T, VDimension >::itkNewMacro | ( | Self | ) |
Method for creation through the object factory.
itk::PSMImplicitSurfaceDomain< T, VDimension >::itkSetMacro | ( | Tolerance | , |
T | |||
) |
Set/Get the precision of the projection operation. The resulting projection will be within the specified tolerance.
itk::PSMImplicitSurfaceDomain< T, VDimension >::itkStaticConstMacro | ( | Dimension | , |
unsigned | int, | ||
VDimension | |||
) |
Dimensionality of the domain of the particle system.
itk::PSMImplicitSurfaceDomain< T, VDimension >::itkTypeMacro | ( | PSMImplicitSurfaceDomain< T, VDimension > | , |
ParticleClipByRegionDomain | |||
) |
Run-time type information (and related methods).