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

#include <unstructured_grid.h>

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

Classes

struct  barycentric_coordinates_vertex_property_sampler_t
 
struct  cell
 
struct  cell_container
 
struct  cell_iterator
 
struct  cell_vertex_iterator
 

Public Types

using this_type = unstructured_grid
 
using parent_t = pointset< Real, NumDimensions >
 
using real_type = Real
 
template<typename T >
using vertex_property_t = typename parent_t::template vertex_property_t< T >
 
- Public Types inherited from tatooine::pointset< Real, NumDimensions >
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

 unstructured_grid ()
 
 unstructured_grid (edgeset< Real, NumDimensions > &&edges)
 
auto cells () const
 
template<typename... Handles>
requires ( (sizeof...(Handles) > 2) && ((is_integral<Handles> || is_same<Handles, vertex_handle>)&&...))
auto insert_cell (Handles const ... handles)
 
auto insert_cell (std::vector< vertex_handle > const &handles)
 
auto write (filesystem::path const &path) const
 
template<typename T , typename... Ts, typename Prop , typename Name , typename Writer >
auto write_vtk_vertex_property (Prop const &prop, Name const &name, Writer &writer) const
 
auto write_vtk (filesystem::path const &path) const
 
template<typename T >
auto sampler (vertex_property_t< T > const &prop) const
 
template<typename T >
auto vertex_property_sampler (std::string const &name) const
 
- Public Member Functions inherited from tatooine::pointset< Real, NumDimensions >
 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
 
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 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
 

Static Public Member Functions

static constexpr auto num_dimensions () -> std::size_t
 
- Static Public Member Functions inherited from tatooine::pointset< Real, NumDimensions >
static constexpr auto num_dimensions () -> std::size_t
 

Private Attributes

std::vector< std::size_t > m_cell_indices {}
 
std::size_t m_num_cells = 0
 

Additional Inherited Members

- Protected Attributes inherited from tatooine::pointset< Real, NumDimensions >
std::vector< pos_typem_vertex_position_data
 

Member Typedef Documentation

◆ parent_t

template<typename Real , std::size_t NumDimensions>
using tatooine::unstructured_grid< Real, NumDimensions >::parent_t = pointset<Real, NumDimensions>

◆ real_type

template<typename Real , std::size_t NumDimensions>
using tatooine::unstructured_grid< Real, NumDimensions >::real_type = Real

◆ this_type

template<typename Real , std::size_t NumDimensions>
using tatooine::unstructured_grid< Real, NumDimensions >::this_type = unstructured_grid

◆ vertex_property_t

template<typename Real , std::size_t NumDimensions>
template<typename T >
using tatooine::unstructured_grid< Real, NumDimensions >::vertex_property_t = typename parent_t::template vertex_property_t<T>

Constructor & Destructor Documentation

◆ unstructured_grid() [1/2]

template<typename Real , std::size_t NumDimensions>
tatooine::unstructured_grid< Real, NumDimensions >::unstructured_grid ( )
inline

◆ unstructured_grid() [2/2]

template<typename Real , std::size_t NumDimensions>
tatooine::unstructured_grid< Real, NumDimensions >::unstructured_grid ( edgeset< Real, NumDimensions > &&  edges)
inlineexplicit

Member Function Documentation

◆ cells()

template<typename Real , std::size_t NumDimensions>
auto tatooine::unstructured_grid< Real, NumDimensions >::cells ( ) const
inline

◆ insert_cell() [1/2]

template<typename Real , std::size_t NumDimensions>
template<typename... Handles>
requires ( (sizeof...(Handles) > 2) && ((is_integral<Handles> || is_same<Handles, vertex_handle>)&&...))
auto tatooine::unstructured_grid< Real, NumDimensions >::insert_cell ( Handles const ...  handles)
inline

◆ insert_cell() [2/2]

template<typename Real , std::size_t NumDimensions>
auto tatooine::unstructured_grid< Real, NumDimensions >::insert_cell ( std::vector< vertex_handle > const &  handles)
inline

◆ num_dimensions()

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

◆ sampler()

template<typename Real , std::size_t NumDimensions>
template<typename T >
auto tatooine::unstructured_grid< Real, NumDimensions >::sampler ( vertex_property_t< T > const &  prop) const
inline

◆ vertex_property_sampler()

template<typename Real , std::size_t NumDimensions>
template<typename T >
auto tatooine::unstructured_grid< Real, NumDimensions >::vertex_property_sampler ( std::string const &  name) const
inline

◆ write()

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

◆ write_vtk()

template<typename Real , std::size_t NumDimensions>
auto tatooine::unstructured_grid< Real, NumDimensions >::write_vtk ( filesystem::path const &  path) const
inline

◆ write_vtk_vertex_property()

template<typename Real , std::size_t NumDimensions>
template<typename T , typename... Ts, typename Prop , typename Name , typename Writer >
auto tatooine::unstructured_grid< Real, NumDimensions >::write_vtk_vertex_property ( Prop const &  prop,
Name const &  name,
Writer &  writer 
) const
inline

Member Data Documentation

◆ m_cell_indices

template<typename Real , std::size_t NumDimensions>
std::vector<std::size_t> tatooine::unstructured_grid< Real, NumDimensions >::m_cell_indices {}
private

◆ m_num_cells

template<typename Real , std::size_t NumDimensions>
std::size_t tatooine::unstructured_grid< Real, NumDimensions >::m_num_cells = 0
private

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