Radium Engine  1.5.20
Loading...
Searching...
No Matches
Ra::Engine::Data::IndexedAttribArrayDisplayable< I > Class Template Reference

#include <Engine/Data/Mesh.hpp>

+ Inheritance diagram for Ra::Engine::Data::IndexedAttribArrayDisplayable< I >:
+ Collaboration diagram for Ra::Engine::Data::IndexedAttribArrayDisplayable< I >:

Protected Member Functions

void autoVertexAttribPointer (const ShaderProgram *prog)
 assume m_vao is bound.
 
- Protected Member Functions inherited from Ra::Engine::Data::AttribArrayDisplayable
void updatePickingRenderMode ()
 Update the picking render mode according to the object render mode.
 

Protected Attributes

IndexContainerType m_cpu_indices
 
AttribManager m_attribManager
 
- Protected Attributes inherited from Ra::Engine::Data::AttribArrayDisplayable
std::unique_ptr< globjects::VertexArray > m_vao
 
MeshRenderMode m_renderMode { MeshRenderMode::RM_TRIANGLES }
 
std::vector< std::unique_ptr< globjects::Buffer > > m_vbos
 
std::vector< bool > m_dataDirty
 
std::map< std::string, unsigned int > m_handleToBuffer
 
bool m_isDirty { false }
 General dirty bit of the mesh.
 
- Protected Attributes inherited from Ra::Engine::Data::Displayable
PickingRenderMode m_pickingRenderMode { NO_PICKING }
 
- Protected Attributes inherited from Ra::Engine::Data::VaoIndices
std::unique_ptr< globjects::Buffer > m_indices { nullptr }
 
bool m_indicesDirty { true }
 
size_t m_numElements { 0 }
 

Additional Inherited Members

- Public Types inherited from Ra::Engine::Data::AttribArrayDisplayable
enum  MeshRenderMode : uint {
  RM_POINTS = 0x0000 , RM_LINES = 0x0001 , RM_LINE_LOOP = 0x0002 , RM_LINE_STRIP = 0x0003 ,
  RM_TRIANGLES = 0x0004 , RM_TRIANGLE_STRIP = 0x0005 , RM_TRIANGLE_FAN = 0x0006 , RM_QUADS = 0x0007 ,
  RM_QUAD_STRIP = 0x0008 , RM_POLYGON = 0x0009 , RM_LINES_ADJACENCY = 0x000A , RM_LINE_STRIP_ADJACENCY = 0x000B ,
  RM_TRIANGLES_ADJACENCY = 0x000C , RM_TRIANGLE_STRIP_ADJACENCY = 0x000D , RM_PATCHES = 0x000E
}
 
- Public Types inherited from Ra::Engine::Data::Displayable
enum  PickingRenderMode {
  PKM_POINTS = 0 , PKM_LINES = 1 , PKM_LINE_ADJ = 2 , PKM_TRI = 3 ,
  NO_PICKING
}
 
- Public Member Functions inherited from Ra::Engine::Data::AttribArrayDisplayable
 AttribArrayDisplayable (const std::string &name, MeshRenderMode renderMode=RM_TRIANGLES)
 
 AttribArrayDisplayable (const AttribArrayDisplayable &rhs)=delete
 
void operator= (const AttribArrayDisplayable &rhs)=delete
 
void setRenderMode (MeshRenderMode mode)
 Set the render mode.
 
MeshRenderMode getRenderMode () const
 Get the render mode.
 
Ra::Core::Utils::optional< gl::GLuint > getVboHandle (const std::string &name)
 Get opengl's vbo handle (uint) corresponding to attrib name.
 
Ra::Core::Utils::optional< gl::GLuint > getVaoHandle ()
 Get opengl's vao handle (uint).
 
const std::stringgetName () const
 Returns the name of the mesh.
 
void setDirty (const Core::Geometry::MeshAttrib &type)
 
void setDirty (const std::string &name)
 
void setDirty (unsigned int index)
 
virtual const Core::Geometry::AttribArrayGeometrygetAttribArrayGeometry () const =0
 
virtual Core::Geometry::AttribArrayGeometrygetAttribArrayGeometry ()=0
 
- Public Member Functions inherited from Ra::Engine::Data::Displayable
 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::stringgetName () const
 Returns the name of the mesh.
 
virtual const Core::Geometry::AbstractGeometrygetAbstractGeometry () const =0
 
virtual Core::Geometry::AbstractGeometrygetAbstractGeometry ()=0
 
virtual size_t getNumFaces () const
 
virtual size_t getNumVertices () const
 
- Public Member Functions inherited from Ra::Engine::Data::VaoIndices
void setIndicesDirty ()
 Tag the indices as dirty, asking for a update to gpu.
 

Detailed Description

template<typename I>
class Ra::Engine::Data::IndexedAttribArrayDisplayable< I >

This class handles an attrib array displayable on gpu only, without core geometry. Use only when you don't need to access the cpu geometry again, or when you need to specify special indices.

Definition at line 204 of file Mesh.hpp.

Member Function Documentation

◆ autoVertexAttribPointer()

template<typename I >
void Ra::Engine::Data::IndexedAttribArrayDisplayable< I >::autoVertexAttribPointer ( const ShaderProgram * prog)
inlineprotected

assume m_vao is bound.

Definition at line 626 of file Mesh.hpp.

Member Data Documentation

◆ m_attribManager

template<typename I >
AttribManager Ra::Engine::Data::IndexedAttribArrayDisplayable< I >::m_attribManager
protected

Definition at line 223 of file Mesh.hpp.

◆ m_cpu_indices

template<typename I >
IndexContainerType Ra::Engine::Data::IndexedAttribArrayDisplayable< I >::m_cpu_indices
protected

Definition at line 222 of file Mesh.hpp.


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