Wildmeshing Toolkit
wmtk::components::adaptive_tessellation::image Namespace Reference

Classes

class  Image
 
class  Sampling
 
class  SamplingAnalyticFunction
 
class  SamplingImage
 
class  SamplingBicubic
 

Typedefs

template<class T >
using BicubicVector = Eigen::Matrix< T, 16, 1 >
 
using BicubicMatrix = Eigen::Matrix< float, 16, 16 >
 

Enumerations

enum class  WrappingMode { REPEAT , MIRROR_REPEAT , CLAMP_TO_EDGE }
 
enum class  SAMPLING_MODE { BICUBIC , SPLINE }
 
enum  SamplingAnalyticFunction_FunctionType { Linear , Quadratic }
 

Functions

BicubicVector< float > extract_samples (const size_t width, const size_t height, const float *buffer, const double sx_, const double sy_, const WrappingMode mode_x, const WrappingMode mode_y)
 
BicubicMatrix make_samples_to_bicubic_coeffs_operator ()
 
const BicubicMatrixget_bicubic_matrix ()
 
double get_value (float x)
 
double get_value (double x)
 
double get_value (DScalar2< double, Eigen::Matrix< double, 2, 1 >, Eigen::Matrix< double, 2, 2 >> x)
 
double get_value (DScalar2< double, Eigen::Matrix< double, -1, 1 >, Eigen::Matrix< double, -1, -1 >> x)
 
template<class T >
std::decay_t< T > eval_bicubic_coeffs (const BicubicVector< float > &coeffs, const T &sx, const T &sy)
 
std::array< Image, 3 > combine_position_normal_texture (double normalization_scale, const Eigen::Matrix< double, 1, 3 > &offset, const std::filesystem::path &position_path, const std::filesystem::path &normal_path, const std::filesystem::path &height_path, float min_height, float max_height)
 
void split_and_save_3channels (const std::filesystem::path &path)
 
Image buffer_to_image (const std::vector< float > &buffer, int w, int h)
 
std::array< Image, 3 > load_rgb_image (const std::filesystem::path &path)
 
auto load_image_exr_red_channel (const std::filesystem::path &path) -> std::tuple< size_t, size_t, std::vector< float >>
 
auto load_image_exr_split_3channels (const std::filesystem::path &path) -> std::tuple< size_t, size_t, int, int, int, std::vector< float >, std::vector< float >, std::vector< float >>
 
bool save_image_exr_red_channel (size_t width, size_t height, const std::vector< float > &data, const std::filesystem::path &path)
 
bool save_image_exr_3channels (size_t width, size_t height, int r, int g, int b, const std::vector< float > &data_r, const std::vector< float > &data_g, const std::vector< float > &data_b, const std::filesystem::path &path)
 

Typedef Documentation

◆ BicubicMatrix

using wmtk::components::adaptive_tessellation::image::BicubicMatrix = typedef Eigen::Matrix<float, 16, 16>

Definition at line 31 of file bicubic_interpolation.hpp.

◆ BicubicVector

template<class T >
using wmtk::components::adaptive_tessellation::image::BicubicVector = typedef Eigen::Matrix<T, 16, 1>

Definition at line 30 of file bicubic_interpolation.hpp.

Enumeration Type Documentation

◆ SAMPLING_MODE

Enumerator
BICUBIC 
SPLINE 

Definition at line 7 of file Sampling.hpp.

◆ SamplingAnalyticFunction_FunctionType

Enumerator
Linear 
Quadratic 

Definition at line 20 of file Sampling.hpp.

◆ WrappingMode

Enumerator
REPEAT 
MIRROR_REPEAT 
CLAMP_TO_EDGE 

Definition at line 8 of file bicubic_interpolation.hpp.

Function Documentation

◆ buffer_to_image()

Image wmtk::components::adaptive_tessellation::image::buffer_to_image ( const std::vector< float > &  buffer,
int  w,
int  h 
)

Definition at line 262 of file Image.cpp.

References wmtk::components::adaptive_tessellation::image::Image::set().

Referenced by combine_position_normal_texture(), and load_rgb_image().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ combine_position_normal_texture()

std::array< Image, 3 > wmtk::components::adaptive_tessellation::image::combine_position_normal_texture ( double  normalization_scale,
const Eigen::Matrix< double, 1, 3 > &  offset,
const std::filesystem::path &  position_path,
const std::filesystem::path &  normal_path,
const std::filesystem::path &  height_path,
float  min_height,
float  max_height 
)

Definition at line 163 of file Image.cpp.

References buffer_to_image(), load_image_exr_split_3channels(), and wmtk::logger().

Here is the call graph for this function:

◆ eval_bicubic_coeffs()

template<class T >
std::decay_t<T> wmtk::components::adaptive_tessellation::image::eval_bicubic_coeffs ( const BicubicVector< float > &  coeffs,
const T &  sx,
const T &  sy 
)

Definition at line 47 of file bicubic_interpolation.hpp.

References get_value().

Referenced by wmtk::components::adaptive_tessellation::image::Image::get(), and wmtk::components::adaptive_tessellation::image::SamplingBicubic::sample_T().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ extract_samples()

BicubicVector< float > wmtk::components::adaptive_tessellation::image::extract_samples ( const size_t  width,
const size_t  height,
const float *  buffer,
const double  sx_,
const double  sy_,
const WrappingMode  mode_x,
const WrappingMode  mode_y 
)

Definition at line 6 of file bicubic_interpolation.cpp.

References CLAMP_TO_EDGE, MIRROR_REPEAT, and REPEAT.

Referenced by wmtk::components::adaptive_tessellation::image::Image::get(), and wmtk::components::adaptive_tessellation::image::SamplingBicubic::sample_T().

Here is the caller graph for this function:

◆ get_bicubic_matrix()

const BicubicMatrix & wmtk::components::adaptive_tessellation::image::get_bicubic_matrix ( )

Definition at line 118 of file bicubic_interpolation.cpp.

References make_samples_to_bicubic_coeffs_operator().

Referenced by wmtk::components::adaptive_tessellation::image::Image::get(), and wmtk::components::adaptive_tessellation::image::SamplingBicubic::sample_T().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_value() [1/4]

double wmtk::components::adaptive_tessellation::image::get_value ( double  x)
inline

Definition at line 13 of file bicubic_interpolation.hpp.

◆ get_value() [2/4]

double wmtk::components::adaptive_tessellation::image::get_value ( DScalar2< double, Eigen::Matrix< double, -1, 1 >, Eigen::Matrix< double, -1, -1 >>  x)
inline

Definition at line 23 of file bicubic_interpolation.hpp.

◆ get_value() [3/4]

double wmtk::components::adaptive_tessellation::image::get_value ( DScalar2< double, Eigen::Matrix< double, 2, 1 >, Eigen::Matrix< double, 2, 2 >>  x)
inline

Definition at line 17 of file bicubic_interpolation.hpp.

◆ get_value() [4/4]

double wmtk::components::adaptive_tessellation::image::get_value ( float  x)
inline

Definition at line 9 of file bicubic_interpolation.hpp.

Referenced by wmtk::attribute::internal::AttributeTransactionStack< T >::const_vector_attribute(), eval_bicubic_coeffs(), wmtk::components::adaptive_tessellation::image::Image::get(), and wmtk::components::adaptive_tessellation::image::SamplingBicubic::sample_T().

Here is the caller graph for this function:

◆ load_image_exr_red_channel()

auto wmtk::components::adaptive_tessellation::image::load_image_exr_red_channel ( const std::filesystem::path &  path) -> std::tuple< size_t, size_t, std::vector< float >>

Referenced by wmtk::components::adaptive_tessellation::image::Image::load().

Here is the caller graph for this function:

◆ load_image_exr_split_3channels()

auto wmtk::components::adaptive_tessellation::image::load_image_exr_split_3channels ( const std::filesystem::path &  path) -> std::tuple< size_t, size_t, int, int, int, std::vector< float >, std::vector< float >, std::vector< float >>

Referenced by combine_position_normal_texture(), load_rgb_image(), and split_and_save_3channels().

Here is the caller graph for this function:

◆ load_rgb_image()

std::array< Image, 3 > wmtk::components::adaptive_tessellation::image::load_rgb_image ( const std::filesystem::path &  path)

Definition at line 273 of file Image.cpp.

References buffer_to_image(), load_image_exr_split_3channels(), and wmtk::logger().

Here is the call graph for this function:

◆ make_samples_to_bicubic_coeffs_operator()

BicubicMatrix wmtk::components::adaptive_tessellation::image::make_samples_to_bicubic_coeffs_operator ( )

Definition at line 65 of file bicubic_interpolation.cpp.

References wmtk::abs(), and wmtk::logger().

Referenced by get_bicubic_matrix().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ save_image_exr_3channels()

bool wmtk::components::adaptive_tessellation::image::save_image_exr_3channels ( size_t  width,
size_t  height,
int  r,
int  g,
int  b,
const std::vector< float > &  data_r,
const std::vector< float > &  data_g,
const std::vector< float > &  data_b,
const std::filesystem::path &  path 
)

Definition at line 76 of file save_image_exr.cpp.

References wmtk::logger().

Here is the call graph for this function:

◆ save_image_exr_red_channel()

bool wmtk::components::adaptive_tessellation::image::save_image_exr_red_channel ( size_t  width,
size_t  height,
const std::vector< float > &  data,
const std::filesystem::path &  path 
)

Definition at line 8 of file save_image_exr.cpp.

References wmtk::logger().

Referenced by wmtk::components::adaptive_tessellation::image::Image::save(), and split_and_save_3channels().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ split_and_save_3channels()

void wmtk::components::adaptive_tessellation::image::split_and_save_3channels ( const std::filesystem::path &  path)

Definition at line 233 of file Image.cpp.

References load_image_exr_split_3channels(), wmtk::logger(), and save_image_exr_red_channel().

Here is the call graph for this function: