Developer Documentation
ACG::DrawMeshBase Class Reference

#include <OpenFlipper/libs_required/ACG/GL/DrawMesh.hh>

Inheritance diagram for ACG::DrawMeshBase:
ACG::DrawMeshT< OpenMesh::TriMesh_ArrayKernelT > ACG::DrawMeshT< Mesh >

Public Member Functions

size_t getNumTris () const
 
size_t getNumVerts () const
 
MeshCompilergetMeshCompiler ()
 get mesh compiler used to create the draw mesh More...
 
unsigned int getNumSubsets () const
 
GLenum getIndexType () const
 get index type of index buffer More...
 
GLuint pickVertexIBO_opt ()
 get an index buffer mapping from openmesh vertices to drawmesh vbo vertices More...
 

Protected Member Functions

void deleteIbo ()
 
void bindVbo ()
 
void bindIbo ()
 
void bindLineIbo ()
 
void bindHEVbo ()
 
void unbindHEVbo ()
 
void bindPickVertexIbo ()
 
void createIndexBuffer ()
 
void fillLineBuffer (size_t n_edges, void *data)
 
void fillHEVBO (size_t numberOfElements_, size_t sizeOfElements_, void *data_)
 
void fillVertexBuffer ()
 
void fillInvVertexMap (size_t n_vertices, void *data)
 

Protected Attributes

GLuint vbo_
 
GLuint ibo_
 
size_t numTris_
 
size_t numVerts_
 
MeshCompilermeshComp_
 
GLuint lineIBO_
 index buffer used in Wireframe / Hiddenline mode More...
 
GLuint heVBO_
 vbo for halfedge rendering, as they are offset More...
 
GLint prevVBO_
 
GLenum indexType_
 support for 2 and 4 byte unsigned integers More...
 
std::vector< char > vertices_
 
VertexDeclarationvertexDecl_
 vertex buffer layout declaration with per vertex colors More...
 
VertexDeclarationvertexDeclEdgeCol_
 vertex buffer layout declaration with per edge colors, legacy path More...
 
VertexDeclaration vertexDeclEdgeNew_
 vertex buffer layout declaration with per edge colors More...
 
VertexDeclarationvertexDeclHalfedgeCol_
 vertex buffer layout declaration with per halfedge colors More...
 
VertexDeclarationvertexDeclHalfedgePos_
 vertex buffer layout declaration with halfedge positions only More...
 
GLuint pickVertexIBO_
 map from openmesh vertex to vbo vertex id More...
 

Detailed Description

This class holds non-templated code and is intended to be inherited by the templated DrawMeshT class.

Definition at line 80 of file DrawMesh.hh.

Constructor & Destructor Documentation

◆ DrawMeshBase()

ACG::DrawMeshBase::DrawMeshBase ( )
protected

Definition at line 49 of file DrawMesh.cc.

◆ ~DrawMeshBase()

ACG::DrawMeshBase::~DrawMeshBase ( )
protected

Definition at line 64 of file DrawMesh.cc.

Member Function Documentation

◆ bindHEVbo()

void ACG::DrawMeshBase::bindHEVbo ( )
protected

Definition at line 105 of file DrawMesh.cc.

◆ bindIbo()

void ACG::DrawMeshBase::bindIbo ( )
protected

Definition at line 91 of file DrawMesh.cc.

◆ bindLineIbo()

void ACG::DrawMeshBase::bindLineIbo ( )
protected

Definition at line 98 of file DrawMesh.cc.

◆ bindPickVertexIbo()

void ACG::DrawMeshBase::bindPickVertexIbo ( )
protected

Definition at line 117 of file DrawMesh.cc.

◆ bindVbo()

void ACG::DrawMeshBase::bindVbo ( )
protected

Definition at line 84 of file DrawMesh.cc.

◆ createIndexBuffer()

void ACG::DrawMeshBase::createIndexBuffer ( )
protected

Definition at line 124 of file DrawMesh.cc.

◆ deleteIbo()

void ACG::DrawMeshBase::deleteIbo ( )
protected

Definition at line 78 of file DrawMesh.cc.

◆ fillHEVBO()

void ACG::DrawMeshBase::fillHEVBO ( size_t  numberOfElements_,
size_t  sizeOfElements_,
void *  data_ 
)
protected

Definition at line 142 of file DrawMesh.cc.

◆ fillInvVertexMap()

void ACG::DrawMeshBase::fillInvVertexMap ( size_t  n_vertices,
void *  data 
)
protected

Definition at line 154 of file DrawMesh.cc.

◆ fillLineBuffer()

void ACG::DrawMeshBase::fillLineBuffer ( size_t  n_edges,
void *  data 
)
protected

Definition at line 130 of file DrawMesh.cc.

◆ fillVertexBuffer()

void ACG::DrawMeshBase::fillVertexBuffer ( )
protected

Definition at line 149 of file DrawMesh.cc.

◆ getIndexType()

GLenum ACG::DrawMeshBase::getIndexType ( ) const
inline

get index type of index buffer

Definition at line 110 of file DrawMesh.hh.

◆ getMeshCompiler()

MeshCompiler * ACG::DrawMeshBase::getMeshCompiler ( )
inline

get mesh compiler used to create the draw mesh

Definition at line 105 of file DrawMesh.hh.

◆ getNumSubsets()

unsigned int ACG::DrawMeshBase::getNumSubsets ( ) const
inline

Definition at line 106 of file DrawMesh.hh.

◆ getNumTris()

size_t ACG::DrawMeshBase::getNumTris ( ) const
inline

Definition at line 100 of file DrawMesh.hh.

◆ getNumVerts()

size_t ACG::DrawMeshBase::getNumVerts ( ) const
inline

Definition at line 101 of file DrawMesh.hh.

◆ pickVertexIBO_opt()

GLuint ACG::DrawMeshBase::pickVertexIBO_opt ( )
inline

get an index buffer mapping from openmesh vertices to drawmesh vbo vertices

Returns
index buffer object (UNSIGNED_INT), might be 0 if the openmesh object is a point cloud

Definition at line 116 of file DrawMesh.hh.

◆ unbindHEVbo()

void ACG::DrawMeshBase::unbindHEVbo ( )
protected

Definition at line 113 of file DrawMesh.cc.

Member Data Documentation

◆ heVBO_

GLuint ACG::DrawMeshBase::heVBO_
protected

vbo for halfedge rendering, as they are offset

Definition at line 128 of file DrawMesh.hh.

◆ ibo_

GLuint ACG::DrawMeshBase::ibo_
protected

Definition at line 121 of file DrawMesh.hh.

◆ indexType_

GLenum ACG::DrawMeshBase::indexType_
protected

support for 2 and 4 byte unsigned integers

Definition at line 133 of file DrawMesh.hh.

◆ lineIBO_

GLuint ACG::DrawMeshBase::lineIBO_
protected

index buffer used in Wireframe / Hiddenline mode

Definition at line 126 of file DrawMesh.hh.

◆ meshComp_

MeshCompiler* ACG::DrawMeshBase::meshComp_
protected

Definition at line 123 of file DrawMesh.hh.

◆ numTris_

size_t ACG::DrawMeshBase::numTris_
protected

Definition at line 122 of file DrawMesh.hh.

◆ numVerts_

size_t ACG::DrawMeshBase::numVerts_
protected

Definition at line 122 of file DrawMesh.hh.

◆ pickVertexIBO_

GLuint ACG::DrawMeshBase::pickVertexIBO_
protected

map from openmesh vertex to vbo vertex id

Definition at line 156 of file DrawMesh.hh.

◆ prevVBO_

GLint ACG::DrawMeshBase::prevVBO_
protected

Definition at line 130 of file DrawMesh.hh.

◆ vbo_

GLuint ACG::DrawMeshBase::vbo_
protected

Definition at line 121 of file DrawMesh.hh.

◆ vertexDecl_

VertexDeclaration* ACG::DrawMeshBase::vertexDecl_
protected

vertex buffer layout declaration with per vertex colors

Definition at line 141 of file DrawMesh.hh.

◆ vertexDeclEdgeCol_

VertexDeclaration* ACG::DrawMeshBase::vertexDeclEdgeCol_
protected

vertex buffer layout declaration with per edge colors, legacy path

Definition at line 144 of file DrawMesh.hh.

◆ vertexDeclEdgeNew_

VertexDeclaration ACG::DrawMeshBase::vertexDeclEdgeNew_
protected

vertex buffer layout declaration with per edge colors

Definition at line 147 of file DrawMesh.hh.

◆ vertexDeclHalfedgeCol_

VertexDeclaration* ACG::DrawMeshBase::vertexDeclHalfedgeCol_
protected

vertex buffer layout declaration with per halfedge colors

Definition at line 150 of file DrawMesh.hh.

◆ vertexDeclHalfedgePos_

VertexDeclaration* ACG::DrawMeshBase::vertexDeclHalfedgePos_
protected

vertex buffer layout declaration with halfedge positions only

Definition at line 153 of file DrawMesh.hh.

◆ vertices_

std::vector<char> ACG::DrawMeshBase::vertices_
protected

final vertex buffer used for rendering raw byte array, use write__() functions for access

Definition at line 138 of file DrawMesh.hh.


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