VolViz
A volume visualization tool
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
VolViz::Private_::Mesh Class Reference

#include <Mesh.h>

+ Inheritance diagram for VolViz::Private_::Mesh:
+ Collaboration diagram for VolViz::Private_::Mesh:

Public Member Functions

 Mesh (MeshDescriptor const &descriptor, VisualizerImpl &visualizer)
 
- Public Member Functions inherited from VolViz::Private_::Geometry
virtual ~Geometry ()=default
 
void init ()
 
void update ()
 
void render (std::uint32_t index, bool selected)
 
template<class Descriptor , typename = std::enable_if_t<std::is_base_of< GeometryDescriptor, std::decay_t<Descriptor>>::value>>
void enqueueUpdate (Descriptor &&descriptor)
 

Protected Member Functions

virtual void doInit () override
 
virtual void doRender (std::uint32_t index, bool selected) override
 
virtual void doUpdate () override
 
virtual void doEnqueueUpdate (GeometryDescriptor const &descriptor) override
 
virtual void doEnqueueUpdate (GeometryDescriptor &&descriptor) override
 
- Protected Member Functions inherited from VolViz::Private_::Geometry
 Geometry (VisualizerImpl &visualizer)
 
 Geometry (GeometryDescriptor const &descriptor, VisualizerImpl &visualizer)
 

Private Types

using UpdateQueue = moodycamel::ConcurrentQueue< MeshDescriptor >
 

Private Member Functions

void uploadMesh ()
 

Private Attributes

UpdateQueue updateQueue_
 
GL::Buffer vertexBuffer_
 
GL::Buffer indexBuffer_
 
GL::VertexArray vertexArrayObject_
 
std::size_t numTriangles_ {0}
 

Additional Inherited Members

- Public Types inherited from VolViz::Private_::Geometry
using UniquePtr = std::unique_ptr< Geometry >
 
- Public Attributes inherited from VolViz::Private_::Geometry
Position position {Position::Zero()}
 
Orientation orientation {Orientation::Identity()}
 
Length scale {1 * milli * meter}
 
MoveMask moveMask {MoveMask::All}
 
Color color {Colors::White()}
 
- Protected Attributes inherited from VolViz::Private_::Geometry
VisualizerImplvisualizer_
 

Member Typedef Documentation

using VolViz::Private_::Mesh::UpdateQueue = moodycamel::ConcurrentQueue<MeshDescriptor>
private

Constructor & Destructor Documentation

VolViz::Private_::Mesh::Mesh ( MeshDescriptor const &  descriptor,
VisualizerImpl visualizer 
)

Member Function Documentation

void VolViz::Private_::Mesh::doEnqueueUpdate ( GeometryDescriptor const &  descriptor)
overrideprotectedvirtual

Reimplemented from VolViz::Private_::Geometry.

void VolViz::Private_::Mesh::doEnqueueUpdate ( GeometryDescriptor &&  descriptor)
overrideprotectedvirtual

Reimplemented from VolViz::Private_::Geometry.

void VolViz::Private_::Mesh::doInit ( )
overrideprotectedvirtual

Reimplemented from VolViz::Private_::Geometry.

void VolViz::Private_::Mesh::doRender ( std::uint32_t  index,
bool  selected 
)
overrideprotectedvirtual
void VolViz::Private_::Mesh::doUpdate ( )
overrideprotectedvirtual

Reimplemented from VolViz::Private_::Geometry.

void VolViz::Private_::Mesh::uploadMesh ( )
private

Member Data Documentation

GL::Buffer VolViz::Private_::Mesh::indexBuffer_
private
std::size_t VolViz::Private_::Mesh::numTriangles_ {0}
private
UpdateQueue VolViz::Private_::Mesh::updateQueue_
private
GL::VertexArray VolViz::Private_::Mesh::vertexArrayObject_
private
GL::Buffer VolViz::Private_::Mesh::vertexBuffer_
private

The documentation for this class was generated from the following files: