Skip to content

shapeworks::Surface

Public Types

Name
using ParticleDomain::PointType PointType
using ParticleDomain::GradNType GradNType
using vnl_vector_fixed< float, 3 > NormalType
using vnl_vector_fixed< double, 3 > VectorType

Public Functions

Name
Surface(vtkSmartPointer< vtkPolyData > mesh, bool geodesics_enabled =false, size_t geodesics_cache_multiplier_size =0)
~Surface() =default
double compute_distance(const PointType & pointa, int idxa, const PointType & pointb, int idxb, VectorType * out_grad =nullptr) const
bool is_within_distance(const PointType & pointa, int idxa, const PointType & pointb, int idxb, double test_dist, double & dist) const
PointType geodesic_walk(PointType p, int idx, VectorType vector) const
VectorType project_vector_to_surface_tangent(const PointType & pointa, int idx, VectorType & vector) const
NormalType sample_normal_at_point(PointType p, int idx =-1) const
GradNType sample_gradient_normal_at_point(PointType p, int idx) const
PointType snap_to_mesh(PointType pointa, int idx) const
PointType get_point_on_mesh() const
const PointType & get_mesh_lower_bound() const
const PointType & get_mesh_upper_bound() const
virtual void invalidate_particle(int idx)
vtkSmartPointer< vtkPolyData > get_polydata() const
bool is_geodesics_enabled() const

Public Types Documentation

using PointType

using shapeworks::Surface::PointType =  ParticleDomain::PointType;

using GradNType

using shapeworks::Surface::GradNType =  ParticleDomain::GradNType;

using NormalType

using shapeworks::Surface::NormalType =  vnl_vector_fixed<float, 3>;

using VectorType

using shapeworks::Surface::VectorType =  vnl_vector_fixed<double, 3>;

Public Functions Documentation

function Surface

explicit Surface(
    vtkSmartPointer< vtkPolyData > mesh,
    bool geodesics_enabled =false,
    size_t geodesics_cache_multiplier_size =0
)

function ~Surface

~Surface() =default

function compute_distance

double compute_distance(
    const PointType & pointa,
    int idxa,
    const PointType & pointb,
    int idxb,
    VectorType * out_grad =nullptr
) const

function is_within_distance

bool is_within_distance(
    const PointType & pointa,
    int idxa,
    const PointType & pointb,
    int idxb,
    double test_dist,
    double & dist
) const

function geodesic_walk

PointType geodesic_walk(
    PointType p,
    int idx,
    VectorType vector
) const

function project_vector_to_surface_tangent

VectorType project_vector_to_surface_tangent(
    const PointType & pointa,
    int idx,
    VectorType & vector
) const

function sample_normal_at_point

NormalType sample_normal_at_point(
    PointType p,
    int idx =-1
) const

function sample_gradient_normal_at_point

GradNType sample_gradient_normal_at_point(
    PointType p,
    int idx
) const

function snap_to_mesh

PointType snap_to_mesh(
    PointType pointa,
    int idx
) const

function get_point_on_mesh

PointType get_point_on_mesh() const

function get_mesh_lower_bound

inline const PointType & get_mesh_lower_bound() const

function get_mesh_upper_bound

inline const PointType & get_mesh_upper_bound() const

function invalidate_particle

virtual void invalidate_particle(
    int idx
)

function get_polydata

inline vtkSmartPointer< vtkPolyData > get_polydata() const

function is_geodesics_enabled

inline bool is_geodesics_enabled() const

Updated on 2025-04-23 at 22:52:44 +0000