shapeworks::ImageDomainWithGradients
Inherits from shapeworks::ImageDomain< T >, shapeworks::ParticleRegionDomain, shapeworks::ParticleDomain
Inherited by shapeworks::ImageDomainWithGradN< T >
Public Types
| Name | |
|---|---|
| using std::shared_ptr< ImageDomainWithGradients< T > > | Pointer | 
| typedef ImageDomain< T >::PointType | PointType | 
| typedef ImageDomain< T >::ImageType | ImageType | 
| typedef itk::FixedArray< T, DIMENSION > | VectorType | 
| typedef vnl_vector_fixed< T, DIMENSION > | VnlVectorType | 
Public Functions
| 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 | 
| 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
| Name | |
|---|---|
| ImageDomainWithGradients() | |
| virtual | ~ImageDomainWithGradients() | 
| void | PrintSelf(std::ostream & os, itk::Indent indent) const | 
| openvdb::VectorGrid::Ptr | GetVDBGradient() | 
Additional inherited members
Public Functions inherited from shapeworks::ImageDomain< T >
| Name | |
|---|---|
| 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 | UpdateZeroCrossingPoint() override | 
Protected Functions inherited from shapeworks::ImageDomain< T >
| Name | |
|---|---|
| openvdb::FloatGrid::Ptr | GetVDBImage() const | 
| ImageDomain() | |
| virtual | ~ImageDomain() | 
| openvdb::math::Transform::Ptr | transform() const | 
| openvdb::Vec3R | ToVDBCoord(const PointType & p) const | 
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 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 double | GetSurfaceArea() const =0 | 
| virtual PointType | GetValidLocationNear(PointType p) const =0 | 
| virtual double | GetMaxDiameter() const =0 | 
| virtual void | DeletePartialDerivativeImages() =0 | 
| virtual void | UpdateZeroCrossingPoint() =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::ImageDomainWithGradients;
Public Types Documentation
using Pointer
using shapeworks::ImageDomainWithGradients< T >::Pointer =  std::shared_ptr<ImageDomainWithGradients<T> >;
typedef PointType
typedef ImageDomain<T>::PointType shapeworks::ImageDomainWithGradients< T >::PointType;
Point type of the domain (not necessarily of the image).
typedef ImageType
typedef ImageDomain<T>::ImageType shapeworks::ImageDomainWithGradients< T >::ImageType;
typedef VectorType
typedef itk::FixedArray<T, DIMENSION> shapeworks::ImageDomainWithGradients< T >::VectorType;
typedef VnlVectorType
typedef vnl_vector_fixed<T, DIMENSION> shapeworks::ImageDomainWithGradients< T >::VnlVectorType;
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 SampleGradientAtPoint
inline virtual vnl_vector_fixed< float, DIMENSION > SampleGradientAtPoint(
    const PointType & p,
    int idx
) const
Reimplements: shapeworks::ParticleDomain::SampleGradientAtPoint
function SampleNormalAtPoint
inline virtual vnl_vector_fixed< float, DIMENSION > SampleNormalAtPoint(
    const PointType & p,
    int idx
) const
Reimplements: shapeworks::ParticleDomain::SampleNormalAtPoint
function ProjectVectorToSurfaceTangent
inline vnl_vector_fixed< double, DIMENSION > ProjectVectorToSurfaceTangent(
    vnl_vector_fixed< double, DIMENSION > & gradE,
    const PointType & pos,
    int idx
) const override
This method is called by an optimizer after a call to Evaluate and may be used to apply any constraints the resulting vector, such as a projection to the surface tangent plane. Returns true if the gradient was modified.
function DeleteImages
inline virtual void DeleteImages() override
Reimplements: shapeworks::ImageDomain::DeleteImages
Reimplemented by: shapeworks::ImageDomainWithGradN::DeleteImages
Used when a domain is fixed.
Protected Functions Documentation
function ImageDomainWithGradients
inline ImageDomainWithGradients()
function ~ImageDomainWithGradients
inline virtual ~ImageDomainWithGradients()
function PrintSelf
inline void PrintSelf(
    std::ostream & os,
    itk::Indent indent
) const
function GetVDBGradient
inline openvdb::VectorGrid::Ptr GetVDBGradient()
Updated on 2024-03-17 at 12:58:44 -0600