17#ifndef __gui_mrview_image_h__
18#define __gui_mrview_image_h__
26#include <unordered_map>
56 void render2D (Displayable::Shader& shader_program,
const Projection& projection,
const int plane,
const int slice);
57 void render3D (Displayable::Shader& shader_program,
const Projection& projection,
const float depth);
59 virtual void update_texture2D (
const int plane,
const int slice) = 0;
60 virtual void update_texture3D() = 0;
62 void get_axes (
const int plane,
int& x,
int& y)
const;
80 void update_texture2D (
const int plane,
const int slice)
override;
81 void update_texture3D()
override;
88 cfloat trilinear_value (
const Eigen::Vector3f&)
const;
89 cfloat nearest_neighbour_value (
const Eigen::Vector3f&)
const;
94 void reset_windowing (
const int,
const bool);
107 bool volume_unchanged ();
108 bool format_unchanged ();
109 size_t guess_colourmap ()
const;
111 template <
typename T>
void copy_texture_3D ();
112 void copy_texture_3D_complex ();
113 void lookup_texture_4D_cache ();
114 void update_texture_4D_cache ();
virtual void render_image_colourbar(const Image &)
vector< ssize_t > tex_positions
std::array< float, 3 > slice_max
std::array< float, 3 > slice_min
std::unordered_map< size_t, CachedTexture > tex_4d_cache
const transform_type & transform() const
std::complex< float > cfloat
Eigen::Transform< default_type, 3, Eigen::AffineCompact > transform_type
the type for the affine transform of an image:
MEMALIGN(CachedTexture) GL float value_min
MEMALIGN(CachedTexture) GL float value_max