Tatooine
Public Types | Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
tatooine::streamsurface< Flowmap, SeedcurveInterpolationKernel > Struct Template Reference

#include <streamsurface.h>

Collaboration diagram for tatooine::streamsurface< Flowmap, SeedcurveInterpolationKernel >:
[legend]

Public Types

using flowmap_type = std::decay_t< Flowmap >
 
using real_type = typename flowmap_type::real_type
 
using this_type = streamsurface< Flowmap, SeedcurveInterpolationKernel >
 
using seedcurve_type = line< real_type, num_dimensions()>
 
using seedcurve_interpolator_type = typename seedcurve_type::template vertex_property_sampler_type< seedcurve_type, SeedcurveInterpolationKernel >
 
using vec2 = vec< real_type, 2 >
 
using pos_type = vec< real_type, num_dimensions()>
 
using vec_type = vec< real_type, num_dimensions()>
 

Public Member Functions

 streamsurface (convertible_to< Flowmap > auto &&flowmap, arithmetic auto t0u0, arithmetic auto t0u1, seedcurve_type const &seedcurve)
 
 streamsurface (convertible_to< Flowmap > auto &&flowmap, arithmetic auto t0, seedcurve_type const &seedcurve)
 
 streamsurface (convertible_to< Flowmap > auto &&flowmap, seedcurve_type const &seedcurve)
 
auto t0 (real_type const u) const
 
auto flowmap () -> auto &
 
auto flowmap () const -> auto const &
 
auto seedcurve () const -> auto const &
 
auto sample (real_type const u, real_type const v) const -> vec_type
 calculates position of streamsurface More...
 
auto sample (vec2 const &uv) const -> vec_type
 calculates position of streamsurface More...
 
auto distance (vec2 const &uv0, vec2 const &uv1, std::size_t num_samples) const
 
auto operator() (real_type u, real_type v) const
 
auto operator() (vec2 const &uv) const
 
template<template< typename > typename Discretization = hultquist_discretization, typename... Args>
auto discretize (Args &&... args)
 
constexpr auto min_u () const
 
constexpr auto max_u () const
 

Static Public Member Functions

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

Private Attributes

Flowmap m_flowmap
 
real_type m_t0_u0
 
real_type m_t0_u1
 
seedcurve_type m_seedcurve
 
seedcurve_interpolator_type m_seedcurve_interpolator
 
real_type m_min_u
 
real_type m_max_u
 

Member Typedef Documentation

◆ flowmap_type

template<typename Flowmap , template< typename > typename SeedcurveInterpolationKernel>
using tatooine::streamsurface< Flowmap, SeedcurveInterpolationKernel >::flowmap_type = std::decay_t<Flowmap>

◆ pos_type

template<typename Flowmap , template< typename > typename SeedcurveInterpolationKernel>
using tatooine::streamsurface< Flowmap, SeedcurveInterpolationKernel >::pos_type = vec<real_type, num_dimensions()>

◆ real_type

template<typename Flowmap , template< typename > typename SeedcurveInterpolationKernel>
using tatooine::streamsurface< Flowmap, SeedcurveInterpolationKernel >::real_type = typename flowmap_type::real_type

◆ seedcurve_interpolator_type

template<typename Flowmap , template< typename > typename SeedcurveInterpolationKernel>
using tatooine::streamsurface< Flowmap, SeedcurveInterpolationKernel >::seedcurve_interpolator_type = typename seedcurve_type::template vertex_property_sampler_type< seedcurve_type, SeedcurveInterpolationKernel>

◆ seedcurve_type

template<typename Flowmap , template< typename > typename SeedcurveInterpolationKernel>
using tatooine::streamsurface< Flowmap, SeedcurveInterpolationKernel >::seedcurve_type = line<real_type, num_dimensions()>

◆ this_type

template<typename Flowmap , template< typename > typename SeedcurveInterpolationKernel>
using tatooine::streamsurface< Flowmap, SeedcurveInterpolationKernel >::this_type = streamsurface<Flowmap, SeedcurveInterpolationKernel>

◆ vec2

template<typename Flowmap , template< typename > typename SeedcurveInterpolationKernel>
using tatooine::streamsurface< Flowmap, SeedcurveInterpolationKernel >::vec2 = vec<real_type, 2>

◆ vec_type

template<typename Flowmap , template< typename > typename SeedcurveInterpolationKernel>
using tatooine::streamsurface< Flowmap, SeedcurveInterpolationKernel >::vec_type = vec<real_type, num_dimensions()>

Constructor & Destructor Documentation

◆ streamsurface() [1/3]

template<typename Flowmap , template< typename > typename SeedcurveInterpolationKernel>
tatooine::streamsurface< Flowmap, SeedcurveInterpolationKernel >::streamsurface ( convertible_to< Flowmap > auto &&  flowmap,
arithmetic auto  t0u0,
arithmetic auto  t0u1,
seedcurve_type const &  seedcurve 
)
inline

◆ streamsurface() [2/3]

template<typename Flowmap , template< typename > typename SeedcurveInterpolationKernel>
tatooine::streamsurface< Flowmap, SeedcurveInterpolationKernel >::streamsurface ( convertible_to< Flowmap > auto &&  flowmap,
arithmetic auto  t0,
seedcurve_type const &  seedcurve 
)
inline

◆ streamsurface() [3/3]

template<typename Flowmap , template< typename > typename SeedcurveInterpolationKernel>
tatooine::streamsurface< Flowmap, SeedcurveInterpolationKernel >::streamsurface ( convertible_to< Flowmap > auto &&  flowmap,
seedcurve_type const &  seedcurve 
)
inline

Member Function Documentation

◆ discretize()

template<typename Flowmap , template< typename > typename SeedcurveInterpolationKernel>
template<template< typename > typename Discretization = hultquist_discretization, typename... Args>
auto tatooine::streamsurface< Flowmap, SeedcurveInterpolationKernel >::discretize ( Args &&...  args)
inline

◆ distance()

template<typename Flowmap , template< typename > typename SeedcurveInterpolationKernel>
auto tatooine::streamsurface< Flowmap, SeedcurveInterpolationKernel >::distance ( vec2 const &  uv0,
vec2 const &  uv1,
std::size_t  num_samples 
) const
inline

◆ flowmap() [1/2]

template<typename Flowmap , template< typename > typename SeedcurveInterpolationKernel>
auto tatooine::streamsurface< Flowmap, SeedcurveInterpolationKernel >::flowmap ( ) -> auto&
inline

◆ flowmap() [2/2]

template<typename Flowmap , template< typename > typename SeedcurveInterpolationKernel>
auto tatooine::streamsurface< Flowmap, SeedcurveInterpolationKernel >::flowmap ( ) const -> auto const&
inline

◆ max_u()

template<typename Flowmap , template< typename > typename SeedcurveInterpolationKernel>
constexpr auto tatooine::streamsurface< Flowmap, SeedcurveInterpolationKernel >::max_u ( ) const
inlineconstexpr

◆ min_u()

template<typename Flowmap , template< typename > typename SeedcurveInterpolationKernel>
constexpr auto tatooine::streamsurface< Flowmap, SeedcurveInterpolationKernel >::min_u ( ) const
inlineconstexpr

◆ num_dimensions()

template<typename Flowmap , template< typename > typename SeedcurveInterpolationKernel>
static constexpr auto tatooine::streamsurface< Flowmap, SeedcurveInterpolationKernel >::num_dimensions ( ) -> std::size_t
inlinestaticconstexpr

◆ operator()() [1/2]

template<typename Flowmap , template< typename > typename SeedcurveInterpolationKernel>
auto tatooine::streamsurface< Flowmap, SeedcurveInterpolationKernel >::operator() ( real_type  u,
real_type  v 
) const
inline

◆ operator()() [2/2]

template<typename Flowmap , template< typename > typename SeedcurveInterpolationKernel>
auto tatooine::streamsurface< Flowmap, SeedcurveInterpolationKernel >::operator() ( vec2 const &  uv) const
inline

◆ sample() [1/2]

template<typename Flowmap , template< typename > typename SeedcurveInterpolationKernel>
auto tatooine::streamsurface< Flowmap, SeedcurveInterpolationKernel >::sample ( real_type const  u,
real_type const  v 
) const -> vec_type
inline

calculates position of streamsurface

◆ sample() [2/2]

template<typename Flowmap , template< typename > typename SeedcurveInterpolationKernel>
auto tatooine::streamsurface< Flowmap, SeedcurveInterpolationKernel >::sample ( vec2 const &  uv) const -> vec_type
inline

calculates position of streamsurface

◆ seedcurve()

template<typename Flowmap , template< typename > typename SeedcurveInterpolationKernel>
auto tatooine::streamsurface< Flowmap, SeedcurveInterpolationKernel >::seedcurve ( ) const -> auto const&
inline

◆ t0()

template<typename Flowmap , template< typename > typename SeedcurveInterpolationKernel>
auto tatooine::streamsurface< Flowmap, SeedcurveInterpolationKernel >::t0 ( real_type const  u) const
inline

Member Data Documentation

◆ m_flowmap

template<typename Flowmap , template< typename > typename SeedcurveInterpolationKernel>
Flowmap tatooine::streamsurface< Flowmap, SeedcurveInterpolationKernel >::m_flowmap
private

◆ m_max_u

template<typename Flowmap , template< typename > typename SeedcurveInterpolationKernel>
real_type tatooine::streamsurface< Flowmap, SeedcurveInterpolationKernel >::m_max_u
private

◆ m_min_u

template<typename Flowmap , template< typename > typename SeedcurveInterpolationKernel>
real_type tatooine::streamsurface< Flowmap, SeedcurveInterpolationKernel >::m_min_u
private

◆ m_seedcurve

template<typename Flowmap , template< typename > typename SeedcurveInterpolationKernel>
seedcurve_type tatooine::streamsurface< Flowmap, SeedcurveInterpolationKernel >::m_seedcurve
private

◆ m_seedcurve_interpolator

template<typename Flowmap , template< typename > typename SeedcurveInterpolationKernel>
seedcurve_interpolator_type tatooine::streamsurface< Flowmap, SeedcurveInterpolationKernel >::m_seedcurve_interpolator
private

◆ m_t0_u0

template<typename Flowmap , template< typename > typename SeedcurveInterpolationKernel>
real_type tatooine::streamsurface< Flowmap, SeedcurveInterpolationKernel >::m_t0_u0
private

◆ m_t0_u1

template<typename Flowmap , template< typename > typename SeedcurveInterpolationKernel>
real_type tatooine::streamsurface< Flowmap, SeedcurveInterpolationKernel >::m_t0_u1
private

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