Radium Engine  1.5.0
Ra::Engine::Data::Displayable Class Referenceabstract

#include <Engine/Data/DisplayableObject.hpp>

+ Inheritance diagram for Ra::Engine::Data::Displayable:
+ Collaboration diagram for Ra::Engine::Data::Displayable:

Public Types

enum  PickingRenderMode {
  PKM_POINTS = 0 , PKM_LINES = 1 , PKM_LINE_ADJ = 2 , PKM_TRI = 3 ,
  NO_PICKING
}
 

Public Member Functions

 Displayable (const std::string &name)
 
 Displayable (const Displayable &rhs)=delete
 
void operator= (const Displayable &rhs)=delete
 
PickingRenderMode pickingRenderMode () const
 Returns the picking rendermode advised by the object (default PickingRenderMode::NO_PICKING)
 
const std::string & getName () const
 Returns the name of the mesh.
 
virtual const Core::Geometry::AbstractGeometrygetAbstractGeometry () const =0
 
virtual Core::Geometry::AbstractGeometrygetAbstractGeometry ()=0
 
virtual void updateGL ()=0
 
virtual void render (const ShaderProgram *prog)=0
 
virtual size_t getNumFaces () const
 
virtual size_t getNumVertices () const
 

Protected Attributes

PickingRenderMode m_pickingRenderMode { NO_PICKING }
 

Detailed Description

Base class of any displayable object.

Definition at line 21 of file DisplayableObject.hpp.

Member Function Documentation

◆ getAbstractGeometry()

virtual const Core::Geometry::AbstractGeometry& Ra::Engine::Data::Displayable::getAbstractGeometry ( ) const
pure virtual

Returns the underlying AbstractGeometry, which is in fact a TriangleMesh

See also
getTriangleMesh
Todo:
not sure the displayable must have an abstract geometry ...

Implemented in Ra::Engine::Data::VolumeObject, Ra::Engine::Data::CoreGeometryDisplayable< T >, and Ra::Engine::Data::CoreGeometryDisplayable< Core::Geometry::PointCloud >.

◆ render()

virtual void Ra::Engine::Data::Displayable::render ( const ShaderProgram prog)
pure virtual

◆ updateGL()

virtual void Ra::Engine::Data::Displayable::updateGL ( )
pure virtual

This function is called at the start of the rendering. It will update the necessary openGL buffers.

Implemented in Ra::Engine::Data::AttribArrayDisplayable, Ra::Engine::Data::VolumeObject, Ra::Engine::Data::CoreGeometryDisplayable< T >, and Ra::Engine::Data::CoreGeometryDisplayable< Core::Geometry::PointCloud >.


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