VolViz
A volume visualization tool
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
Cube.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "Geometry.h"
4 #include "Types.h"
5 
6 #include <concurrentqueue.h>
7 
8 namespace VolViz {
9 namespace Private_ {
10 
11 class Cube : public Geometry {
12 public:
13  Cube(CubeDescriptor const &descriptor, VisualizerImpl &visualizer);
14 
15 protected:
16  virtual void doInit() override;
17 
18  virtual void doRender(std::uint32_t index, bool selected) override;
19 
20  virtual void doUpdate() override;
21 
22  virtual void doEnqueueUpdate(GeometryDescriptor const &descriptor) override;
23  virtual void doEnqueueUpdate(GeometryDescriptor &&descriptor) override;
24 
25 private:
26  using UpdateQueue = moodycamel::ConcurrentQueue<CubeDescriptor>;
27 
30 };
31 
32 } // namespace Private_
33 } // namespace VolViz
A geomentry descriptor describing an axis aligned cube.
Definition: GeometryDescriptor.h:85
virtual void doInit() override
Definition: Cube.cpp:16
Scale radius
Definition: Cube.h:28
Cube(CubeDescriptor const &descriptor, VisualizerImpl &visualizer)
Definition: Cube.cpp:7
Definition: Geometry.h:10
Definition: Cube.h:11
Definition: GeometryDescriptor.h:33
float Scale
Definition: Types.h:62
virtual void doEnqueueUpdate(GeometryDescriptor const &descriptor) override
Definition: Cube.cpp:60
UpdateQueue updateQueue_
Definition: Cube.h:29
GLuint index
Definition: glad.h:2430
Definition: VisualizerImpl.h:29
moodycamel::ConcurrentQueue< CubeDescriptor > UpdateQueue
Definition: Cube.h:26
virtual void doRender(std::uint32_t index, bool selected) override
Definition: Cube.cpp:18
virtual void doUpdate() override
Definition: Cube.cpp:50