Tatooine
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes | Private Attributes | Friends | List of all members
tatooine::pointset< Real, NumDimensions > Struct Template Reference

#include <pointset.h>

Inheritance diagram for tatooine::pointset< Real, NumDimensions >:
[legend]
Collaboration diagram for tatooine::pointset< Real, NumDimensions >:
[legend]

Classes

struct  vertex_handle
 

Public Types

using real_type = Real
 
using this_type = pointset< Real, NumDimensions >
 
using vec_type = vec< Real, NumDimensions >
 
using pos_type = vec_type
 
using flann_index_type = flann::Index< flann::L2< Real > >
 
using vertex_container = detail::pointset::vertex_container< Real, NumDimensions >
 
using const_vertex_container = detail::pointset::const_vertex_container< Real, NumDimensions >
 
using vertex_property_type = vector_property< vertex_handle >
 
template<typename T >
using typed_vertex_property_type = typed_vector_property< vertex_handle, T >
 
using vertex_property_container_type = std::map< std::string, std::unique_ptr< vertex_property_type > >
 
template<typename T >
using inverse_distance_weighting_sampler_type = detail::pointset::inverse_distance_weighting_sampler< Real, NumDimensions, T >
 
template<typename T >
using natural_neighbor_coordinates_sampler_type = detail::pointset::natural_neighbor_coordinates_sampler< Real, NumDimensions, T >
 
template<typename T , typename Gradient >
using natural_neighbor_coordinates_sampler_with_gradients_type = detail::pointset::natural_neighbor_coordinates_sampler_with_gradients< Real, NumDimensions, T, Gradient >
 

Public Member Functions

 pointset ()=default
 
 ~pointset ()=default
 
 pointset (std::initializer_list< pos_type > &&vertices)
 
 pointset (pointset const &other)
 
 pointset (pointset &&other) noexcept
 
 pointset (std::vector< pos_type > const &vertices)
 
 pointset (std::vector< pos_type > &&vertices)
 
 pointset (filesystem::path const &path)
 
auto operator= (pointset const &other) -> pointset &
 
auto operator= (pointset &&other) noexcept -> pointset &=default
 
auto axis_aligned_bounding_box () const
 
auto vertex_properties () const -> auto const &
 
auto vertex_properties () -> auto &
 
auto has_vertex_property (std::string const &name) const
 
auto at (vertex_handle const v) -> auto &
 
auto at (vertex_handle const v) const -> auto const &
 
auto vertex_at (vertex_handle const v) -> auto &
 
auto vertex_at (vertex_handle const v) const -> auto const &
 
auto vertex_at (std::size_t const i) -> auto &
 
auto vertex_at (std::size_t const i) const -> auto const &
 
auto operator[] (vertex_handle const v) -> auto &
 
auto operator[] (vertex_handle const v) const -> auto const &
 
auto vertices () const
 
auto vertices ()
 
auto num_vertices () const
 
auto num_vertex_properties () const
 
auto vertex_position_data () const -> auto const &
 
auto invalid_vertices () const -> auto const &
 
auto tidy_up ()
 tidies up invalid vertices More...
 
auto remove (vertex_handle const v)
 
constexpr auto is_valid (vertex_handle const v) const -> bool
 
auto clear_vertices ()
 
auto clear ()
 
template<invocable< pos_type > F>
auto sample_to_vertex_property (F &&f, std::string const &name) -> auto &
 
template<invocable< pos_type > F>
auto sample_to_vertex_property (F &&f, std::string const &name, execution_policy::sequential_t) -> auto &
 
template<invocable< pos_type > F>
auto sample_to_vertex_property (F &&f, std::string const &name, execution_policy::parallel_t) -> auto &
 
auto join (this_type const &other)
 
auto find_duplicates (Real eps=1e-6)
 
template<typename T >
auto radial_basis_functions_sampler_with_linear_kernel (typed_vertex_property_type< T > const &prop) const
 Constructs a radial basis functions interpolator. More...
 
template<typename T >
auto radial_basis_functions_sampler_with_cubic_kernel (typed_vertex_property_type< T > const &prop) const
 Constructs a radial basis functions interpolator. More...
 
template<typename T >
auto radial_basis_functions_sampler_with_gaussian_kernel (typed_vertex_property_type< T > const &prop, Real const epsilon) const
 Constructs a radial basis functions interpolator. More...
 
template<typename T >
auto radial_basis_functions_sampler_with_thin_plate_spline_kernel (typed_vertex_property_type< T > const &prop) const
 Constructs a radial basis functions interpolator. More...
 
template<typename T >
auto radial_basis_functions_sampler (typed_vertex_property_type< T > const &prop, invocable< Real > auto &&f) const
 Constructs a radial basis functions interpolator. More...
 
template<typename T >
auto radial_basis_functions_sampler (typed_vertex_property_type< T > const &prop) const
 Constructs a radial basis functions interpolator with thin plate spline kernel. More...
 
template<typename ValueType , typename GradientType >
auto radial_basis_functions_sampler (typed_vertex_property_type< ValueType > const &values, typed_vertex_property_type< GradientType > const &gradients) const
 Constructs a radial basis functions interpolator that also takes the gradients of the property. More...
 
auto insert_vertex (arithmetic auto const ... ts)
 
auto insert_vertex (pos_type const &v)
 
auto insert_vertex (pos_type &&v)
 
template<typename T >
auto vertex_property (std::string const &name) -> auto &
 using specified vertices of point_set More...
 
template<typename T >
auto vertex_property (std::string const &name) const -> const auto &
 
auto scalar_vertex_property (std::string const &name) const -> auto const &
 
auto scalar_vertex_property (std::string const &name) -> auto &
 
auto vec2_vertex_property (std::string const &name) const -> auto const &
 
auto vec2_vertex_property (std::string const &name) -> auto &
 
auto vec3_vertex_property (std::string const &name) const -> auto const &
 
auto vec3_vertex_property (std::string const &name) -> auto &
 
auto vec4_vertex_property (std::string const &name) const -> auto const &
 
auto vec4_vertex_property (std::string const &name) -> auto &
 
auto mat2_vertex_property (std::string const &name) const -> auto const &
 
auto mat2_vertex_property (std::string const &name) -> auto &
 
auto mat3_vertex_property (std::string const &name) const -> auto const &
 
auto mat3_vertex_property (std::string const &name) -> auto &
 
auto mat4_vertex_property (std::string const &name) const -> auto const &
 
auto mat4_vertex_property (std::string const &name) -> auto &
 
template<typename T >
auto insert_vertex_property (std::string const &name, T const &value=T{}) -> auto &
 
auto insert_scalar_vertex_property (std::string const &name, tatooine::real_number const value=tatooine::real_number{}) -> auto &
 
auto insert_vec2_vertex_property (std::string const &name, tatooine::vec2 const value=tatooine::vec2{}) -> auto &
 
auto insert_vec3_vertex_property (std::string const &name, tatooine::vec3 const value=tatooine::vec3{}) -> auto &
 
auto insert_vec4_vertex_property (std::string const &name, tatooine::vec4 const value=tatooine::vec4{}) -> auto &
 
auto insert_mat2_vertex_property (std::string const &name, tatooine::mat2 const value=tatooine::mat2{}) -> auto &
 
auto insert_mat3_vertex_property (std::string const &name, tatooine::mat3 const value=tatooine::mat3{}) -> auto &
 
auto insert_mat4_vertex_property (std::string const &name, tatooine::mat4 const value=tatooine::mat4{}) -> auto &
 
auto read (filesystem::path const &p)
 
auto read_vtp (filesystem::path const &path) -> void requires(NumDimensions==2)||(NumDimensions==3)
 
template<typename T >
auto inverse_distance_weighting_sampler (typed_vertex_property_type< T > const &prop, Real const radius=1) const
 
template<typename T >
requires (NumDimensions == 3 || NumDimensions == 2)
auto moving_least_squares_sampler (typed_vertex_property_type< T > const &prop, Real const radius, invocable< real_type > auto &&weighting) const
 Moving Least Squares Sampler. More...
 
template<typename T >
requires (NumDimensions == 3 || NumDimensions == 2)
auto moving_least_squares_sampler (typed_vertex_property_type< T > const &prop, Real const radius) const
 Moving Least Squares Sampler. More...
 
template<typename T >
auto natural_neighbor_coordinates_sampler (typed_vertex_property_type< T > const &prop) const
 
template<typename T , typename Gradient >
auto natural_neighbor_coordinates_sampler_with_gradients (typed_vertex_property_type< T > const &prop, typed_vertex_property_type< Gradient > const &gradients) const
 

Static Public Member Functions

static constexpr auto num_dimensions () -> std::size_t
 

Protected Attributes

std::vector< pos_typem_vertex_position_data
 

Private Attributes

std::set< vertex_handlem_invalid_vertices
 
vertex_property_container_type m_vertex_properties
 
std::unique_ptr< flann_index_typem_kd_tree
 
std::mutex m_flann_mutex
 

Friends

struct detail::pointset::vertex_container< Real, NumDimensions >
 
struct detail::pointset::const_vertex_container< Real, NumDimensions >
 
auto write (filesystem::path const &path) const
 
auto write_vtk (filesystem::path const &path, std::string const &title="Tatooine pointset") const -> void requires(NumDimensions==3||NumDimensions==2)
 
auto write_vtp (filesystem::path const &path) const
 
auto write_vertices_vtk (vtk::legacy_file_writer &writer) const
 
template<typename T >
auto write_prop_vtk (vtk::legacy_file_writer &writer, std::string const &name, typed_vertex_property_type< T > const &prop) const -> void
 
template<typename... Ts>
auto write_prop_vtk (vtk::legacy_file_writer &writer) const -> void
 
template<typename T , typename header_type >
auto write_vertex_property_data_array_vtp (auto const &name, auto const &prop, auto &file, auto offset) const -> std::size_t
 
template<typename T , typename header_type >
auto write_vertex_property_appended_data_vtp (auto const &prop, auto &file) const
 
auto rebuild_kd_tree ()
 
auto build_kd_tree_index ()
 
auto invalidate_kd_tree () const
 
auto nearest_neighbor (pos_type const &x) const
 
auto nearest_neighbors_raw (pos_type const &x, std::size_t const num_nearest_neighbors, flann::SearchParams const params={}) const
 
auto nearest_neighbors (pos_type const &x, std::size_t const num_nearest_neighbors) const
 
auto nearest_neighbors_radius_raw (pos_type const &x, Real const radius, flann::SearchParams const params={}) const -> std::pair< std::vector< int >, std::vector< Real > >
 
auto nearest_neighbors_radius (pos_type const &x, Real const radius) const
 
auto build_kd_tree () const -> auto &
 

Member Typedef Documentation

◆ const_vertex_container

template<floating_point Real, std::size_t NumDimensions>
using tatooine::pointset< Real, NumDimensions >::const_vertex_container = detail::pointset::const_vertex_container<Real, NumDimensions>

◆ flann_index_type

template<floating_point Real, std::size_t NumDimensions>
using tatooine::pointset< Real, NumDimensions >::flann_index_type = flann::Index<flann::L2<Real> >

◆ inverse_distance_weighting_sampler_type

template<floating_point Real, std::size_t NumDimensions>
template<typename T >
using tatooine::pointset< Real, NumDimensions >::inverse_distance_weighting_sampler_type = detail::pointset::inverse_distance_weighting_sampler<Real, NumDimensions, T>

◆ natural_neighbor_coordinates_sampler_type

template<floating_point Real, std::size_t NumDimensions>
template<typename T >
using tatooine::pointset< Real, NumDimensions >::natural_neighbor_coordinates_sampler_type = detail::pointset::natural_neighbor_coordinates_sampler<Real, NumDimensions, T>

◆ natural_neighbor_coordinates_sampler_with_gradients_type

template<floating_point Real, std::size_t NumDimensions>
template<typename T , typename Gradient >
using tatooine::pointset< Real, NumDimensions >::natural_neighbor_coordinates_sampler_with_gradients_type = detail::pointset::natural_neighbor_coordinates_sampler_with_gradients< Real, NumDimensions, T, Gradient>

◆ pos_type

template<floating_point Real, std::size_t NumDimensions>
using tatooine::pointset< Real, NumDimensions >::pos_type = vec_type

◆ real_type

template<floating_point Real, std::size_t NumDimensions>
using tatooine::pointset< Real, NumDimensions >::real_type = Real

◆ this_type

template<floating_point Real, std::size_t NumDimensions>
using tatooine::pointset< Real, NumDimensions >::this_type = pointset<Real, NumDimensions>

◆ typed_vertex_property_type

template<floating_point Real, std::size_t NumDimensions>
template<typename T >
using tatooine::pointset< Real, NumDimensions >::typed_vertex_property_type = typed_vector_property<vertex_handle, T>

◆ vec_type

template<floating_point Real, std::size_t NumDimensions>
using tatooine::pointset< Real, NumDimensions >::vec_type = vec<Real, NumDimensions>

◆ vertex_container

template<floating_point Real, std::size_t NumDimensions>
using tatooine::pointset< Real, NumDimensions >::vertex_container = detail::pointset::vertex_container<Real, NumDimensions>

◆ vertex_property_container_type

template<floating_point Real, std::size_t NumDimensions>
using tatooine::pointset< Real, NumDimensions >::vertex_property_container_type = std::map<std::string, std::unique_ptr<vertex_property_type> >

◆ vertex_property_type

template<floating_point Real, std::size_t NumDimensions>
using tatooine::pointset< Real, NumDimensions >::vertex_property_type = vector_property<vertex_handle>

Constructor & Destructor Documentation

◆ pointset() [1/7]

template<floating_point Real, std::size_t NumDimensions>
tatooine::pointset< Real, NumDimensions >::pointset ( )
default

◆ ~pointset()

template<floating_point Real, std::size_t NumDimensions>
tatooine::pointset< Real, NumDimensions >::~pointset ( )
default

◆ pointset() [2/7]

template<floating_point Real, std::size_t NumDimensions>
tatooine::pointset< Real, NumDimensions >::pointset ( std::initializer_list< pos_type > &&  vertices)
inline

◆ pointset() [3/7]

template<floating_point Real, std::size_t NumDimensions>
tatooine::pointset< Real, NumDimensions >::pointset ( pointset< Real, NumDimensions > const &  other)
inline

◆ pointset() [4/7]

template<floating_point Real, std::size_t NumDimensions>
tatooine::pointset< Real, NumDimensions >::pointset ( pointset< Real, NumDimensions > &&  other)
inlinenoexcept

◆ pointset() [5/7]

template<floating_point Real, std::size_t NumDimensions>
tatooine::pointset< Real, NumDimensions >::pointset ( std::vector< pos_type > const &  vertices)
inlineexplicit

◆ pointset() [6/7]

template<floating_point Real, std::size_t NumDimensions>
tatooine::pointset< Real, NumDimensions >::pointset ( std::vector< pos_type > &&  vertices)
inlineexplicit

◆ pointset() [7/7]

template<floating_point Real, std::size_t NumDimensions>
tatooine::pointset< Real, NumDimensions >::pointset ( filesystem::path const &  path)
inlineexplicit

Member Function Documentation

◆ at() [1/2]

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::at ( vertex_handle const  v) -> auto &
inline

◆ at() [2/2]

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::at ( vertex_handle const  v) const -> auto const &
inline

◆ axis_aligned_bounding_box()

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::axis_aligned_bounding_box ( ) const
inline

◆ build_kd_tree()

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::build_kd_tree ( ) const -> auto &
inlineprivate

◆ build_kd_tree_index()

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::build_kd_tree_index ( )
inline

◆ clear()

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::clear ( )
inline

◆ clear_vertices()

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::clear_vertices ( )
inline

◆ find_duplicates()

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::find_duplicates ( Real  eps = 1e-6)
inline

◆ has_vertex_property()

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::has_vertex_property ( std::string const &  name) const
inline

◆ insert_mat2_vertex_property()

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::insert_mat2_vertex_property ( std::string const &  name,
tatooine::mat2 const  value = tatooine::mat2{} 
) -> auto &
inline

◆ insert_mat3_vertex_property()

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::insert_mat3_vertex_property ( std::string const &  name,
tatooine::mat3 const  value = tatooine::mat3{} 
) -> auto &
inline

◆ insert_mat4_vertex_property()

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::insert_mat4_vertex_property ( std::string const &  name,
tatooine::mat4 const  value = tatooine::mat4{} 
) -> auto &
inline

◆ insert_scalar_vertex_property()

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::insert_scalar_vertex_property ( std::string const &  name,
tatooine::real_number const  value = tatooine::real_number{} 
) -> auto &
inline

◆ insert_vec2_vertex_property()

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::insert_vec2_vertex_property ( std::string const &  name,
tatooine::vec2 const  value = tatooine::vec2{} 
) -> auto &
inline

◆ insert_vec3_vertex_property()

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::insert_vec3_vertex_property ( std::string const &  name,
tatooine::vec3 const  value = tatooine::vec3{} 
) -> auto &
inline

◆ insert_vec4_vertex_property()

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::insert_vec4_vertex_property ( std::string const &  name,
tatooine::vec4 const  value = tatooine::vec4{} 
) -> auto &
inline

◆ insert_vertex() [1/3]

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::insert_vertex ( arithmetic auto const ...  ts)
inline

◆ insert_vertex() [2/3]

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::insert_vertex ( pos_type &&  v)
inline

◆ insert_vertex() [3/3]

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::insert_vertex ( pos_type const &  v)
inline

◆ insert_vertex_property()

template<floating_point Real, std::size_t NumDimensions>
template<typename T >
auto tatooine::pointset< Real, NumDimensions >::insert_vertex_property ( std::string const &  name,
T const &  value = T{} 
) -> auto &
inline

◆ invalid_vertices()

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::invalid_vertices ( ) const -> auto const &
inline

◆ invalidate_kd_tree()

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::invalidate_kd_tree ( ) const
inline

◆ inverse_distance_weighting_sampler()

template<floating_point Real, std::size_t NumDimensions>
template<typename T >
auto tatooine::pointset< Real, NumDimensions >::inverse_distance_weighting_sampler ( typed_vertex_property_type< T > const &  prop,
Real const  radius = 1 
) const
inline

◆ is_valid()

template<floating_point Real, std::size_t NumDimensions>
constexpr auto tatooine::pointset< Real, NumDimensions >::is_valid ( vertex_handle const  v) const -> bool
inlineconstexpr

◆ join()

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::join ( this_type const &  other)
inline

◆ mat2_vertex_property() [1/2]

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::mat2_vertex_property ( std::string const &  name) -> auto &
inline

◆ mat2_vertex_property() [2/2]

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::mat2_vertex_property ( std::string const &  name) const -> auto const &
inline

◆ mat3_vertex_property() [1/2]

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::mat3_vertex_property ( std::string const &  name) -> auto &
inline

◆ mat3_vertex_property() [2/2]

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::mat3_vertex_property ( std::string const &  name) const -> auto const &
inline

◆ mat4_vertex_property() [1/2]

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::mat4_vertex_property ( std::string const &  name) -> auto &
inline

◆ mat4_vertex_property() [2/2]

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::mat4_vertex_property ( std::string const &  name) const -> auto const &
inline

◆ moving_least_squares_sampler() [1/2]

template<floating_point Real, std::size_t NumDimensions>
template<typename T >
requires (NumDimensions == 3 || NumDimensions == 2)
auto tatooine::pointset< Real, NumDimensions >::moving_least_squares_sampler ( typed_vertex_property_type< T > const &  prop,
Real const  radius 
) const
inline

Moving Least Squares Sampler.

Creates a field that interpolates scattered data with moving least squares with predefind weighting function

\(w(d) = 1 - 6\cdot d^2 + 8\cdot d^3 + 3\cdot d^4\),

where d is the normalized distance.

Parameters
propSome vertex property
radiusRadius of local support

◆ moving_least_squares_sampler() [2/2]

template<floating_point Real, std::size_t NumDimensions>
template<typename T >
requires (NumDimensions == 3 || NumDimensions == 2)
auto tatooine::pointset< Real, NumDimensions >::moving_least_squares_sampler ( typed_vertex_property_type< T > const &  prop,
Real const  radius,
invocable< real_type > auto &&  weighting 
) const
inline

Moving Least Squares Sampler.

Creates a field that interpolates scattered data with moving least squares.

Parameters
propSome vertex property
radiusRadius of local support
weightingCallable that gets as parameter the normalized distance. 1 means point is distant radius. 0 means point is exactly at currently queried point.

◆ natural_neighbor_coordinates_sampler()

template<floating_point Real, std::size_t NumDimensions>
template<typename T >
auto tatooine::pointset< Real, NumDimensions >::natural_neighbor_coordinates_sampler ( typed_vertex_property_type< T > const &  prop) const
inline

◆ natural_neighbor_coordinates_sampler_with_gradients()

template<floating_point Real, std::size_t NumDimensions>
template<typename T , typename Gradient >
auto tatooine::pointset< Real, NumDimensions >::natural_neighbor_coordinates_sampler_with_gradients ( typed_vertex_property_type< T > const &  prop,
typed_vertex_property_type< Gradient > const &  gradients 
) const
inline

◆ nearest_neighbor()

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::nearest_neighbor ( pos_type const &  x) const
inline

◆ nearest_neighbors()

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::nearest_neighbors ( pos_type const &  x,
std::size_t const  num_nearest_neighbors 
) const
inline

◆ nearest_neighbors_radius()

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::nearest_neighbors_radius ( pos_type const &  x,
Real const  radius 
) const
inline

◆ nearest_neighbors_radius_raw()

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::nearest_neighbors_radius_raw ( pos_type const &  x,
Real const  radius,
flann::SearchParams const  params = {} 
) const -> std::pair<std::vector<int>, std::vector<Real>>
inline

Takes the raw output indices of flann without converting them into vertex handles.

◆ nearest_neighbors_raw()

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::nearest_neighbors_raw ( pos_type const &  x,
std::size_t const  num_nearest_neighbors,
flann::SearchParams const  params = {} 
) const
inline

Takes the raw output indices of flann without converting them into vertex handles.

◆ num_dimensions()

template<floating_point Real, std::size_t NumDimensions>
static constexpr auto tatooine::pointset< Real, NumDimensions >::num_dimensions ( ) -> std::size_t
inlinestaticconstexpr

◆ num_vertex_properties()

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::num_vertex_properties ( ) const
inline

◆ num_vertices()

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::num_vertices ( ) const
inline

◆ operator=() [1/2]

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::operator= ( pointset< Real, NumDimensions > &&  other) -> pointset &=default
defaultnoexcept

◆ operator=() [2/2]

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::operator= ( pointset< Real, NumDimensions > const &  other) -> pointset &
inline

◆ operator[]() [1/2]

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::operator[] ( vertex_handle const  v) -> auto &
inline

◆ operator[]() [2/2]

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::operator[] ( vertex_handle const  v) const -> auto const &
inline

◆ radial_basis_functions_sampler() [1/3]

template<floating_point Real, std::size_t NumDimensions>
template<typename T >
auto tatooine::pointset< Real, NumDimensions >::radial_basis_functions_sampler ( typed_vertex_property_type< T > const &  prop) const
inline

Constructs a radial basis functions interpolator with thin plate spline kernel.

◆ radial_basis_functions_sampler() [2/3]

template<floating_point Real, std::size_t NumDimensions>
template<typename T >
auto tatooine::pointset< Real, NumDimensions >::radial_basis_functions_sampler ( typed_vertex_property_type< T > const &  prop,
invocable< Real > auto &&  f 
) const
inline

Constructs a radial basis functions interpolator.

Constructs a radial basis functions interpolator with a user-defined kernel function.

◆ radial_basis_functions_sampler() [3/3]

template<floating_point Real, std::size_t NumDimensions>
template<typename ValueType , typename GradientType >
auto tatooine::pointset< Real, NumDimensions >::radial_basis_functions_sampler ( typed_vertex_property_type< ValueType > const &  values,
typed_vertex_property_type< GradientType > const &  gradients 
) const
inline

Constructs a radial basis functions interpolator that also takes the gradients of the property.

Constructs a radial basis functions interpolator with gradients. The kernel functions is

\[\phi(r) = r^4\cdot\log(r)\]

.

◆ radial_basis_functions_sampler_with_cubic_kernel()

template<floating_point Real, std::size_t NumDimensions>
template<typename T >
auto tatooine::pointset< Real, NumDimensions >::radial_basis_functions_sampler_with_cubic_kernel ( typed_vertex_property_type< T > const &  prop) const
inline

Constructs a radial basis functions interpolator.

Constructs a radial basis functions interpolator with kernel function:

\(k(d) = d^3\)

Parameters
epsilonShape parameter

◆ radial_basis_functions_sampler_with_gaussian_kernel()

template<floating_point Real, std::size_t NumDimensions>
template<typename T >
auto tatooine::pointset< Real, NumDimensions >::radial_basis_functions_sampler_with_gaussian_kernel ( typed_vertex_property_type< T > const &  prop,
Real const  epsilon 
) const
inline

Constructs a radial basis functions interpolator.

Constructs a radial basis functions interpolator with kernel function:

\(k(d) = e^{-(\epsilon d)^2}\)

Parameters
epsilonShape parameter

◆ radial_basis_functions_sampler_with_linear_kernel()

template<floating_point Real, std::size_t NumDimensions>
template<typename T >
auto tatooine::pointset< Real, NumDimensions >::radial_basis_functions_sampler_with_linear_kernel ( typed_vertex_property_type< T > const &  prop) const
inline

Constructs a radial basis functions interpolator.

Constructs a radial basis functions interpolator with kernel function:

\(k(d) = d\)

Parameters
epsilonShape parameter

◆ radial_basis_functions_sampler_with_thin_plate_spline_kernel()

template<floating_point Real, std::size_t NumDimensions>
template<typename T >
auto tatooine::pointset< Real, NumDimensions >::radial_basis_functions_sampler_with_thin_plate_spline_kernel ( typed_vertex_property_type< T > const &  prop) const
inline

Constructs a radial basis functions interpolator.

Constructs a radial basis functions interpolator with a thin plate spline kernel function:

\(k(d) = d^2 \cdot \log(d)\)

◆ read()

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::read ( filesystem::path const &  p)
inline

◆ read_vtp()

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::read_vtp ( filesystem::path const &  path) -> void requires(NumDimensions == 2) || (NumDimensions == 3)
inline

◆ rebuild_kd_tree()

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::rebuild_kd_tree ( )
inline

◆ remove()

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::remove ( vertex_handle const  v)
inline

◆ sample_to_vertex_property() [1/3]

template<floating_point Real, std::size_t NumDimensions>
template<invocable< pos_type > F>
auto tatooine::pointset< Real, NumDimensions >::sample_to_vertex_property ( F &&  f,
std::string const &  name 
) -> auto &
inline

◆ sample_to_vertex_property() [2/3]

template<floating_point Real, std::size_t NumDimensions>
template<invocable< pos_type > F>
auto tatooine::pointset< Real, NumDimensions >::sample_to_vertex_property ( F &&  f,
std::string const &  name,
execution_policy::parallel_t   
) -> auto &
inline

◆ sample_to_vertex_property() [3/3]

template<floating_point Real, std::size_t NumDimensions>
template<invocable< pos_type > F>
auto tatooine::pointset< Real, NumDimensions >::sample_to_vertex_property ( F &&  f,
std::string const &  name,
execution_policy::sequential_t   
) -> auto &
inline

◆ scalar_vertex_property() [1/2]

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::scalar_vertex_property ( std::string const &  name) -> auto &
inline

◆ scalar_vertex_property() [2/2]

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::scalar_vertex_property ( std::string const &  name) const -> auto const &
inline

◆ tidy_up()

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::tidy_up ( )
inline

tidies up invalid vertices

◆ vec2_vertex_property() [1/2]

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::vec2_vertex_property ( std::string const &  name) -> auto &
inline

◆ vec2_vertex_property() [2/2]

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::vec2_vertex_property ( std::string const &  name) const -> auto const &
inline

◆ vec3_vertex_property() [1/2]

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::vec3_vertex_property ( std::string const &  name) -> auto &
inline

◆ vec3_vertex_property() [2/2]

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::vec3_vertex_property ( std::string const &  name) const -> auto const &
inline

◆ vec4_vertex_property() [1/2]

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::vec4_vertex_property ( std::string const &  name) -> auto &
inline

◆ vec4_vertex_property() [2/2]

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::vec4_vertex_property ( std::string const &  name) const -> auto const &
inline

◆ vertex_at() [1/4]

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::vertex_at ( std::size_t const  i) -> auto &
inline

◆ vertex_at() [2/4]

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::vertex_at ( std::size_t const  i) const -> auto const &
inline

◆ vertex_at() [3/4]

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::vertex_at ( vertex_handle const  v) -> auto &
inline

◆ vertex_at() [4/4]

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::vertex_at ( vertex_handle const  v) const -> auto const &
inline

◆ vertex_position_data()

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::vertex_position_data ( ) const -> auto const &
inline

◆ vertex_properties() [1/2]

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::vertex_properties ( ) -> auto &
inline

◆ vertex_properties() [2/2]

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::vertex_properties ( ) const -> auto const &
inline

◆ vertex_property() [1/2]

template<floating_point Real, std::size_t NumDimensions>
template<typename T >
auto tatooine::pointset< Real, NumDimensions >::vertex_property ( std::string const &  name) -> auto &
inline

using specified vertices of point_set

◆ vertex_property() [2/2]

template<floating_point Real, std::size_t NumDimensions>
template<typename T >
auto tatooine::pointset< Real, NumDimensions >::vertex_property ( std::string const &  name) const -> const auto &
inline

◆ vertices() [1/2]

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::vertices ( )
inline

◆ vertices() [2/2]

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::vertices ( ) const
inline

◆ write()

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::write ( filesystem::path const &  path) const
inline

◆ write_prop_vtk() [1/2]

template<floating_point Real, std::size_t NumDimensions>
template<typename... Ts>
auto tatooine::pointset< Real, NumDimensions >::write_prop_vtk ( vtk::legacy_file_writer writer) const -> void
inlineprivate

◆ write_prop_vtk() [2/2]

template<floating_point Real, std::size_t NumDimensions>
template<typename T >
auto tatooine::pointset< Real, NumDimensions >::write_prop_vtk ( vtk::legacy_file_writer writer,
std::string const &  name,
typed_vertex_property_type< T > const &  prop 
) const -> void
inlineprivate

◆ write_vertex_property_appended_data_vtp()

template<floating_point Real, std::size_t NumDimensions>
template<typename T , typename header_type >
auto tatooine::pointset< Real, NumDimensions >::write_vertex_property_appended_data_vtp ( auto const &  prop,
auto &  file 
) const
inlineprivate

◆ write_vertex_property_data_array_vtp()

template<floating_point Real, std::size_t NumDimensions>
template<typename T , typename header_type >
auto tatooine::pointset< Real, NumDimensions >::write_vertex_property_data_array_vtp ( auto const &  name,
auto const &  prop,
auto &  file,
auto  offset 
) const -> std::size_t
inlineprivate

◆ write_vertices_vtk()

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::write_vertices_vtk ( vtk::legacy_file_writer writer) const
inlineprivate

◆ write_vtk()

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::write_vtk ( filesystem::path const &  path,
std::string const &  title = "Tatooine pointset< Real, NumDimensions >" 
) const -> void requires(NumDimensions == 3 || NumDimensions == 2)
inline

◆ write_vtp()

template<floating_point Real, std::size_t NumDimensions>
auto tatooine::pointset< Real, NumDimensions >::write_vtp ( filesystem::path const &  path) const
inline

Friends And Related Function Documentation

◆ detail::pointset::const_vertex_container< Real, NumDimensions >

template<floating_point Real, std::size_t NumDimensions>
friend struct detail::pointset::const_vertex_container< Real, NumDimensions >
friend

◆ detail::pointset::vertex_container< Real, NumDimensions >

template<floating_point Real, std::size_t NumDimensions>
friend struct detail::pointset::vertex_container< Real, NumDimensions >
friend

Member Data Documentation

◆ m_flann_mutex

template<floating_point Real, std::size_t NumDimensions>
std::mutex tatooine::pointset< Real, NumDimensions >::m_flann_mutex
mutableprivate

◆ m_invalid_vertices

template<floating_point Real, std::size_t NumDimensions>
std::set<vertex_handle> tatooine::pointset< Real, NumDimensions >::m_invalid_vertices
private

◆ m_kd_tree

template<floating_point Real, std::size_t NumDimensions>
std::unique_ptr<flann_index_type> tatooine::pointset< Real, NumDimensions >::m_kd_tree
mutableprivate

◆ m_vertex_position_data

template<floating_point Real, std::size_t NumDimensions>
std::vector<pos_type> tatooine::pointset< Real, NumDimensions >::m_vertex_position_data
protected

◆ m_vertex_properties

template<floating_point Real, std::size_t NumDimensions>
vertex_property_container_type tatooine::pointset< Real, NumDimensions >::m_vertex_properties
private

The documentation for this struct was generated from the following file: