Tatooine
Public Member Functions | Static Public Member Functions | Static Public Attributes | Private Member Functions | List of all members
tatooine::rendering::interactive::renderer< tatooine::unstructured_triangular_grid< Real, 2 > >::property_shader Struct Reference

#include <unstructured_triangular_grid2.h>

Inheritance diagram for tatooine::rendering::interactive::renderer< tatooine::unstructured_triangular_grid< Real, 2 > >::property_shader:
[legend]
Collaboration diagram for tatooine::rendering::interactive::renderer< tatooine::unstructured_triangular_grid< Real, 2 > >::property_shader:
[legend]

Public Member Functions

auto set_projection_matrix (Mat4< GLfloat > const &P) -> void
 
auto set_model_view_matrix (Mat4< GLfloat > const &MV) -> void
 
auto set_min (GLfloat const min) -> void
 
auto set_max (GLfloat const max) -> void
 
auto invert_scale (bool const invert) -> void
 
auto show_solid_color (bool const show) -> void
 
auto set_solid_color (GLfloat r, GLfloat g, GLfloat b) -> void
 
auto set_solid_color (Vec3< GLfloat > const &col) -> void
 
- Public Member Functions inherited from tatooine::gl::shader
 shader ()=default
 
 ~shader ()
 
template<typename T , typename... Args>
void add_stage (Args &&... args)
 
DLL_API void create ()
 
DLL_API void delete_shader ()
 
DLL_API void bind () const
 
DLL_API void unbind () const
 
DLL_API void add_uniform (const std::string &uniformVarName)
 
DLL_API void add_attribute (const std::string &attributeVarName)
 
DLL_API GLint uniform (const std::string &uniformVarName)
 
DLL_API GLint attribute (const std::string &attributeVarName)
 
DLL_API void set_uniform (const std::string &, GLfloat)
 
DLL_API void set_uniform (const std::string &, GLint)
 
DLL_API void set_uniform (const std::string &, GLuint)
 
DLL_API void set_uniform (const std::string &, GLboolean)
 
DLL_API void set_uniform (const std::string &, GLfloat, GLfloat)
 
DLL_API void set_uniform (const std::string &, GLfloat, GLfloat, GLfloat)
 
DLL_API void set_uniform (const std::string &, GLfloat, GLfloat, GLfloat, GLfloat)
 
DLL_API void set_uniform (const std::string &, std::array< GLfloat, 2 > const &data)
 
DLL_API void set_uniform (const std::string &, std::array< GLfloat, 3 > const &data)
 
DLL_API void set_uniform (const std::string &, std::array< GLfloat, 4 > const &data)
 
DLL_API void set_uniform (const std::string &, GLint, GLint)
 
DLL_API void set_uniform (const std::string &, GLint, GLint, GLint)
 
DLL_API void set_uniform (const std::string &, GLint, GLint, GLint, GLint)
 
DLL_API void set_uniform (const std::string &, std::array< GLint, 2 > const &data)
 
DLL_API void set_uniform (const std::string &, std::array< GLint, 3 > const &data)
 
DLL_API void set_uniform (const std::string &, std::array< GLint, 4 > const &data)
 
DLL_API void set_uniform (const std::string &, GLuint, GLuint)
 
DLL_API void set_uniform (const std::string &, GLuint, GLuint, GLuint)
 
DLL_API void set_uniform (const std::string &, GLuint, GLuint, GLuint, GLuint)
 
DLL_API void set_uniform (const std::string &, std::array< GLuint, 2 > const &data)
 
DLL_API void set_uniform (const std::string &, std::array< GLuint, 3 > const &data)
 
DLL_API void set_uniform (const std::string &, std::array< GLuint, 4 > const &data)
 
DLL_API void set_uniform (const std::string &, Vec2< GLfloat > const &)
 
DLL_API void set_uniform_vec2 (const std::string &, GLfloat const *)
 
DLL_API void set_uniform (const std::string &, Vec2< GLint > const &)
 
DLL_API void set_uniform_vec2 (const std::string &, GLint const *)
 
DLL_API void set_uniform (const std::string &, Vec2< GLuint > const &)
 
DLL_API void set_uniform_vec2 (const std::string &, GLuint const *)
 
DLL_API void set_uniform (const std::string &, Vec3< GLfloat > const &)
 
DLL_API void set_uniform_vec3 (const std::string &, GLfloat const *)
 
DLL_API void set_uniform (const std::string &, Vec3< GLint > const &)
 
DLL_API void set_uniform_vec3 (const std::string &, GLint const *)
 
DLL_API void set_uniform (const std::string &, Vec3< GLuint > const &)
 
DLL_API void set_uniform_vec3 (const std::string &, GLuint const *)
 
DLL_API void set_uniform (const std::string &, Vec4< GLfloat > const &)
 
DLL_API void set_uniform_vec4 (const std::string &, GLfloat const *)
 
DLL_API void set_uniform (const std::string &, Vec4< GLint > const &)
 
DLL_API void set_uniform_vec4 (const std::string &, GLint const *)
 
DLL_API void set_uniform (const std::string &, Vec4< GLuint > const &)
 
DLL_API void set_uniform_vec4 (const std::string &, GLuint const *)
 
DLL_API void set_uniform (const std::string &, Mat2< GLfloat > const &)
 
DLL_API void set_uniform_mat2 (const std::string &, GLfloat const *)
 
DLL_API void set_uniform (const std::string &, Mat3< GLfloat > const &)
 
DLL_API void set_uniform_mat3 (const std::string &, GLfloat const *)
 
DLL_API void set_uniform (const std::string &, Mat4< GLfloat > const &)
 
DLL_API void set_uniform_mat4 (const std::string &, GLfloat const *)
 
DLL_API std::optional< std::string > info_log ()
 
- Public Member Functions inherited from tatooine::gl::id_holder< GLuint >
 id_holder ()
 
 id_holder (GLuint _id)
 
 id_holder (id_holder const &other)=delete
 
 id_holder (id_holder &&other) noexcept
 
auto operator= (id_holder const &other) -> id_holder &=delete
 
auto operator= (id_holder &&other) noexcept -> id_holder &
 
 ~id_holder ()=default
 
auto id () const
 
void swap (id_holder &other)
 

Static Public Member Functions

static auto get () -> auto &
 

Static Public Attributes

static constexpr std::string_view vertex_shader
 
static constexpr std::string_view fragment_shader
 
- Static Public Attributes inherited from tatooine::gl::id_holder< GLuint >
static constexpr auto default_val
 

Private Member Functions

 property_shader ()
 

Additional Inherited Members

- Protected Member Functions inherited from tatooine::gl::id_holder< GLuint >
void set_id (GLuint id)
 
auto id_ptr ()
 
auto id_ref () -> auto &
 

Constructor & Destructor Documentation

◆ property_shader()

template<floating_point Real>
tatooine::rendering::interactive::renderer< tatooine::unstructured_triangular_grid< Real, 2 > >::property_shader::property_shader ( )
inlineprivate

Member Function Documentation

◆ get()

template<floating_point Real>
static auto tatooine::rendering::interactive::renderer< tatooine::unstructured_triangular_grid< Real, 2 > >::property_shader::get ( ) -> auto&
inlinestatic

◆ invert_scale()

template<floating_point Real>
auto tatooine::rendering::interactive::renderer< tatooine::unstructured_triangular_grid< Real, 2 > >::property_shader::invert_scale ( bool const  invert) -> void
inline

◆ set_max()

template<floating_point Real>
auto tatooine::rendering::interactive::renderer< tatooine::unstructured_triangular_grid< Real, 2 > >::property_shader::set_max ( GLfloat const  max) -> void
inline

◆ set_min()

template<floating_point Real>
auto tatooine::rendering::interactive::renderer< tatooine::unstructured_triangular_grid< Real, 2 > >::property_shader::set_min ( GLfloat const  min) -> void
inline

◆ set_model_view_matrix()

template<floating_point Real>
auto tatooine::rendering::interactive::renderer< tatooine::unstructured_triangular_grid< Real, 2 > >::property_shader::set_model_view_matrix ( Mat4< GLfloat > const &  MV) -> void
inline

◆ set_projection_matrix()

template<floating_point Real>
auto tatooine::rendering::interactive::renderer< tatooine::unstructured_triangular_grid< Real, 2 > >::property_shader::set_projection_matrix ( Mat4< GLfloat > const &  P) -> void
inline

◆ set_solid_color() [1/2]

template<floating_point Real>
auto tatooine::rendering::interactive::renderer< tatooine::unstructured_triangular_grid< Real, 2 > >::property_shader::set_solid_color ( GLfloat  r,
GLfloat  g,
GLfloat  b 
) -> void
inline

◆ set_solid_color() [2/2]

template<floating_point Real>
auto tatooine::rendering::interactive::renderer< tatooine::unstructured_triangular_grid< Real, 2 > >::property_shader::set_solid_color ( Vec3< GLfloat > const &  col) -> void
inline

◆ show_solid_color()

template<floating_point Real>
auto tatooine::rendering::interactive::renderer< tatooine::unstructured_triangular_grid< Real, 2 > >::property_shader::show_solid_color ( bool const  show) -> void
inline

Member Data Documentation

◆ fragment_shader

template<floating_point Real>
constexpr std::string_view tatooine::rendering::interactive::renderer< tatooine::unstructured_triangular_grid< Real, 2 > >::property_shader::fragment_shader
staticconstexpr
Initial value:
=
"#version 330 core\n"
"uniform sampler1D color_scale;\n"
"uniform float min;\n"
"uniform float max;\n"
"uniform int invert_scale;\n"
"uniform int show_solid_color;\n"
"uniform vec3 solid_color;\n"
"\n"
"in float property_frag;\n"
"\n"
"out vec4 out_color;\n"
"void main() {\n"
" if (show_solid_color == 1) { out_color.rgb = solid_color; return;}\n"
" float scalar = property_frag;"
" if (isnan(scalar)) {\n"
" out_color = vec4(1,0,0,1);\n"
" return;\n"
" }\n"
" scalar = clamp((scalar - min) / (max - min), 0, 1);\n"
" if (invert_scale == 1) {\n"
" scalar = 1 - scalar;\n"
" }\n"
" vec3 col = texture(color_scale, scalar).rgb;\n"
" out_color = vec4(col, 1);\n"
"}\n"

◆ vertex_shader

template<floating_point Real>
constexpr std::string_view tatooine::rendering::interactive::renderer< tatooine::unstructured_triangular_grid< Real, 2 > >::property_shader::vertex_shader
staticconstexpr
Initial value:
=
"#version 330 core\n"
"layout (location = 0) in vec2 position;\n"
"layout (location = 1) in float property;\n"
"uniform mat4 model_view_matrix;\n"
"uniform mat4 projection_matrix;\n"
"uniform vec2 pixel_width;\n"
"out float property_frag;\n"
"void main() {\n"
" gl_Position = projection_matrix *\n"
" model_view_matrix *\n"
" vec4(position, 0, 1);\n"
" property_frag = property;\n"
"}\n"

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