Radium Engine
1.5.20
|
Mesh, own a Core::Geometry::TriangleMesh. More...
#include <Engine/Data/Mesh.hpp>
Public Member Functions | |
size_t | getNumFaces () const override |
void | loadGeometry (const Core::Vector3Array &vertices, const std::vector< uint > &indices) |
Public Member Functions inherited from Ra::Engine::Data::IndexedGeometry< Core::Geometry::TriangleMesh > | |
IndexedGeometry (const std::string &name, typename base::CoreGeometry &&geom, typename base::MeshRenderMode renderMode=base::MeshRenderMode::RM_TRIANGLES) | |
void | render (const ShaderProgram *prog) override |
void | loadGeometry (Core::Geometry::TriangleMesh &&mesh) override |
Public Member Functions inherited from Ra::Engine::Data::CoreGeometryDisplayable< Core::Geometry::TriangleMesh > | |
CoreGeometryDisplayable (const std::string &name, MeshRenderMode renderMode=RM_TRIANGLES) | |
Ra::Core::Utils::AttribHandle< A > | addAttrib (const std::string &name, const typename Core::VectorArray< A > &data) |
Helper function that calls Ra::Core::CoreGeometry::addAttrib() | |
size_t | getNumVertices () const override |
void | updateGL () override |
Update (i.e. send to GPU) the buffers marked as dirty. | |
void | setAttribNameCorrespondance (const std::string &meshAttribName, const std::string &shaderAttribName) |
const Core::Geometry::AbstractGeometry & | getAbstractGeometry () const override |
Core::Geometry::AbstractGeometry & | getAbstractGeometry () override |
const Core::Geometry::AttribArrayGeometry & | getAttribArrayGeometry () const override |
Core::Geometry::AttribArrayGeometry & | getAttribArrayGeometry () override |
const CoreGeometry & | getCoreGeometry () const |
CoreGeometry & | getCoreGeometry () |
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::string & | getName () 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) |
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::string & | getName () const |
Returns the name of the mesh. | |
Public Member Functions inherited from Ra::Engine::Data::VaoIndices | |
void | setIndicesDirty () |
Tag the indices as dirty, asking for a update to gpu. | |
Additional Inherited Members | |
Public Types inherited from Ra::Engine::Data::IndexedGeometry< Core::Geometry::TriangleMesh > | |
using | base |
Public Types inherited from Ra::Engine::Data::CoreGeometryDisplayable< Core::Geometry::TriangleMesh > | |
using | base |
using | CoreGeometry |
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 } |
Protected Member Functions inherited from Ra::Engine::Data::IndexedGeometry< Core::Geometry::TriangleMesh > | |
void | updateGL_specific_impl () override |
Protected Member Functions inherited from Ra::Engine::Data::CoreGeometryDisplayable< Core::Geometry::TriangleMesh > | |
void | loadGeometry_common (CoreGeometry &&mesh) |
void | setupCoreMeshObservers () |
void | autoVertexAttribPointer (const ShaderProgram *prog) |
assume m_vao is bound. | |
void | addAttribObserver (const std::string &name) |
void | addToTranslationTable (const std::string &name) |
Protected Member Functions inherited from Ra::Engine::Data::AttribArrayDisplayable | |
void | updatePickingRenderMode () |
Update the picking render mode according to the object render mode. | |
Protected Attributes inherited from Ra::Engine::Data::CoreGeometryDisplayable< Core::Geometry::TriangleMesh > | |
BijectiveAssociation< std::string, std::string > | m_translationTable |
CoreGeometry | m_mesh |
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 } |
|
overridevirtual |
Reimplemented from Ra::Engine::Data::Displayable.
void Ra::Engine::Data::Mesh::loadGeometry | ( | const Core::Vector3Array & | vertices, |
const std::vector< uint > & | indices ) |