itk::ParticleDomain
Inherits from DataObject
Inherited by itk::ContourDomain, itk::MeshDomain, itk::ParticleRegionDomain
Public Types
Name | |
---|---|
typedef SmartPointer< ParticleDomain > | Pointer |
typedef Point< double, DIMENSION > | PointType |
typedef vnl_matrix_fixed< float, DIMENSION, DIMENSION > | GradNType |
Public Functions
Name | |
---|---|
virtual bool | ApplyConstraints(PointType & p, int idx, bool dbg =false) const =0 |
virtual PointType | UpdateParticlePosition(const PointType & point, int idx, vnl_vector_fixed< double, DIMENSION > & update) const =0 |
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 PointType | GetZeroCrossingPoint() 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 |
virtual shapeworks::DomainType | GetDomainType() const =0 |
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
Name | |
---|---|
ParticleDomain() | |
virtual | ~ParticleDomain() |
void | PrintSelf(std::ostream & os, Indent indent) const |
Protected Attributes
Name | |
---|---|
bool | m_FixedDomain |
int | m_DomainID |
std::string | m_DomainName |
std::shared_ptr< Constraints > | constraints |
Public Types Documentation
typedef Pointer
typedef SmartPointer<ParticleDomain> itk::ParticleDomain::Pointer;
Standard class typedefs
typedef PointType
typedef Point<double, DIMENSION> itk::ParticleDomain::PointType;
Point type used to store particle locations.
typedef GradNType
typedef vnl_matrix_fixed<float, DIMENSION, DIMENSION> itk::ParticleDomain::GradNType;
Public Functions Documentation
function ApplyConstraints
virtual bool ApplyConstraints(
PointType & p,
int idx,
bool dbg =false
) const =0
Reimplemented by: itk::ContourDomain::ApplyConstraints, itk::ParticleImplicitSurfaceDomain::ApplyConstraints, itk::MeshDomain::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 UpdateParticlePosition
virtual PointType UpdateParticlePosition(
const PointType & point,
int idx,
vnl_vector_fixed< double, DIMENSION > & update
) const =0
Reimplemented by: itk::ContourDomain::UpdateParticlePosition, itk::ParticleImplicitSurfaceDomain::UpdateParticlePosition, itk::MeshDomain::UpdateParticlePosition
Applies the update to the point and returns the new point position.
function InvalidateParticlePosition
inline virtual void InvalidateParticlePosition(
int idx
) const
Reimplemented by: itk::ContourDomain::InvalidateParticlePosition, itk::MeshDomain::InvalidateParticlePosition
function ProjectVectorToSurfaceTangent
virtual vnl_vector_fixed< double, DIMENSION > ProjectVectorToSurfaceTangent(
vnl_vector_fixed< double, DIMENSION > & gradE,
const PointType & pos,
int idx
) const =0
Reimplemented by: itk::ContourDomain::ProjectVectorToSurfaceTangent, itk::ParticleImageDomainWithGradients::ProjectVectorToSurfaceTangent, itk::MeshDomain::ProjectVectorToSurfaceTangent
Projects the vector to the surface tangent at the point.
function SampleGradientAtPoint
virtual vnl_vector_fixed< float, DIMENSION > SampleGradientAtPoint(
const PointType & point,
int idx
) const =0
Reimplemented by: itk::ParticleImageDomainWithGradients::SampleGradientAtPoint, itk::ContourDomain::SampleGradientAtPoint, itk::MeshDomain::SampleGradientAtPoint
function SampleNormalAtPoint
virtual vnl_vector_fixed< float, DIMENSION > SampleNormalAtPoint(
const PointType & point,
int idx
) const =0
Reimplemented by: itk::ParticleImageDomainWithGradients::SampleNormalAtPoint, itk::ContourDomain::SampleNormalAtPoint, itk::MeshDomain::SampleNormalAtPoint
function SampleGradNAtPoint
virtual GradNType SampleGradNAtPoint(
const PointType & p,
int idx
) const =0
Reimplemented by: itk::ContourDomain::SampleGradNAtPoint, itk::ParticleImageDomainWithGradN::SampleGradNAtPoint, itk::MeshDomain::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
Reimplemented by: itk::MeshDomain::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
Reimplemented by: itk::ContourDomain::SquaredDistance, itk::MeshDomain::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
Reimplemented by: itk::MeshDomain::IsWithinDistance
Returns whether or not the two points are separated by the given distance
function GetCurvature
virtual double GetCurvature(
const PointType & p,
int idx
) const =0
Reimplemented by: itk::ContourDomain::GetCurvature, itk::ParticleImageDomainWithCurvature::GetCurvature, itk::MeshDomain::GetCurvature
Used in ParticleMeanCurvatureAttribute
function GetSurfaceMeanCurvature
virtual double GetSurfaceMeanCurvature() const =0
Reimplemented by: itk::ContourDomain::GetSurfaceMeanCurvature, itk::ParticleImageDomainWithCurvature::GetSurfaceMeanCurvature, itk::MeshDomain::GetSurfaceMeanCurvature
Used in ParticleMeanCurvatureAttribute
function GetSurfaceStdDevCurvature
virtual double GetSurfaceStdDevCurvature() const =0
Reimplemented by: itk::ContourDomain::GetSurfaceStdDevCurvature, itk::ParticleImageDomainWithCurvature::GetSurfaceStdDevCurvature, itk::MeshDomain::GetSurfaceStdDevCurvature
Used in ParticleMeanCurvatureAttribute
function GetLowerBound
virtual const PointType & GetLowerBound() const =0
Reimplemented by: itk::ParticleRegionDomain::GetLowerBound, itk::ContourDomain::GetLowerBound, itk::MeshDomain::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
virtual const PointType & GetUpperBound() const =0
Reimplemented by: itk::ParticleRegionDomain::GetUpperBound, itk::ContourDomain::GetUpperBound, itk::MeshDomain::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
virtual PointType GetZeroCrossingPoint() const =0
Reimplemented by: itk::ContourDomain::GetZeroCrossingPoint, itk::ParticleImplicitSurfaceDomain::GetZeroCrossingPoint, itk::MeshDomain::GetZeroCrossingPoint
Get any valid point on the domain. This is used to place the first particle.
function GetSurfaceArea
virtual double GetSurfaceArea() const =0
Reimplemented by: itk::ContourDomain::GetSurfaceArea, itk::ParticleImageDomain::GetSurfaceArea, itk::MeshDomain::GetSurfaceArea
Use for neighborhood radius.
function GetValidLocationNear
virtual PointType GetValidLocationNear(
PointType p
) const =0
Reimplemented by: itk::ContourDomain::GetValidLocationNear, itk::ParticleImageDomain::GetValidLocationNear, itk::MeshDomain::GetValidLocationNear
GetValidLocation returns a PointType location on the surface. Used for placing the first particle.
function GetMaxDiameter
virtual double GetMaxDiameter() const =0
Reimplemented by: itk::ContourDomain::GetMaxDiameter, itk::ParticleImageDomain::GetMaxDiameter, itk::MeshDomain::GetMaxDiameter
GetMaxDiameter returns the maximum diameter of the domain and is used for computing sigma
function DeleteImages
virtual void DeleteImages() =0
Reimplemented by: itk::ContourDomain::DeleteImages, itk::ParticleImageDomain::DeleteImages, itk::ParticleImageDomainWithGradients::DeleteImages, itk::ParticleImageDomainWithGradN::DeleteImages, itk::MeshDomain::DeleteImages
function DeletePartialDerivativeImages
virtual void DeletePartialDerivativeImages() =0
Reimplemented by: itk::ContourDomain::DeletePartialDerivativeImages, itk::ParticleImageDomainWithGradN::DeletePartialDerivativeImages, itk::MeshDomain::DeletePartialDerivativeImages
function UpdateZeroCrossingPoint
virtual void UpdateZeroCrossingPoint() =0
Reimplemented by: itk::ContourDomain::UpdateZeroCrossingPoint, itk::ParticleImageDomain::UpdateZeroCrossingPoint, itk::MeshDomain::UpdateZeroCrossingPoint
function IsDomainFixed
inline bool IsDomainFixed() const
function GetDomainType
virtual shapeworks::DomainType GetDomainType() const =0
Reimplemented by: itk::ContourDomain::GetDomainType, itk::ParticleImplicitSurfaceDomain::GetDomainType, itk::MeshDomain::GetDomainType
function GetConstraints
inline std::shared_ptr< Constraints > GetConstraints() const
function GetPositionAfterSplit
inline virtual PointType GetPositionAfterSplit(
const PointType & pt,
const vnl_vector_fixed< double, 3 > & random,
double epsilon
) const
Reimplemented by: itk::ContourDomain::GetPositionAfterSplit
function SetDomainID
inline void SetDomainID(
int id
)
function SetDomainName
inline void SetDomainName(
std::string name
)
Protected Functions Documentation
function ParticleDomain
inline ParticleDomain()
function ~ParticleDomain
inline virtual ~ParticleDomain()
function PrintSelf
inline void PrintSelf(
std::ostream & os,
Indent indent
) const
Protected Attributes Documentation
variable m_FixedDomain
bool m_FixedDomain {true};
variable m_DomainID
int m_DomainID {-1};
variable m_DomainName
std::string m_DomainName;
variable constraints
std::shared_ptr< Constraints > constraints;
Updated on 2022-03-31 at 09:51:18 -0600