Radium Engine
1.5.20
|
#include <Engine/Data/Mesh.hpp>
Public Member Functions | |
size_t | getNumFaces () const override |
IndexedGeometry (const std::string &name, typename base::CoreGeometry &&geom, typename base::MeshRenderMode renderMode=base::MeshRenderMode::RM_TRIANGLES) | |
Public Member Functions inherited from Ra::Engine::Data::IndexedGeometry< T > | |
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 (T &&mesh) override |
Public Member Functions inherited from Ra::Engine::Data::CoreGeometryDisplayable< T > | |
CoreGeometryDisplayable (const std::string &name, MeshRenderMode renderMode=RM_TRIANGLES) | |
template<typename A > | |
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. | |
Protected Member Functions | |
void | updateGL_specific_impl () override |
Protected Member Functions inherited from Ra::Engine::Data::IndexedGeometry< T > | |
void | updateGL_specific_impl () override |
Protected Member Functions inherited from Ra::Engine::Data::CoreGeometryDisplayable< T > | |
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. | |
Additional Inherited Members | |
Public Types inherited from Ra::Engine::Data::IndexedGeometry< T > | |
using | base = CoreGeometryDisplayable<T> |
Public Types inherited from Ra::Engine::Data::CoreGeometryDisplayable< T > | |
using | base = AttribArrayDisplayable |
using | CoreGeometry = T |
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 Attributes inherited from Ra::Engine::Data::CoreGeometryDisplayable< T > | |
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 } |
GeneralMesh, own a Mesh of type T ( e.g. Core::Geometry::PolyMesh or Core::Geometry::QuadMesh) This class handle the GPU representation of a polyhedron mesh. Each face of the polyhedron (typically quads) are assume to be planar and convex. Simple triangulation is performed on the fly before sending data to the GPU.
|
inlineoverridevirtual |
Reimplemented from Ra::Engine::Data::Displayable.
|
explicit |
|
inlineoverrideprotectedvirtual |
this one do not work since m_indices is not a std::vector
Reimplemented from Ra::Engine::Data::CoreGeometryDisplayable< T >.