Developer Documentation
VolumeMeshBufferManager< VolumeMesh > Class Template Reference

This class creates buffers that can be used to render open volume meshs. More...

#include <Type-OpenVolumeMesh/ObjectTypes/VolumeMeshObject/VolumeMeshBufferManager.hh>

Public Types

enum  PrimitiveMode {
  PM_NONE , PM_CELLS , PM_FACES , PM_FACES_ON_CELLS ,
  PM_HALFFACES , PM_HALFFACES_ON_CELLS , PM_EDGES , PM_IRREGULAR_EDGES ,
  PM_EDGES_ON_CELLS , PM_HALFEDGES , PM_VERTICES , PM_VERTICES_ON_CELLS
}
 
enum  NormalMode { NM_NONE , NM_FACE , NM_HALFFACE , NM_VERTEX }
 
enum  ColorMode {
  CM_NO_COLORS , CM_CELL , CM_FACE , CM_HALFFACE ,
  CM_EDGE , CM_HALFEDGE , CM_VERTEX , CM_PICK
}
 
enum  TexCoordMode { TCM_NONE , TCM_SINGLE_2D }
 

Public Member Functions

 VolumeMeshBufferManager (const VolumeMesh &mesh_, OpenVolumeMesh::StatusAttrib &statusAttrib_, OpenVolumeMesh::ColorAttrib< ACG::Vec4f > &colorAttrib_, OpenVolumeMesh::NormalAttrib< VolumeMesh > &normalAttrib_, OpenVolumeMesh::TexCoordAttrib< ACG::Vec2f > &texcoordAttrib_)
 
void setScale (double _scale)
 Sets the scale used to shrink cells. More...
 
double getScale () const
 Return the scale used to shrink cells. More...
 
unsigned char getStride ()
 Returns the vertex stride. More...
 
unsigned char getColorOffset ()
 Returns the color's offset within the buffer. More...
 
unsigned char getNormalOffset ()
 Returns the normal's offset within the buffer. More...
 
unsigned char getTexCoordOffset ()
 Returns the texcoord's offset within the buffer. More...
 
const ACG::VertexDeclarationgetVertexDeclaration ()
 Returns a VertexDeclaration for the vertices stored in the buffer. More...
 
GLuint getBuffer ()
 Returns the name of the buffer. More...
 
GLuint getPickBuffer (ACG::GLState &_state, unsigned int _offset)
 Returns the name of the pick buffer. More...
 
void invalidate ()
 Invalidates the buffer. More...
 
void invalidateGeometry ()
 Invalidates geometry. More...
 
void invalidateColors ()
 Invalidates colors. More...
 
void invalidateNormals ()
 Invalidates normals. More...
 
void invalidateTexCoords ()
 Invalidates texture coordinates. More...
 
void free ()
 Deletes the buffers on the GPU. More...
 
unsigned int getNumOfVertices ()
 Returns the number of vertices stored in the buffer. More...
 
void setDefaultColor (ACG::Vec4f _defaultColor)
 Sets the default color. More...
 
void setOptionsFromDrawMode (ACG::SceneGraph::DrawModes::DrawMode _drawMode)
 Configures the buffer manager's options from a DrawMode. More...
 
void disableColors ()
 Disables colors. More...
 
void enablePerCellColors ()
 Enables per cell colors. More...
 
void enablePerFaceColors ()
 Enables per face colors. More...
 
void enablePerHalffaceColors ()
 Enables per halfface colors. More...
 
void enablePerEdgeColors ()
 Enables per edge colors. More...
 
void enablePerHalfedgeColors ()
 Enables per halfedge colors. More...
 
void enablePerVertexColors ()
 Enables per vertex colors. More...
 
void enablePickColors ()
 Enables picking colors. More...
 
void disableNormals ()
 Disables normals. More...
 
void enablePerFaceNormals ()
 Enables per face normals. More...
 
void enablePerHalffaceNormals ()
 Enables per halfface normals. More...
 
void enablePerVertexNormals ()
 Enables per vertex normals. More...
 
void disablePrimitives ()
 Disables primitives (nothing will be drawn) More...
 
void enableCellPrimitives ()
 Enables cell primitives. More...
 
void enableFacePrimitives ()
 Enables face primitives. More...
 
void enableFaceOnCellPrimitives ()
 Enables face primitives which are drawn on the cells. More...
 
void enableHalffacePrimitives ()
 Enables halfface primitves. More...
 
void enableHalffaceOnCellPrimitives ()
 Enables halfface primitives which are drawn on the cells. More...
 
void enableEdgePrimitives ()
 Enables edge primitves. More...
 
void enableIrregularEdgePrimitives ()
 Enables edge primitives for irregular edges. More...
 
void enableEdgeOnCellPrimitives ()
 Enables edge primitives which are drawn on the cells. More...
 
void enableHalfedgePrimitives ()
 Enables per halfedge primitives. More...
 
void enableVertexPrimitives ()
 Enables vertex primitives. More...
 
void enableVertexOnCellPrimitives ()
 Enables vertex primitives that are drawn on the cells. More...
 
void disableTextures ()
 Disables textures. More...
 
void enableTextureSingle ()
 Enables textures. More...
 
bool selectionOnly ()
 Checks whether only selected primitives should be added to the buffer. More...
 
void setSelectionOnly (bool _selectionOnly)
 Set whether only selected primitves should be added to the buffer. More...
 
void clearCutPlanes ()
 Removes all cut planes. More...
 
void addCutPlane (const ACG::Geometry::Plane &_p)
 Adds a cut plane. More...
 
void addCutPlane (const ACG::Vec3d &_p, const ACG::Vec3d &_n, const ACG::Vec3d &_xsize, const ACG::Vec3d &_ysize)
 Adds a cut plane. More...
 
void setBoundaryOnly (bool _boundaryOnly)
 Sets whether only the boundary primitves should be rendered. More...
 

Private Types

typedef OpenVolumeMesh::VertexHandle VertexHandle
 
typedef OpenVolumeMesh::EdgeHandle EdgeHandle
 
typedef OpenVolumeMesh::HalfEdgeHandle HalfEdgeHandle
 
typedef OpenVolumeMesh::FaceHandle FaceHandle
 
typedef OpenVolumeMesh::HalfFaceHandle HalfFaceHandle
 
typedef OpenVolumeMesh::CellHandle CellHandle
 
typedef VolumeMesh::PointT Vertex
 
typedef OpenVolumeMesh::OpenVolumeMeshEdge Edge
 
typedef OpenVolumeMesh::OpenVolumeMeshFace Face
 
typedef OpenVolumeMesh::OpenVolumeMeshCell Cell
 
using Plane = ACG::Geometry::Plane
 

Private Member Functions

bool is_inside (const ACG::Vec3d &_p)
 Tests whether the given point is inside w.r.t. all cut planes. More...
 
bool is_inside (const VertexHandle &_vh)
 Tests whether the given vertex is inside w.r.t. all cut planes. More...
 
bool is_inside (const HalfEdgeHandle &_heh)
 Tests whether the given halfedge is inside w.r.t. all cut planes. More...
 
bool is_inside (const EdgeHandle &_eh)
 Tests whether the given edge is inside w.r.t. all cut planes. More...
 
bool is_inside (const HalfFaceHandle &_hfh)
 Tests whether the given halfface is inside w.r.t. all cut planes. More...
 
bool is_inside (const FaceHandle &_fh)
 Tests whether the given face is inside w.r.t. all cut planes. More...
 
bool is_inside (const CellHandle &_ch)
 Tests whether the given cell is inside w.r.t. all cut planes. More...
 
void calculateCellInsideness ()
 Calculates for all cells whether they are inside w.r.t. all cut planes. More...
 
bool should_render (const VertexHandle &_vh)
 
bool should_render (const HalfEdgeHandle &_heh)
 
bool should_render (const EdgeHandle &_eh)
 
bool should_render (const HalfFaceHandle &_hfh)
 
bool should_render (const FaceHandle &_fh)
 
bool should_render (const CellHandle &_ch)
 
bool optionsChanged ()
 Tests whether the options were changed since the last time building the buffer. More...
 
void saveOptions ()
 State that the current buffer was built with the current options. More...
 
void addFloatToBuffer (float _value, unsigned char *&_buffer)
 Adds a float to the buffer. More...
 
void addUCharToBuffer (unsigned char _value, unsigned char *&_buffer)
 Adds an unsigned char to the buffer. More...
 
void addPositionToBuffer (ACG::Vec3d _position, unsigned char *_buffer, unsigned int _offset)
 Adds a position to the buffer. More...
 
void addColorToBuffer (ACG::Vec4uc _color, unsigned char *_buffer, unsigned int _offset)
 Adds a color to the buffer. More...
 
void addColorToBuffer (ACG::Vec4f _color, unsigned char *_buffer, unsigned int _offset)
 Adds a color to the buffer. More...
 
void addNormalToBuffer (ACG::Vec3d _normal, unsigned char *_buffer, unsigned int _offset)
 Adds a normal to the buffer. More...
 
void addTexCoordToBuffer (ACG::Vec2f _texCoord, unsigned char *_buffer, unsigned int _offset)
 Adds a texture coordnate to the buffer. More...
 
void calculateVertexDeclaration ()
 Constructs a VertexDeclaration, the size and the offsets for the vertices stored in the buffer. More...
 
void buildVertexBuffer (unsigned char *_buffer)
 Adds all vertices to the buffer. More...
 
void buildNormalBuffer (unsigned char *_buffer)
 Adds all normals to the buffer. More...
 
void buildColorBuffer (unsigned char *_buffer)
 Adds all colors to the buffer. More...
 
void buildTexCoordBuffer (unsigned char *_buffer)
 Adds texture coordinates to the buffer. More...
 
void buildPickColorBuffer (ACG::GLState &_state, unsigned int _offset, unsigned char *_buffer)
 Adds all picking colors to the buffer. More...
 
ACG::Vec4f getValenceColorCode (unsigned int _valence, bool _inner) const
 Returns a color code for irregular edges. More...
 
void countNumOfVertices ()
 Counts the number of vertices that need to be stored in the buffer. More...
 
int getNumOfIncidentCells (OpenVolumeMesh::FaceHandle _fh)
 Returns the number of cells that are incident to the given face and also inside w.r.t. all cut planes. More...
 
int getNumOfIncidentCells (OpenVolumeMesh::EdgeHandle _eh)
 Returns the number of cells that are incident to the given edge and also inside w.r.t. all cut planes. More...
 
int getNumOfIncidentCells (OpenVolumeMesh::VertexHandle _vh)
 Returns the number of cells that are incident to the given vertex and also inside w.r.t. all cut planes. More...
 
ACG::Vec3d getCOG (OpenVolumeMesh::CellHandle _ch)
 Returns the center of gravity of the given cell. More...
 
void calculateCOGs ()
 Calculates the center of gravity for all cells. More...
 
bool positionsNeedRebuild ()
 Checks whether positions need to be rebuild. More...
 
bool colorsNeedRebuild ()
 Checks whether colors need to be rebuild. More...
 
bool texCoordsNeedRebuild ()
 Checks whether texture coordinates need to be rebuild. More...
 
bool normalsNeedRebuild ()
 Checks whether normals need to be rebuild. More...
 

Private Attributes

ACG::Vec4f mDefaultColor
 
const VolumeMesh & mMesh
 
OpenVolumeMesh::StatusAttribmStatusAttrib
 
OpenVolumeMesh::ColorAttrib< ACG::Vec4f > & mColorAttrib
 
OpenVolumeMesh::NormalAttrib< VolumeMesh > & mNormalAttrib
 
OpenVolumeMesh::TexCoordAttrib< ACG::Vec2f > & mTexcoordAttrib
 
int mNumOfVertices
 
int mCurrentNumOfVertices
 
unsigned int mVertexSize
 
ACG::VertexDeclaration mVertexDeclaration
 
int mColorOffset
 
int mNormalOffset
 
double mScale
 
GLuint mBuffer
 
unsigned int mCurrentPickOffset
 
unsigned int mGlobalPickOffset
 
bool mInvalidated
 
bool mGeometryChanged
 
bool mNormalsChanged
 
bool mColorsChanged
 
bool mTexCoordsChanged
 
VolumeMeshDrawModesContainer mDrawModes
 
PrimitiveMode mPrimitiveMode
 
NormalMode mNormalMode
 
ColorMode mColorMode
 
bool mSkipUnselected
 
bool mShowIrregularInnerEdges
 
bool mShowIrregularOuterValence2Edges
 
bool mSkipRegularEdges
 
bool mBoundaryOnly
 
PrimitiveMode mCurrentPrimitiveMode
 
NormalMode mCurrentNormalMode
 
ColorMode mCurrentColorMode
 
bool mCurrentSkipUnselected
 
bool mCurrentShowIrregularInnerEdges
 
bool mCurrentShowIrregularOuterValence2Edges
 
bool mCurrentSkipRegularEdges
 
bool mCurrentBoundaryOnly
 
unsigned char mCurrentVertexSize
 
unsigned char mCurrentNormalOffset
 
unsigned char mCurrentColorOffset
 
std::vector< ACG::Geometry::Planecut_planes_
 
std::vector< ACG::Vec3dmCogs
 
bool mCogsValid
 
std::vector< bool > mCellInsideness
 
bool mCellInsidenessValid
 
TexCoordMode mTexCoordMode
 
TexCoordMode mCurrentTexCoordMode
 
unsigned char mTexCoordOffset
 
unsigned char mCurrentTexCoordOffset
 

Detailed Description

template<class VolumeMesh>
class VolumeMeshBufferManager< VolumeMesh >

This class creates buffers that can be used to render open volume meshs.

Definition at line 61 of file VolumeMeshBufferManager.hh.

Member Typedef Documentation

◆ Cell

template<class VolumeMesh >
typedef OpenVolumeMesh::OpenVolumeMeshCell VolumeMeshBufferManager< VolumeMesh >::Cell
private

Definition at line 74 of file VolumeMeshBufferManager.hh.

◆ CellHandle

template<class VolumeMesh >
typedef OpenVolumeMesh::CellHandle VolumeMeshBufferManager< VolumeMesh >::CellHandle
private

Definition at line 69 of file VolumeMeshBufferManager.hh.

◆ Edge

template<class VolumeMesh >
typedef OpenVolumeMesh::OpenVolumeMeshEdge VolumeMeshBufferManager< VolumeMesh >::Edge
private

Definition at line 72 of file VolumeMeshBufferManager.hh.

◆ EdgeHandle

template<class VolumeMesh >
typedef OpenVolumeMesh::EdgeHandle VolumeMeshBufferManager< VolumeMesh >::EdgeHandle
private

Definition at line 65 of file VolumeMeshBufferManager.hh.

◆ Face

template<class VolumeMesh >
typedef OpenVolumeMesh::OpenVolumeMeshFace VolumeMeshBufferManager< VolumeMesh >::Face
private

Definition at line 73 of file VolumeMeshBufferManager.hh.

◆ FaceHandle

template<class VolumeMesh >
typedef OpenVolumeMesh::FaceHandle VolumeMeshBufferManager< VolumeMesh >::FaceHandle
private

Definition at line 67 of file VolumeMeshBufferManager.hh.

◆ HalfEdgeHandle

template<class VolumeMesh >
typedef OpenVolumeMesh::HalfEdgeHandle VolumeMeshBufferManager< VolumeMesh >::HalfEdgeHandle
private

Definition at line 66 of file VolumeMeshBufferManager.hh.

◆ HalfFaceHandle

template<class VolumeMesh >
typedef OpenVolumeMesh::HalfFaceHandle VolumeMeshBufferManager< VolumeMesh >::HalfFaceHandle
private

Definition at line 68 of file VolumeMeshBufferManager.hh.

◆ Plane

template<class VolumeMesh >
using VolumeMeshBufferManager< VolumeMesh >::Plane = ACG::Geometry::Plane
private

Definition at line 76 of file VolumeMeshBufferManager.hh.

◆ Vertex

template<class VolumeMesh >
typedef VolumeMesh::PointT VolumeMeshBufferManager< VolumeMesh >::Vertex
private

Definition at line 71 of file VolumeMeshBufferManager.hh.

◆ VertexHandle

template<class VolumeMesh >
typedef OpenVolumeMesh::VertexHandle VolumeMeshBufferManager< VolumeMesh >::VertexHandle
private

Definition at line 64 of file VolumeMeshBufferManager.hh.

Member Enumeration Documentation

◆ ColorMode

template<class VolumeMesh >
enum VolumeMeshBufferManager::ColorMode

Definition at line 104 of file VolumeMeshBufferManager.hh.

◆ NormalMode

template<class VolumeMesh >
enum VolumeMeshBufferManager::NormalMode

Definition at line 96 of file VolumeMeshBufferManager.hh.

◆ PrimitiveMode

template<class VolumeMesh >
enum VolumeMeshBufferManager::PrimitiveMode

Definition at line 80 of file VolumeMeshBufferManager.hh.

◆ TexCoordMode

template<class VolumeMesh >
enum VolumeMeshBufferManager::TexCoordMode

Definition at line 116 of file VolumeMeshBufferManager.hh.

Constructor & Destructor Documentation

◆ VolumeMeshBufferManager()

template<class VolumeMesh >
VolumeMeshBufferManager< VolumeMesh >::VolumeMeshBufferManager ( const VolumeMesh &  mesh_,
OpenVolumeMesh::StatusAttrib statusAttrib_,
OpenVolumeMesh::ColorAttrib< ACG::Vec4f > &  colorAttrib_,
OpenVolumeMesh::NormalAttrib< VolumeMesh > &  normalAttrib_,
OpenVolumeMesh::TexCoordAttrib< ACG::Vec2f > &  texcoordAttrib_ 
)

Definition at line 48 of file VolumeMeshBufferManagerT_impl.hh.

◆ ~VolumeMeshBufferManager()

template<class VolumeMesh >
virtual VolumeMeshBufferManager< VolumeMesh >::~VolumeMeshBufferManager ( )
inlinevirtual

Definition at line 126 of file VolumeMeshBufferManager.hh.

Member Function Documentation

◆ addColorToBuffer() [1/2]

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::addColorToBuffer ( ACG::Vec4f  _color,
unsigned char *  _buffer,
unsigned int  _offset 
)
private

Adds a color to the buffer.

The color is added as unsigned character between 0 and 255 for _color between 0.0f and 1.0f

This method should be called after the size of a vertex and the color offset within a vertex was calculated using calculateVertexDeclaration()

Parameters
_colorThe color that should be inserted
_bufferA pointer to the start of the buffer
_offsetThe offset (in number of vertices) to the place the color should inserted

Definition at line 194 of file VolumeMeshBufferManagerT_impl.hh.

◆ addColorToBuffer() [2/2]

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::addColorToBuffer ( ACG::Vec4uc  _color,
unsigned char *  _buffer,
unsigned int  _offset 
)
private

Adds a color to the buffer.

This method should be called after the size of a vertex and the color offset within a vertex was calculated using calculateVertexDeclaration()

Parameters
_colorThe color that should be inserted
_bufferA pointer to the start of the buffer
_offsetThe offset (in number of vertices) to the place the color should be inserted

Definition at line 172 of file VolumeMeshBufferManagerT_impl.hh.

◆ addCutPlane() [1/2]

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::addCutPlane ( const ACG::Geometry::Plane _p)

Adds a cut plane.

After adding the cut plane the buffer is invalidated so it is rebuild the next time someone wants to use it.

Parameters
_pThe plane that is added.

Definition at line 434 of file VolumeMeshBufferManagerT_impl.hh.

◆ addCutPlane() [2/2]

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::addCutPlane ( const ACG::Vec3d _p,
const ACG::Vec3d _n,
const ACG::Vec3d _xsize,
const ACG::Vec3d _ysize 
)

Adds a cut plane.

After adding the cut plane the buffer is invalidated so it is rebuild the next time someone wants to use it.

Parameters
_pThe position of the plane.
_nThe normal of the plane.
_xsizeThe x-direction of the plane scaled by 1.0/width
_ysizeThe y-direction of the plane scaled by 1.0/height

Definition at line 452 of file VolumeMeshBufferManagerT_impl.hh.

◆ addFloatToBuffer()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::addFloatToBuffer ( float  _value,
unsigned char *&  _buffer 
)
private

Adds a float to the buffer.

The given value will be inserted at the location the pointer points to. After execution the pointer will point to the element after the inserted one.

Parameters
_valueThe value that should be inserted
_bufferA pointer to the place the value should be inserted to

Definition at line 114 of file VolumeMeshBufferManagerT_impl.hh.

◆ addNormalToBuffer()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::addNormalToBuffer ( ACG::Vec3d  _normal,
unsigned char *  _buffer,
unsigned int  _offset 
)
private

Adds a normal to the buffer.

This method should be called after the size of a vertex and the normal offset within a vertex was calculated using calculateVertexDeclaration()

Parameters
_normalThe normal that should be inserted
_bufferA pointer to the start of the buffer
_offsetThe offset (in number of vertices) to the place the normal should inserted

Definition at line 214 of file VolumeMeshBufferManagerT_impl.hh.

◆ addPositionToBuffer()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::addPositionToBuffer ( ACG::Vec3d  _position,
unsigned char *  _buffer,
unsigned int  _offset 
)
private

Adds a position to the buffer.

This method should be called after the size of a vertex was calculated using calculateVertexDeclaration()

Parameters
_positionThe position that should be inserted
_bufferA pointer to the start of the buffer
_offsetThe offset (in number of vertices) to the place the position should be inserted

Definition at line 153 of file VolumeMeshBufferManagerT_impl.hh.

◆ addTexCoordToBuffer()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::addTexCoordToBuffer ( ACG::Vec2f  _texCoord,
unsigned char *  _buffer,
unsigned int  _offset 
)
private

Adds a texture coordnate to the buffer.

This method should be called after the size of a vertex and the normal offset within a vertex was calculated using calculateVertexDeclaration()

Parameters
_texCoordThe texture coordinate that should be inserted
_bufferA pointer to the start of the buffer
_offsetThe offset (in number of vertices) to the place the texture coordinate should inserted

Definition at line 233 of file VolumeMeshBufferManagerT_impl.hh.

◆ addUCharToBuffer()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::addUCharToBuffer ( unsigned char  _value,
unsigned char *&  _buffer 
)
private

Adds an unsigned char to the buffer.

The given value will be inserted at the location the pointer points to. After execution the pointer will point to the element after the inserted one.

Parameters
_valueThe value that should be inserted
_bufferA pointer to the place the value should be inserted to

Definition at line 136 of file VolumeMeshBufferManagerT_impl.hh.

◆ buildColorBuffer()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::buildColorBuffer ( unsigned char *  _buffer)
private

Adds all colors to the buffer.

Parameters
_bufferPointer to the start of the buffer

Definition at line 1446 of file VolumeMeshBufferManagerT_impl.hh.

◆ buildNormalBuffer()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::buildNormalBuffer ( unsigned char *  _buffer)
private

Adds all normals to the buffer.

Parameters
_bufferPointer to the start of the buffer

Definition at line 1308 of file VolumeMeshBufferManagerT_impl.hh.

◆ buildPickColorBuffer()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::buildPickColorBuffer ( ACG::GLState _state,
unsigned int  _offset,
unsigned char *  _buffer 
)
private

Adds all picking colors to the buffer.

Parameters
_stateThe current state which provides the picking colors.
_offsetAn offset that is added to the primitive's idx when asking for a picking color. This is necessary when different types of primitives are picked simultaneously. The number of other primives
_bufferPointer to the start of the buffer

Definition at line 1772 of file VolumeMeshBufferManagerT_impl.hh.

◆ buildTexCoordBuffer()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::buildTexCoordBuffer ( unsigned char *  _buffer)
private

Adds texture coordinates to the buffer.

Parameters
_bufferPointer to the start of the buffer

Definition at line 1710 of file VolumeMeshBufferManagerT_impl.hh.

◆ buildVertexBuffer()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::buildVertexBuffer ( unsigned char *  _buffer)
private

Adds all vertices to the buffer.

Parameters
_bufferPointer to the start of the buffer

Definition at line 1094 of file VolumeMeshBufferManagerT_impl.hh.

◆ calculateCellInsideness()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::calculateCellInsideness
private

Calculates for all cells whether they are inside w.r.t. all cut planes.

The insideness is stored so it can be reused until the geometry or cut planes change to improve performance.

Definition at line 646 of file VolumeMeshBufferManagerT_impl.hh.

◆ calculateCOGs()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::calculateCOGs
private

Calculates the center of gravity for all cells.

The centers of gravity are stored in the property mCogProperty points to. Make sure this points to a correct property before calling this method.

Definition at line 999 of file VolumeMeshBufferManagerT_impl.hh.

◆ calculateVertexDeclaration()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::calculateVertexDeclaration
private

Constructs a VertexDeclaration, the size and the offsets for the vertices stored in the buffer.

Depending on the current options this method calculates an appropriate VertexDeclaration which can be used for rendering. Also it calculates the vertex stride and the offsets for colors and normals.

Definition at line 249 of file VolumeMeshBufferManagerT_impl.hh.

◆ clearCutPlanes()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::clearCutPlanes

Removes all cut planes.

After removing the cut planes the buffer is invalidated so it is rebuild the next time someone wants to use it.

Definition at line 419 of file VolumeMeshBufferManagerT_impl.hh.

◆ colorsNeedRebuild()

template<class VolumeMesh >
bool VolumeMeshBufferManager< VolumeMesh >::colorsNeedRebuild
private

Checks whether colors need to be rebuild.

Returns
True iff colors need to be rebuild

Definition at line 1045 of file VolumeMeshBufferManagerT_impl.hh.

◆ countNumOfVertices()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::countNumOfVertices
private

Counts the number of vertices that need to be stored in the buffer.

The number of vertices is stored in mNumOfVertices

Definition at line 748 of file VolumeMeshBufferManagerT_impl.hh.

◆ disableColors()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::disableColors ( )
inline

Disables colors.

Definition at line 193 of file VolumeMeshBufferManager.hh.

◆ disableNormals()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::disableNormals ( )
inline

Disables normals.

Definition at line 218 of file VolumeMeshBufferManager.hh.

◆ disablePrimitives()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::disablePrimitives ( )
inline

Disables primitives (nothing will be drawn)

Definition at line 231 of file VolumeMeshBufferManager.hh.

◆ disableTextures()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::disableTextures ( )
inline

Disables textures.

Definition at line 268 of file VolumeMeshBufferManager.hh.

◆ enableCellPrimitives()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::enableCellPrimitives ( )
inline

Enables cell primitives.

Definition at line 234 of file VolumeMeshBufferManager.hh.

◆ enableEdgeOnCellPrimitives()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::enableEdgeOnCellPrimitives ( )
inline

Enables edge primitives which are drawn on the cells.

Definition at line 255 of file VolumeMeshBufferManager.hh.

◆ enableEdgePrimitives()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::enableEdgePrimitives ( )
inline

Enables edge primitves.

Definition at line 249 of file VolumeMeshBufferManager.hh.

◆ enableFaceOnCellPrimitives()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::enableFaceOnCellPrimitives ( )
inline

Enables face primitives which are drawn on the cells.

Definition at line 240 of file VolumeMeshBufferManager.hh.

◆ enableFacePrimitives()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::enableFacePrimitives ( )
inline

Enables face primitives.

Definition at line 237 of file VolumeMeshBufferManager.hh.

◆ enableHalfedgePrimitives()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::enableHalfedgePrimitives ( )
inline

Enables per halfedge primitives.

Definition at line 258 of file VolumeMeshBufferManager.hh.

◆ enableHalffaceOnCellPrimitives()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::enableHalffaceOnCellPrimitives ( )
inline

Enables halfface primitives which are drawn on the cells.

Definition at line 246 of file VolumeMeshBufferManager.hh.

◆ enableHalffacePrimitives()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::enableHalffacePrimitives ( )
inline

Enables halfface primitves.

Definition at line 243 of file VolumeMeshBufferManager.hh.

◆ enableIrregularEdgePrimitives()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::enableIrregularEdgePrimitives ( )
inline

Enables edge primitives for irregular edges.

Definition at line 252 of file VolumeMeshBufferManager.hh.

◆ enablePerCellColors()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::enablePerCellColors ( )
inline

Enables per cell colors.

Definition at line 196 of file VolumeMeshBufferManager.hh.

◆ enablePerEdgeColors()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::enablePerEdgeColors ( )
inline

Enables per edge colors.

Definition at line 205 of file VolumeMeshBufferManager.hh.

◆ enablePerFaceColors()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::enablePerFaceColors ( )
inline

Enables per face colors.

Definition at line 199 of file VolumeMeshBufferManager.hh.

◆ enablePerFaceNormals()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::enablePerFaceNormals ( )
inline

Enables per face normals.

Definition at line 221 of file VolumeMeshBufferManager.hh.

◆ enablePerHalfedgeColors()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::enablePerHalfedgeColors ( )
inline

Enables per halfedge colors.

Definition at line 208 of file VolumeMeshBufferManager.hh.

◆ enablePerHalffaceColors()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::enablePerHalffaceColors ( )
inline

Enables per halfface colors.

Definition at line 202 of file VolumeMeshBufferManager.hh.

◆ enablePerHalffaceNormals()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::enablePerHalffaceNormals ( )
inline

Enables per halfface normals.

Definition at line 224 of file VolumeMeshBufferManager.hh.

◆ enablePerVertexColors()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::enablePerVertexColors ( )
inline

Enables per vertex colors.

Definition at line 211 of file VolumeMeshBufferManager.hh.

◆ enablePerVertexNormals()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::enablePerVertexNormals ( )
inline

Enables per vertex normals.

Definition at line 227 of file VolumeMeshBufferManager.hh.

◆ enablePickColors()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::enablePickColors ( )
inline

Enables picking colors.

Definition at line 214 of file VolumeMeshBufferManager.hh.

◆ enableTextureSingle()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::enableTextureSingle ( )
inline

Enables textures.

Definition at line 271 of file VolumeMeshBufferManager.hh.

◆ enableVertexOnCellPrimitives()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::enableVertexOnCellPrimitives ( )
inline

Enables vertex primitives that are drawn on the cells.

Definition at line 264 of file VolumeMeshBufferManager.hh.

◆ enableVertexPrimitives()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::enableVertexPrimitives ( )
inline

Enables vertex primitives.

Definition at line 261 of file VolumeMeshBufferManager.hh.

◆ free()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::free

Deletes the buffers on the GPU.

This also invalidates the buffer

Definition at line 2070 of file VolumeMeshBufferManagerT_impl.hh.

◆ getBuffer()

template<class VolumeMesh >
GLuint VolumeMeshBufferManager< VolumeMesh >::getBuffer

Returns the name of the buffer.

This method also builds the buffer when necessary.

Returns
The name of the buffer

Definition at line 1888 of file VolumeMeshBufferManagerT_impl.hh.

◆ getCOG()

template<class VolumeMesh >
ACG::Vec3d VolumeMeshBufferManager< VolumeMesh >::getCOG ( OpenVolumeMesh::CellHandle  _ch)
private

Returns the center of gravity of the given cell.

Parameters
_chA handle of the cell of interest
Returns
The cell's center of gravity

Definition at line 983 of file VolumeMeshBufferManagerT_impl.hh.

◆ getColorOffset()

template<class VolumeMesh >
unsigned char VolumeMeshBufferManager< VolumeMesh >::getColorOffset ( )
inline

Returns the color's offset within the buffer.

Definition at line 140 of file VolumeMeshBufferManager.hh.

◆ getNormalOffset()

template<class VolumeMesh >
unsigned char VolumeMeshBufferManager< VolumeMesh >::getNormalOffset ( )
inline

Returns the normal's offset within the buffer.

Definition at line 143 of file VolumeMeshBufferManager.hh.

◆ getNumOfIncidentCells() [1/3]

template<class VolumeMesh >
int VolumeMeshBufferManager< VolumeMesh >::getNumOfIncidentCells ( OpenVolumeMesh::EdgeHandle  _eh)
private

Returns the number of cells that are incident to the given edge and also inside w.r.t. all cut planes.

Parameters
_ehA handle of the edge of interest
Returns
Number of incident cells that are inside.

Definition at line 946 of file VolumeMeshBufferManagerT_impl.hh.

◆ getNumOfIncidentCells() [2/3]

template<class VolumeMesh >
int VolumeMeshBufferManager< VolumeMesh >::getNumOfIncidentCells ( OpenVolumeMesh::FaceHandle  _fh)
private

Returns the number of cells that are incident to the given face and also inside w.r.t. all cut planes.

Parameters
_fhA Handle of the face of interest
Returns
Number of incident cells that are inside.

Definition at line 924 of file VolumeMeshBufferManagerT_impl.hh.

◆ getNumOfIncidentCells() [3/3]

template<class VolumeMesh >
int VolumeMeshBufferManager< VolumeMesh >::getNumOfIncidentCells ( OpenVolumeMesh::VertexHandle  _vh)
private

Returns the number of cells that are incident to the given vertex and also inside w.r.t. all cut planes.

Parameters
_vhA handle of the vertex of interest
Returns
Number of incident cells that are inside.

Definition at line 965 of file VolumeMeshBufferManagerT_impl.hh.

◆ getNumOfVertices()

template<class VolumeMesh >
unsigned int VolumeMeshBufferManager< VolumeMesh >::getNumOfVertices

Returns the number of vertices stored in the buffer.

Definition at line 296 of file VolumeMeshBufferManagerT_impl.hh.

◆ getPickBuffer()

template<class VolumeMesh >
GLuint VolumeMeshBufferManager< VolumeMesh >::getPickBuffer ( ACG::GLState _state,
unsigned int  _offset 
)

Returns the name of the pick buffer.

Parameters
_stateThe state that provides the picking colors
_offsetThe offset for the picking colors
Returns
The name of the pick buffer

Definition at line 1954 of file VolumeMeshBufferManagerT_impl.hh.

◆ getScale()

template<class VolumeMesh >
double VolumeMeshBufferManager< VolumeMesh >::getScale ( ) const
inline

Return the scale used to shrink cells.

Definition at line 133 of file VolumeMeshBufferManager.hh.

◆ getStride()

template<class VolumeMesh >
unsigned char VolumeMeshBufferManager< VolumeMesh >::getStride ( )
inline

Returns the vertex stride.

Definition at line 137 of file VolumeMeshBufferManager.hh.

◆ getTexCoordOffset()

template<class VolumeMesh >
unsigned char VolumeMeshBufferManager< VolumeMesh >::getTexCoordOffset ( )
inline

Returns the texcoord's offset within the buffer.

Definition at line 146 of file VolumeMeshBufferManager.hh.

◆ getValenceColorCode()

template<class VolumeMesh >
ACG::Vec4f VolumeMeshBufferManager< VolumeMesh >::getValenceColorCode ( unsigned int  _valence,
bool  _inner 
) const
private

Returns a color code for irregular edges.

Parameters
_valenceNumber of incident cells
_innerFalse if the edge is a boundary edge, True if not
Returns
The appropraite color

Definition at line 726 of file VolumeMeshBufferManagerT_impl.hh.

◆ getVertexDeclaration()

template<class VolumeMesh >
const ACG::VertexDeclaration * VolumeMeshBufferManager< VolumeMesh >::getVertexDeclaration ( )
inline

Returns a VertexDeclaration for the vertices stored in the buffer.

Definition at line 150 of file VolumeMeshBufferManager.hh.

◆ invalidate()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::invalidate

Invalidates the buffer.

Definition at line 2011 of file VolumeMeshBufferManagerT_impl.hh.

◆ invalidateColors()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::invalidateColors

Invalidates colors.

Definition at line 2038 of file VolumeMeshBufferManagerT_impl.hh.

◆ invalidateGeometry()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::invalidateGeometry

Invalidates geometry.

Definition at line 2022 of file VolumeMeshBufferManagerT_impl.hh.

◆ invalidateNormals()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::invalidateNormals

Invalidates normals.

Definition at line 2048 of file VolumeMeshBufferManagerT_impl.hh.

◆ invalidateTexCoords()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::invalidateTexCoords

Invalidates texture coordinates.

Definition at line 2058 of file VolumeMeshBufferManagerT_impl.hh.

◆ is_inside() [1/7]

template<class VolumeMesh >
bool VolumeMeshBufferManager< VolumeMesh >::is_inside ( const ACG::Vec3d _p)
private

Tests whether the given point is inside w.r.t. all cut planes.

Parameters
_pThe position to be tested.
Returns
True iff the point is inside.

Definition at line 465 of file VolumeMeshBufferManagerT_impl.hh.

◆ is_inside() [2/7]

template<class VolumeMesh >
bool VolumeMeshBufferManager< VolumeMesh >::is_inside ( const CellHandle _ch)
private

Tests whether the given cell is inside w.r.t. all cut planes.

A cell is considered inside iff the positions of all its incident vertices moved towards the cell's center of gravity depending on the current scaling parameter are inside.

Parameters
_chA Handle to the cell that should be tested.
Returns
True iff the cell is inside.

Definition at line 579 of file VolumeMeshBufferManagerT_impl.hh.

◆ is_inside() [3/7]

template<class VolumeMesh >
bool VolumeMeshBufferManager< VolumeMesh >::is_inside ( const EdgeHandle _eh)
private

Tests whether the given edge is inside w.r.t. all cut planes.

An edge is considered inside iff both from- and to-vertex are inside.

Parameters
_ehA Handle to the edge that should be tested.
Returns
True iff the edge is inside.

Definition at line 525 of file VolumeMeshBufferManagerT_impl.hh.

◆ is_inside() [4/7]

template<class VolumeMesh >
bool VolumeMeshBufferManager< VolumeMesh >::is_inside ( const FaceHandle _fh)
private

Tests whether the given face is inside w.r.t. all cut planes.

A face is considered inside iff all its incident vertices are inside.

Parameters
_fhA Handle to the face that should be tested.
Returns
True iff the face is inside.

Definition at line 561 of file VolumeMeshBufferManagerT_impl.hh.

◆ is_inside() [5/7]

template<class VolumeMesh >
bool VolumeMeshBufferManager< VolumeMesh >::is_inside ( const HalfEdgeHandle _heh)
private

Tests whether the given halfedge is inside w.r.t. all cut planes.

A halfedge is considered inside iff both from- and to-vertex are inside.

Parameters
_hehA Handle to the halfedge that should be tested.
Returns
True iff the halfadge is inside.

Definition at line 508 of file VolumeMeshBufferManagerT_impl.hh.

◆ is_inside() [6/7]

template<class VolumeMesh >
bool VolumeMeshBufferManager< VolumeMesh >::is_inside ( const HalfFaceHandle _hfh)
private

Tests whether the given halfface is inside w.r.t. all cut planes.

A halfface is considered inside iff all its incident vertices are inside.

Parameters
_hfhA Handle to the halfface that should be tested.
Returns
True iff the halfface is inside.

Definition at line 542 of file VolumeMeshBufferManagerT_impl.hh.

◆ is_inside() [7/7]

template<class VolumeMesh >
bool VolumeMeshBufferManager< VolumeMesh >::is_inside ( const VertexHandle _vh)
private

Tests whether the given vertex is inside w.r.t. all cut planes.

A vertex is considered inside iff its positions is inside.

Parameters
_vhA Handle to the vertex that should be tested.
Returns
True iff the vertex is inside.

Definition at line 492 of file VolumeMeshBufferManagerT_impl.hh.

◆ normalsNeedRebuild()

template<class VolumeMesh >
bool VolumeMeshBufferManager< VolumeMesh >::normalsNeedRebuild
private

Checks whether normals need to be rebuild.

Returns
True iff normals need to be rebuild

Definition at line 1078 of file VolumeMeshBufferManagerT_impl.hh.

◆ optionsChanged()

template<class VolumeMesh >
bool VolumeMeshBufferManager< VolumeMesh >::optionsChanged
private

Tests whether the options were changed since the last time building the buffer.

For this method to work saveOptions() should be called immidiately after building the buffer

Returns
True if options have changed, False if not

Definition at line 682 of file VolumeMeshBufferManagerT_impl.hh.

◆ positionsNeedRebuild()

template<class VolumeMesh >
bool VolumeMeshBufferManager< VolumeMesh >::positionsNeedRebuild
private

Checks whether positions need to be rebuild.

Returns
True iff positions need to be rebuild

Definition at line 1031 of file VolumeMeshBufferManagerT_impl.hh.

◆ saveOptions()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::saveOptions
private

State that the current buffer was built with the current options.

This method should be called immidiately after building the buffer

Definition at line 700 of file VolumeMeshBufferManagerT_impl.hh.

◆ selectionOnly()

template<class VolumeMesh >
bool VolumeMeshBufferManager< VolumeMesh >::selectionOnly ( )
inline

Checks whether only selected primitives should be added to the buffer.

Definition at line 275 of file VolumeMeshBufferManager.hh.

◆ setBoundaryOnly()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::setBoundaryOnly ( bool  _boundaryOnly)
inline

Sets whether only the boundary primitves should be rendered.

Definition at line 292 of file VolumeMeshBufferManager.hh.

◆ setDefaultColor()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::setDefaultColor ( ACG::Vec4f  _defaultColor)

Sets the default color.

The default color is only used for regular edges when drawn together with irregular edges.

Parameters
_defaultColorThe default color

Definition at line 311 of file VolumeMeshBufferManagerT_impl.hh.

◆ setOptionsFromDrawMode()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::setOptionsFromDrawMode ( ACG::SceneGraph::DrawModes::DrawMode  _drawMode)

Configures the buffer manager's options from a DrawMode.

This method extracts from the given draw mode which primitve mode, color mode and normal mode should be used and which irregular edges should be shown.

Parameters
_drawModeThe DrawMode for which the options should be set

Definition at line 329 of file VolumeMeshBufferManagerT_impl.hh.

◆ setScale()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::setScale ( double  _scale)
inline

Sets the scale used to shrink cells.

Definition at line 130 of file VolumeMeshBufferManager.hh.

◆ setSelectionOnly()

template<class VolumeMesh >
void VolumeMeshBufferManager< VolumeMesh >::setSelectionOnly ( bool  _selectionOnly)
inline

Set whether only selected primitves should be added to the buffer.

Definition at line 278 of file VolumeMeshBufferManager.hh.

◆ should_render() [1/6]

template<class VolumeMesh >
bool VolumeMeshBufferManager< VolumeMesh >::should_render ( const CellHandle _ch)
private

Definition at line 631 of file VolumeMeshBufferManagerT_impl.hh.

◆ should_render() [2/6]

template<class VolumeMesh >
bool VolumeMeshBufferManager< VolumeMesh >::should_render ( const EdgeHandle _eh)
private

Definition at line 607 of file VolumeMeshBufferManagerT_impl.hh.

◆ should_render() [3/6]

template<class VolumeMesh >
bool VolumeMeshBufferManager< VolumeMesh >::should_render ( const FaceHandle _fh)
private

Definition at line 623 of file VolumeMeshBufferManagerT_impl.hh.

◆ should_render() [4/6]

template<class VolumeMesh >
bool VolumeMeshBufferManager< VolumeMesh >::should_render ( const HalfEdgeHandle _heh)
private

Definition at line 599 of file VolumeMeshBufferManagerT_impl.hh.

◆ should_render() [5/6]

template<class VolumeMesh >
bool VolumeMeshBufferManager< VolumeMesh >::should_render ( const HalfFaceHandle _hfh)
private

Definition at line 615 of file VolumeMeshBufferManagerT_impl.hh.

◆ should_render() [6/6]

template<class VolumeMesh >
bool VolumeMeshBufferManager< VolumeMesh >::should_render ( const VertexHandle _vh)
private

Definition at line 591 of file VolumeMeshBufferManagerT_impl.hh.

◆ texCoordsNeedRebuild()

template<class VolumeMesh >
bool VolumeMeshBufferManager< VolumeMesh >::texCoordsNeedRebuild
private

Checks whether texture coordinates need to be rebuild.

Returns
True iff colors need to be rebuild

Definition at line 1063 of file VolumeMeshBufferManagerT_impl.hh.

Member Data Documentation

◆ cut_planes_

template<class VolumeMesh >
std::vector<ACG::Geometry::Plane> VolumeMeshBufferManager< VolumeMesh >::cut_planes_
private

Definition at line 473 of file VolumeMeshBufferManager.hh.

◆ mBoundaryOnly

template<class VolumeMesh >
bool VolumeMeshBufferManager< VolumeMesh >::mBoundaryOnly
private

Definition at line 457 of file VolumeMeshBufferManager.hh.

◆ mBuffer

template<class VolumeMesh >
GLuint VolumeMeshBufferManager< VolumeMesh >::mBuffer
private

Definition at line 431 of file VolumeMeshBufferManager.hh.

◆ mCellInsideness

template<class VolumeMesh >
std::vector<bool> VolumeMeshBufferManager< VolumeMesh >::mCellInsideness
private

Definition at line 477 of file VolumeMeshBufferManager.hh.

◆ mCellInsidenessValid

template<class VolumeMesh >
bool VolumeMeshBufferManager< VolumeMesh >::mCellInsidenessValid
private

Definition at line 478 of file VolumeMeshBufferManager.hh.

◆ mCogs

template<class VolumeMesh >
std::vector<ACG::Vec3d> VolumeMeshBufferManager< VolumeMesh >::mCogs
private

Definition at line 475 of file VolumeMeshBufferManager.hh.

◆ mCogsValid

template<class VolumeMesh >
bool VolumeMeshBufferManager< VolumeMesh >::mCogsValid
private

Definition at line 476 of file VolumeMeshBufferManager.hh.

◆ mColorAttrib

template<class VolumeMesh >
OpenVolumeMesh::ColorAttrib<ACG::Vec4f>& VolumeMeshBufferManager< VolumeMesh >::mColorAttrib
private

Definition at line 416 of file VolumeMeshBufferManager.hh.

◆ mColorMode

template<class VolumeMesh >
ColorMode VolumeMeshBufferManager< VolumeMesh >::mColorMode
private

Definition at line 451 of file VolumeMeshBufferManager.hh.

◆ mColorOffset

template<class VolumeMesh >
int VolumeMeshBufferManager< VolumeMesh >::mColorOffset
private

Definition at line 426 of file VolumeMeshBufferManager.hh.

◆ mColorsChanged

template<class VolumeMesh >
bool VolumeMeshBufferManager< VolumeMesh >::mColorsChanged
private

Definition at line 442 of file VolumeMeshBufferManager.hh.

◆ mCurrentBoundaryOnly

template<class VolumeMesh >
bool VolumeMeshBufferManager< VolumeMesh >::mCurrentBoundaryOnly
private

Definition at line 467 of file VolumeMeshBufferManager.hh.

◆ mCurrentColorMode

template<class VolumeMesh >
ColorMode VolumeMeshBufferManager< VolumeMesh >::mCurrentColorMode
private

Definition at line 461 of file VolumeMeshBufferManager.hh.

◆ mCurrentColorOffset

template<class VolumeMesh >
unsigned char VolumeMeshBufferManager< VolumeMesh >::mCurrentColorOffset
private

Definition at line 471 of file VolumeMeshBufferManager.hh.

◆ mCurrentNormalMode

template<class VolumeMesh >
NormalMode VolumeMeshBufferManager< VolumeMesh >::mCurrentNormalMode
private

Definition at line 460 of file VolumeMeshBufferManager.hh.

◆ mCurrentNormalOffset

template<class VolumeMesh >
unsigned char VolumeMeshBufferManager< VolumeMesh >::mCurrentNormalOffset
private

Definition at line 470 of file VolumeMeshBufferManager.hh.

◆ mCurrentNumOfVertices

template<class VolumeMesh >
int VolumeMeshBufferManager< VolumeMesh >::mCurrentNumOfVertices
private

Definition at line 421 of file VolumeMeshBufferManager.hh.

◆ mCurrentPickOffset

template<class VolumeMesh >
unsigned int VolumeMeshBufferManager< VolumeMesh >::mCurrentPickOffset
private

Definition at line 434 of file VolumeMeshBufferManager.hh.

◆ mCurrentPrimitiveMode

template<class VolumeMesh >
PrimitiveMode VolumeMeshBufferManager< VolumeMesh >::mCurrentPrimitiveMode
private

Definition at line 459 of file VolumeMeshBufferManager.hh.

◆ mCurrentShowIrregularInnerEdges

template<class VolumeMesh >
bool VolumeMeshBufferManager< VolumeMesh >::mCurrentShowIrregularInnerEdges
private

Definition at line 464 of file VolumeMeshBufferManager.hh.

◆ mCurrentShowIrregularOuterValence2Edges

template<class VolumeMesh >
bool VolumeMeshBufferManager< VolumeMesh >::mCurrentShowIrregularOuterValence2Edges
private

Definition at line 465 of file VolumeMeshBufferManager.hh.

◆ mCurrentSkipRegularEdges

template<class VolumeMesh >
bool VolumeMeshBufferManager< VolumeMesh >::mCurrentSkipRegularEdges
private

Definition at line 466 of file VolumeMeshBufferManager.hh.

◆ mCurrentSkipUnselected

template<class VolumeMesh >
bool VolumeMeshBufferManager< VolumeMesh >::mCurrentSkipUnselected
private

Definition at line 463 of file VolumeMeshBufferManager.hh.

◆ mCurrentTexCoordMode

template<class VolumeMesh >
TexCoordMode VolumeMeshBufferManager< VolumeMesh >::mCurrentTexCoordMode
private

Definition at line 481 of file VolumeMeshBufferManager.hh.

◆ mCurrentTexCoordOffset

template<class VolumeMesh >
unsigned char VolumeMeshBufferManager< VolumeMesh >::mCurrentTexCoordOffset
private

Definition at line 483 of file VolumeMeshBufferManager.hh.

◆ mCurrentVertexSize

template<class VolumeMesh >
unsigned char VolumeMeshBufferManager< VolumeMesh >::mCurrentVertexSize
private

Definition at line 469 of file VolumeMeshBufferManager.hh.

◆ mDefaultColor

template<class VolumeMesh >
ACG::Vec4f VolumeMeshBufferManager< VolumeMesh >::mDefaultColor
private

Definition at line 412 of file VolumeMeshBufferManager.hh.

◆ mDrawModes

template<class VolumeMesh >
VolumeMeshDrawModesContainer VolumeMeshBufferManager< VolumeMesh >::mDrawModes
private

Definition at line 446 of file VolumeMeshBufferManager.hh.

◆ mGeometryChanged

template<class VolumeMesh >
bool VolumeMeshBufferManager< VolumeMesh >::mGeometryChanged
private

Definition at line 440 of file VolumeMeshBufferManager.hh.

◆ mGlobalPickOffset

template<class VolumeMesh >
unsigned int VolumeMeshBufferManager< VolumeMesh >::mGlobalPickOffset
private

Definition at line 437 of file VolumeMeshBufferManager.hh.

◆ mInvalidated

template<class VolumeMesh >
bool VolumeMeshBufferManager< VolumeMesh >::mInvalidated
private

Definition at line 439 of file VolumeMeshBufferManager.hh.

◆ mMesh

template<class VolumeMesh >
const VolumeMesh& VolumeMeshBufferManager< VolumeMesh >::mMesh
private

Definition at line 414 of file VolumeMeshBufferManager.hh.

◆ mNormalAttrib

template<class VolumeMesh >
OpenVolumeMesh::NormalAttrib<VolumeMesh>& VolumeMeshBufferManager< VolumeMesh >::mNormalAttrib
private

Definition at line 417 of file VolumeMeshBufferManager.hh.

◆ mNormalMode

template<class VolumeMesh >
NormalMode VolumeMeshBufferManager< VolumeMesh >::mNormalMode
private

Definition at line 450 of file VolumeMeshBufferManager.hh.

◆ mNormalOffset

template<class VolumeMesh >
int VolumeMeshBufferManager< VolumeMesh >::mNormalOffset
private

Definition at line 427 of file VolumeMeshBufferManager.hh.

◆ mNormalsChanged

template<class VolumeMesh >
bool VolumeMeshBufferManager< VolumeMesh >::mNormalsChanged
private

Definition at line 441 of file VolumeMeshBufferManager.hh.

◆ mNumOfVertices

template<class VolumeMesh >
int VolumeMeshBufferManager< VolumeMesh >::mNumOfVertices
private

Definition at line 420 of file VolumeMeshBufferManager.hh.

◆ mPrimitiveMode

template<class VolumeMesh >
PrimitiveMode VolumeMeshBufferManager< VolumeMesh >::mPrimitiveMode
private

Definition at line 449 of file VolumeMeshBufferManager.hh.

◆ mScale

template<class VolumeMesh >
double VolumeMeshBufferManager< VolumeMesh >::mScale
private

Definition at line 429 of file VolumeMeshBufferManager.hh.

◆ mShowIrregularInnerEdges

template<class VolumeMesh >
bool VolumeMeshBufferManager< VolumeMesh >::mShowIrregularInnerEdges
private

Definition at line 454 of file VolumeMeshBufferManager.hh.

◆ mShowIrregularOuterValence2Edges

template<class VolumeMesh >
bool VolumeMeshBufferManager< VolumeMesh >::mShowIrregularOuterValence2Edges
private

Definition at line 455 of file VolumeMeshBufferManager.hh.

◆ mSkipRegularEdges

template<class VolumeMesh >
bool VolumeMeshBufferManager< VolumeMesh >::mSkipRegularEdges
private

Definition at line 456 of file VolumeMeshBufferManager.hh.

◆ mSkipUnselected

template<class VolumeMesh >
bool VolumeMeshBufferManager< VolumeMesh >::mSkipUnselected
private

Definition at line 453 of file VolumeMeshBufferManager.hh.

◆ mStatusAttrib

template<class VolumeMesh >
OpenVolumeMesh::StatusAttrib& VolumeMeshBufferManager< VolumeMesh >::mStatusAttrib
private

Definition at line 415 of file VolumeMeshBufferManager.hh.

◆ mTexcoordAttrib

template<class VolumeMesh >
OpenVolumeMesh::TexCoordAttrib<ACG::Vec2f>& VolumeMeshBufferManager< VolumeMesh >::mTexcoordAttrib
private

Definition at line 418 of file VolumeMeshBufferManager.hh.

◆ mTexCoordMode

template<class VolumeMesh >
TexCoordMode VolumeMeshBufferManager< VolumeMesh >::mTexCoordMode
private

Definition at line 480 of file VolumeMeshBufferManager.hh.

◆ mTexCoordOffset

template<class VolumeMesh >
unsigned char VolumeMeshBufferManager< VolumeMesh >::mTexCoordOffset
private

Definition at line 482 of file VolumeMeshBufferManager.hh.

◆ mTexCoordsChanged

template<class VolumeMesh >
bool VolumeMeshBufferManager< VolumeMesh >::mTexCoordsChanged
private

Definition at line 443 of file VolumeMeshBufferManager.hh.

◆ mVertexDeclaration

template<class VolumeMesh >
ACG::VertexDeclaration VolumeMeshBufferManager< VolumeMesh >::mVertexDeclaration
private

Definition at line 424 of file VolumeMeshBufferManager.hh.

◆ mVertexSize

template<class VolumeMesh >
unsigned int VolumeMeshBufferManager< VolumeMesh >::mVertexSize
private

Definition at line 423 of file VolumeMeshBufferManager.hh.


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