1 #ifndef VolViz_Visualizer_h
2 #define VolViz_Visualizer_h
31 static auto constexpr
kTitle =
"Volume Visualizer";
55 operator
bool() const noexcept;
62 template <class Descriptor,
63 typename = std::enable_if_t<std::is_base_of<
67 template <class Descriptor,
68 typename = std::enable_if_t<std::is_base_of<
69 GeometryDescriptor, std::decay_t<Descriptor>>::
value>>
81 std::unique_ptr<Private_::VisualizerImpl>
impl_;
85 #pragma mark Explicit template instanciation declarations
86 extern template void Visualizer::addGeometry<AxisAlignedPlaneDescriptor>(
90 Visualizer::addGeometry<CubeDescriptor>(GeometryName,
CubeDescriptor const &);
93 Visualizer::addGeometry<MeshDescriptor>(GeometryName,
MeshDescriptor const &);
101 Visualizer::updateGeometry<AxisAlignedPlaneDescriptor const &>(
103 extern template bool Visualizer::updateGeometry<AxisAlignedPlaneDescriptor &&>(
105 extern template bool Visualizer::updateGeometry<AxisAlignedPlaneDescriptor &>(
109 Visualizer::updateGeometry<CubeDescriptor const &>(GeometryName
name,
112 Visualizer::updateGeometry<CubeDescriptor &&>(GeometryName
name,
115 Visualizer::updateGeometry<CubeDescriptor &>(GeometryName
name,
119 Visualizer::updateGeometry<MeshDescriptor const &>(GeometryName
name,
122 Visualizer::updateGeometry<MeshDescriptor &&>(GeometryName
name,
125 Visualizer::updateGeometry<MeshDescriptor &>(GeometryName
name,
130 #endif // VolViz_Visualizer_h
GLenum GLenum GLenum GLenum GLenum scale
Definition: glad.h:13107
static auto constexpr kTitle
Definition: Visualizer.h:31
void start()
Definition: Visualizer.cpp:35
AtomicProperty< Color > backgroundColor
Definition: Visualizer.h:75
Visualizer & operator=(Visualizer const &)=delete
void enableMultithreading() noexcept
Definition: Visualizer.cpp:37
void renderOneFrameAndWaitForEvents()
Definition: Visualizer.cpp:55
Definition: AtomicWrapper.h:48
A geomentry descriptor describing an axis aligned cube.
Definition: GeometryDescriptor.h:85
GLboolean * data
Definition: glad.h:2184
GLsizei const GLchar *const * string
Definition: glad.h:2514
GLsizei const GLfloat * value
Definition: glad.h:2544
std::atomic< bool > showVolumeBoundingBox
Definition: Visualizer.h:73
auto Black() noexcept
Definition: Types.h:43
Visualizer()
Definition: Visualizer.cpp:15
std::uint16_t LightName
Definition: Visualizer.h:28
Definition: Visualizer.h:23
GLuint const GLchar * name
Definition: glad.h:2430
Camera camera
The camera.
Definition: Visualizer.h:78
Definition: GeometryDescriptor.h:33
void renderOneFrame()
Definition: Visualizer.cpp:53
void addLight(LightName name, Light const &light)
Definition: Visualizer.cpp:97
A geometry descriptor describing a axis aligned plane.
Definition: GeometryDescriptor.h:50
std::unique_ptr< Private_::VisualizerImpl > impl_
Definition: Visualizer.h:81
bool updateGeometry(GeometryName name, Descriptor &&geom)
Definition: Visualizer.cpp:116
void addGeometry(GeometryName name, Descriptor const &geom)
Definition: Visualizer.cpp:102
Directional light.
Definition: Light.h:9
std::string GeometryName
Definition: Visualizer.h:29
std::atomic< bool > showGrid
Definition: Visualizer.h:72
void renderAtFPS(double fps=60.0)
Definition: Visualizer.cpp:59
void setVolume(VolumeDescriptor const &descriptor, span< T > data)
Definition: Visualizer.cpp:44
A geometry descriptor describing an arbitrary triangle mesh.
Definition: GeometryDescriptor.h:68
GLenum GLenum GLsizei void GLsizei void void * span
Definition: glad.h:4220
void renderOnUserInteraction(double maxFps=60.0)
Definition: Visualizer.cpp:78