shapeworks::MeshDomain
Inherits from shapeworks::ParticleDomain
Public Types
Name | |
---|---|
using std::shared_ptr< MeshDomain > | Pointer |
Public Functions
Name | |
---|---|
virtual DomainType | GetDomainType() const override |
virtual bool | ApplyConstraints(PointType & p, int idx, bool dbg =false) const override |
bool | ApplyVectorConstraints(VectorDoubleType & gradE, const PointType & pos) const |
virtual VectorDoubleType | ProjectVectorToSurfaceTangent(VectorDoubleType & gradE, const PointType & pos, int idx) const override |
virtual PointType | UpdateParticlePosition(const PointType & point, int idx, VectorDoubleType & update) const override |
virtual void | InvalidateParticlePosition(int idx) const override |
virtual double | GetCurvature(const PointType & p, int idx) const override |
virtual double | GetSurfaceMeanCurvature() const override |
virtual double | GetSurfaceStdDevCurvature() const override |
virtual const PointType & | GetLowerBound() const override |
virtual const PointType & | GetUpperBound() const override |
virtual PointType | GetZeroCrossingPoint() const override |
virtual PointType | GetValidLocationNear(PointType p) const override |
virtual double | GetSurfaceArea() const override |
virtual double | GetMaxDiameter() const override |
virtual vnl_vector_fixed< float, DIMENSION > | SampleGradientAtPoint(const PointType & point, int idx) const override |
virtual vnl_vector_fixed< float, DIMENSION > | SampleNormalAtPoint(const PointType & point, int idx) const override |
virtual GradNType | SampleGradNAtPoint(const PointType & p, int idx) const override |
double | Distance(const PointType & a, int idx_a, const PointType & b, int idx_b, vnl_vector_fixed< double, DIMENSION > * out_grad =nullptr) const override |
virtual double | SquaredDistance(const PointType & a, int idx_a, const PointType & b, int idx_b) const override |
virtual bool | IsWithinDistance(const PointType & a, int idx_a, const PointType & b, int idx_b, double test_dist, double & distance) const override |
virtual void | DeleteImages() override |
virtual void | DeletePartialDerivativeImages() override |
void | SetMesh(std::shared_ptr< MeshWrapper > mesh_, double geodesic_remesh_percent) |
std::shared_ptr< Mesh > | GetSWMesh() const |
virtual void | UpdateZeroCrossingPoint() override |
std::shared_ptr< MeshWrapper > | GetMeshWrapper() const |
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 | |
---|---|
bool | IsDomainFixed() const |
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 |
Public Types Documentation
using Pointer
using shapeworks::MeshDomain::Pointer = std::shared_ptr<MeshDomain>;
Public Functions Documentation
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 ApplyVectorConstraints
bool ApplyVectorConstraints(
VectorDoubleType & gradE,
const PointType & pos
) const
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 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 InvalidateParticlePosition
virtual void InvalidateParticlePosition(
int idx
) const override
Reimplements: shapeworks::ParticleDomain::InvalidateParticlePosition
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 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
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 GetValidLocationNear
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 GetSurfaceArea
inline virtual double GetSurfaceArea() const override
Reimplements: shapeworks::ParticleDomain::GetSurfaceArea
Use for neighborhood radius.
function GetMaxDiameter
virtual double GetMaxDiameter() const override
Reimplements: shapeworks::ParticleDomain::GetMaxDiameter
GetMaxDiameter returns the maximum diameter of the domain and is used for computing sigma
function SampleGradientAtPoint
virtual vnl_vector_fixed< float, DIMENSION > SampleGradientAtPoint(
const PointType & point,
int idx
) const override
Reimplements: shapeworks::ParticleDomain::SampleGradientAtPoint
function SampleNormalAtPoint
virtual vnl_vector_fixed< float, DIMENSION > SampleNormalAtPoint(
const PointType & point,
int idx
) const override
Reimplements: shapeworks::ParticleDomain::SampleNormalAtPoint
function SampleGradNAtPoint
virtual GradNType SampleGradNAtPoint(
const PointType & p,
int idx
) const override
Reimplements: shapeworks::ParticleDomain::SampleGradNAtPoint
function Distance
double Distance(
const PointType & a,
int idx_a,
const PointType & b,
int idx_b,
vnl_vector_fixed< double, DIMENSION > * out_grad =nullptr
) const override
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 IsWithinDistance
virtual bool IsWithinDistance(
const PointType & a,
int idx_a,
const PointType & b,
int idx_b,
double test_dist,
double & distance
) const override
Reimplements: shapeworks::ParticleDomain::IsWithinDistance
Returns whether or not the two points are separated by the given distance
function DeleteImages
inline virtual void DeleteImages() override
Reimplements: shapeworks::ParticleDomain::DeleteImages
function DeletePartialDerivativeImages
inline virtual void DeletePartialDerivativeImages() override
Reimplements: shapeworks::ParticleDomain::DeletePartialDerivativeImages
function SetMesh
void SetMesh(
std::shared_ptr< MeshWrapper > mesh_,
double geodesic_remesh_percent
)
function GetSWMesh
inline std::shared_ptr< Mesh > GetSWMesh() const
function UpdateZeroCrossingPoint
inline virtual void UpdateZeroCrossingPoint() override
Reimplements: shapeworks::ParticleDomain::UpdateZeroCrossingPoint
function GetMeshWrapper
inline std::shared_ptr< MeshWrapper > GetMeshWrapper() const
Updated on 2024-11-11 at 19:51:45 +0000