molecular
Classes | Public Types | Public Member Functions | Protected Member Functions | List of all members
molecular::gfx::MeshDataSource Class Referenceabstract

Interface to a source of mesh data. More...

#include <MeshDataSource.h>

Inheritance diagram for molecular::gfx::MeshDataSource:
molecular::gfx::NmbMeshDataSource

Public Types

enum  LayoutHint {
  kLayoutSeperate, kLayoutInterleavedSeperatePositions, kLayoutConcatenated, kLayoutInterleaved,
  kLayoutAny
}
 

Public Member Functions

 MeshDataSource ()
 
virtual ~MeshDataSource ()=default
 
virtual int PrepareVertexData (LayoutHint layout=kLayoutAny)=0
 
virtual int PrepareIndexData ()=0
 
virtual unsigned int VertexBufferSize (int buffer)=0
 Returns vertex buffer size in bytes. More...
 
virtual unsigned int IndexBufferSize (int buffer)=0
 Returns index buffer size in bytes. More...
 
virtual const void * VertexBufferData (int buffer)=0
 
virtual const void * IndexBufferData (int buffer)=0
 
virtual util::AxisAlignedBox GetBounds () const =0
 
unsigned int GetNumVertexDataSets () const
 
const std::vector< VertexAttributeInfo > & GetVertexBufferInfos (unsigned int vertexDataSet=0) const
 
const std::vector< IndexBufferInfo > & GetIndexBufferInfos () const
 
unsigned int GetNumVertices (unsigned int vertexDataSet=0) const
 

Protected Member Functions

void SetNumVertexDataSets (unsigned int count)
 
void SetNumVertices (unsigned int numVertices, unsigned int vertexDataSet=0)
 
void AddVertexAttributeInfo (const VertexAttributeInfo &info, unsigned int vertexDataSet=0)
 
void AddIndexBufferInfo (const IndexBufferInfo &info)
 
VertexAttributeInfoGetVertexAttributeInfo (unsigned int index, unsigned int vertexDataSet=0)
 

Detailed Description

Interface to a source of mesh data.

Deprecated:
Better compile to MeshFile directly.

Member Enumeration Documentation

Enumerator
kLayoutSeperate 
kLayoutInterleavedSeperatePositions 
kLayoutConcatenated 
kLayoutInterleaved 
kLayoutAny 

Constructor & Destructor Documentation

molecular::gfx::MeshDataSource::MeshDataSource ( )
inline
virtual molecular::gfx::MeshDataSource::~MeshDataSource ( )
virtualdefault

Member Function Documentation

void molecular::gfx::MeshDataSource::AddIndexBufferInfo ( const IndexBufferInfo info)
inlineprotected
void molecular::gfx::MeshDataSource::AddVertexAttributeInfo ( const VertexAttributeInfo info,
unsigned int  vertexDataSet = 0 
)
inlineprotected
virtual util::AxisAlignedBox molecular::gfx::MeshDataSource::GetBounds ( ) const
pure virtual
const std::vector<IndexBufferInfo>& molecular::gfx::MeshDataSource::GetIndexBufferInfos ( ) const
inline
unsigned int molecular::gfx::MeshDataSource::GetNumVertexDataSets ( ) const
inline
unsigned int molecular::gfx::MeshDataSource::GetNumVertices ( unsigned int  vertexDataSet = 0) const
inline
VertexAttributeInfo& molecular::gfx::MeshDataSource::GetVertexAttributeInfo ( unsigned int  index,
unsigned int  vertexDataSet = 0 
)
inlineprotected
const std::vector<VertexAttributeInfo>& molecular::gfx::MeshDataSource::GetVertexBufferInfos ( unsigned int  vertexDataSet = 0) const
inline
virtual const void* molecular::gfx::MeshDataSource::IndexBufferData ( int  buffer)
pure virtual
Parameters
bufferIndex of the index buffer to query
Returns
Pointer to the index buffer data.

Implemented in molecular::gfx::NmbMeshDataSource.

virtual unsigned int molecular::gfx::MeshDataSource::IndexBufferSize ( int  buffer)
pure virtual

Returns index buffer size in bytes.

Parameters
bufferIndex of the index buffer to query
Returns
Size of the given index buffer in bytes.

Implemented in molecular::gfx::NmbMeshDataSource.

virtual int molecular::gfx::MeshDataSource::PrepareIndexData ( )
pure virtual
Returns
Number of index buffers.

Implemented in molecular::gfx::NmbMeshDataSource.

virtual int molecular::gfx::MeshDataSource::PrepareVertexData ( LayoutHint  layout = kLayoutAny)
pure virtual
Returns
Number of vertex buffers.

Implemented in molecular::gfx::NmbMeshDataSource.

void molecular::gfx::MeshDataSource::SetNumVertexDataSets ( unsigned int  count)
inlineprotected
void molecular::gfx::MeshDataSource::SetNumVertices ( unsigned int  numVertices,
unsigned int  vertexDataSet = 0 
)
inlineprotected
virtual const void* molecular::gfx::MeshDataSource::VertexBufferData ( int  buffer)
pure virtual
Parameters
bufferIndex of the vertex buffer to query
Returns
Pointer to the vertex buffer data.

Implemented in molecular::gfx::NmbMeshDataSource.

virtual unsigned int molecular::gfx::MeshDataSource::VertexBufferSize ( int  buffer)
pure virtual

Returns vertex buffer size in bytes.

Parameters
bufferIndex of the vertex buffer to query
Returns
Size of the given vertex buffer in bytes.

Implemented in molecular::gfx::NmbMeshDataSource.


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