shapeworks::ContourDomain
Inherits from shapeworks::ParticleDomain
Public Types
Name | |
---|---|
using std::shared_ptr< ContourDomain > | Pointer |
Public Functions
Name | |
---|---|
ContourDomain() | |
virtual | ~ContourDomain() |
void | SetPolyLine(vtkSmartPointer< vtkPolyData > poly_data) |
virtual DomainType | GetDomainType() const override |
virtual bool | ApplyConstraints(PointType & p, int idx, bool dbg =false) const override |
virtual PointType | UpdateParticlePosition(const PointType & point, int idx, VectorDoubleType & update) const override |
virtual VectorDoubleType | ProjectVectorToSurfaceTangent(VectorDoubleType & gradE, const PointType & pos, int idx) const override |
virtual VectorFloatType | SampleNormalAtPoint(const PointType & point, int idx) const override |
virtual VectorFloatType | SampleGradientAtPoint(const PointType & point, int idx) const override |
virtual GradNType | SampleGradNAtPoint(const PointType & p, int idx) const override |
virtual PointType | GetValidLocationNear(PointType p) const override |
virtual double | GetMaxDiameter() const override |
virtual void | UpdateZeroCrossingPoint() override |
virtual double | GetCurvature(const PointType & p, int idx) const override |
virtual double | GetSurfaceMeanCurvature() const override |
virtual double | GetSurfaceStdDevCurvature() const override |
virtual double | Distance(const PointType & a, int idx_a, const PointType & b, int idx_b, VectorDoubleType * out_grad =nullptr) const override |
virtual double | SquaredDistance(const PointType & a, int idx_a, const PointType & b, int idx_b) const override |
virtual const PointType & | GetLowerBound() const override |
virtual const PointType & | GetUpperBound() const override |
virtual PointType | GetZeroCrossingPoint() const override |
virtual double | GetSurfaceArea() const override |
virtual void | DeleteImages() override |
virtual void | DeletePartialDerivativeImages() override |
virtual void | InvalidateParticlePosition(int idx) const override |
virtual PointType | GetPositionAfterSplit(const PointType & pt, const VectorDoubleType & local_direction, const VectorDoubleType & global_direction, double epsilon) const override |
Additional inherited members
Public Types inherited from shapeworks::ParticleDomain
Name | |
---|---|
using itk::Point< double, 3 > | PointType |
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 | IsWithinDistance(const PointType & a, int idx_a, const PointType & b, int idx_b, double test_dist, double & distance) const |
bool | IsDomainFixed() const |
std::shared_ptr< shapeworks::Constraints > | GetConstraints() 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 |
Public Types Documentation
using Pointer
using shapeworks::ContourDomain::Pointer = std::shared_ptr<ContourDomain>;
Public Functions Documentation
function ContourDomain
inline explicit ContourDomain()
function ~ContourDomain
inline virtual ~ContourDomain()
function SetPolyLine
void SetPolyLine(
vtkSmartPointer< vtkPolyData > poly_data
)
function GetDomainType
inline virtual DomainType GetDomainType() const override
Reimplements: shapeworks::ParticleDomain::GetDomainType
function ApplyConstraints
virtual bool ApplyConstraints(
PointType & p,
int idx,
bool dbg =false
) const override
Reimplements: shapeworks::ParticleDomain::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,
VectorDoubleType & update
) const override
Reimplements: shapeworks::ParticleDomain::UpdateParticlePosition
Applies the update to the point and returns the new point position.
function ProjectVectorToSurfaceTangent
virtual VectorDoubleType ProjectVectorToSurfaceTangent(
VectorDoubleType & gradE,
const PointType & pos,
int idx
) const override
Reimplements: shapeworks::ParticleDomain::ProjectVectorToSurfaceTangent
Projects the vector to the surface tangent at the point.
function SampleNormalAtPoint
inline virtual VectorFloatType SampleNormalAtPoint(
const PointType & point,
int idx
) const override
Reimplements: shapeworks::ParticleDomain::SampleNormalAtPoint
function SampleGradientAtPoint
inline virtual VectorFloatType SampleGradientAtPoint(
const PointType & point,
int idx
) const override
Reimplements: shapeworks::ParticleDomain::SampleGradientAtPoint
function SampleGradNAtPoint
inline virtual GradNType SampleGradNAtPoint(
const PointType & p,
int idx
) const override
Reimplements: shapeworks::ParticleDomain::SampleGradNAtPoint
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 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 UpdateZeroCrossingPoint
inline virtual void UpdateZeroCrossingPoint() override
Reimplements: shapeworks::ParticleDomain::UpdateZeroCrossingPoint
function GetCurvature
inline virtual double GetCurvature(
const PointType & p,
int idx
) const override
Reimplements: shapeworks::ParticleDomain::GetCurvature
Used in ParticleMeanCurvatureAttribute
function GetSurfaceMeanCurvature
inline virtual double GetSurfaceMeanCurvature() const override
Reimplements: shapeworks::ParticleDomain::GetSurfaceMeanCurvature
Used in ParticleMeanCurvatureAttribute
function GetSurfaceStdDevCurvature
inline virtual double GetSurfaceStdDevCurvature() const override
Reimplements: shapeworks::ParticleDomain::GetSurfaceStdDevCurvature
Used in ParticleMeanCurvatureAttribute
function Distance
virtual double Distance(
const PointType & a,
int idx_a,
const PointType & b,
int idx_b,
VectorDoubleType * out_grad =nullptr
) const override
Reimplements: shapeworks::ParticleDomain::Distance
Distance between locations is used for computing energy and neighborhoods. Optionally return the gradient of the distance
function SquaredDistance
virtual double SquaredDistance(
const PointType & a,
int idx_a,
const PointType & b,
int idx_b
) const override
Reimplements: shapeworks::ParticleDomain::SquaredDistance
Squared Distance between locations is used for computing sigma.
function GetLowerBound
inline virtual const PointType & GetLowerBound() const override
Reimplements: shapeworks::ParticleDomain::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
inline virtual const PointType & GetUpperBound() const override
Reimplements: shapeworks::ParticleDomain::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
inline virtual PointType GetZeroCrossingPoint() const override
Reimplements: shapeworks::ParticleDomain::GetZeroCrossingPoint
Get any valid point on the domain. This is used to place the first particle.
function GetSurfaceArea
inline virtual double GetSurfaceArea() const override
Reimplements: shapeworks::ParticleDomain::GetSurfaceArea
Use for neighborhood radius.
function DeleteImages
inline virtual void DeleteImages() override
Reimplements: shapeworks::ParticleDomain::DeleteImages
function DeletePartialDerivativeImages
inline virtual void DeletePartialDerivativeImages() override
Reimplements: shapeworks::ParticleDomain::DeletePartialDerivativeImages
function InvalidateParticlePosition
virtual void InvalidateParticlePosition(
int idx
) const override
Reimplements: shapeworks::ParticleDomain::InvalidateParticlePosition
function GetPositionAfterSplit
virtual PointType GetPositionAfterSplit(
const PointType & pt,
const VectorDoubleType & local_direction,
const VectorDoubleType & global_direction,
double epsilon
) const override
Reimplements: shapeworks::ParticleDomain::GetPositionAfterSplit
Updated on 2022-07-23 at 16:40:06 -0600