VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions
makVrv::DtOsgGizmoRenderer Class Reference

a class to quickly render a bunch of basic primitives as debugging aids basic overview, create an adapter that inherits from DtDebugDrawCallbackInterface then call DtOsgGizmoRenderer::addDebugDrawerCallback() to register it with the system. Your code will then get called while the system is drawing, user should then add various primitives that will get rendered in one big batch after all the callbacks. See DtOsgLightDebugAdapter::drawDebugLines() for an example.

Inheritance diagram for makVrv::DtOsgGizmoRenderer:
Inheritance graph
[legend]

Public Member Functions

 DtOsgGizmoRenderer (DtDe &de)
 
 ~DtOsgGizmoRenderer ()
 
virtual void releaseGLObjects (osg::State *state=0) const
 
virtual void drawImplementation (osg::RenderInfo &renderInfo) const
 
virtual void addDebugDrawerCallback (DtDebugDrawCallbackInterface *drawer)
 
virtual void addWsLine (const osg::Vec3d &p1, const osg::Vec3d &p2, const osg::Vec4f &color1, const osg::Vec4f &color2, bool depth_test=true)
 
virtual void renderWsBoxIntoVbo (const osg::Vec3d &p1, const osg::Vec3d &p2, const osg::Vec4f &color)
 
virtual void renderBoxFromPointsIntoVbo (const osg::Matrixf &model_matrix, const osg::Vec3f &pMin, const osg::Vec3f &pMax, const osg::Vec4f &color)
 
virtual void renderSphereIntoVbo (const osg::Vec3f &localCenter, const osg::Vec3f &radii, const osg::Matrixf &xform, const osg::Vec4f &force_color)
 
virtual void renderCircleIntoVbo (const osg::Vec3f &localCenter, const float radii, const osg::Matrixf &xform, const osg::Vec4f &force_color)
 
virtual void renderHemisphereIntoVbo (const osg::Vec3f &localCenter, const osg::Vec3f &radii, const osg::Matrixf &xform, const osg::Vec4f &force_color)
 
virtual void renderEllipseIntoVbo (const osg::Vec3f &localCenter, const osg::Vec2f &radii, const osg::Matrixf &xform, const osg::Vec4f &force_color)
 
virtual void renderBoxIntoVbo (const osg::Vec3f &localCenter, const osg::Vec3f &localMin, const osg::Vec3f &localMax, const osg::Matrixf &xform, const osg::Vec4f &force_color)
 
virtual void drawStreamedData (osg::RenderInfo &renderInfo, int primitive_type, const std::vector< osg::Vec3f > &verts, const std::vector< osg::Vec4f > *colors, const std::vector< osg::Vec3f > *normals, const std::vector< unsigned short > *index_buffer, const osg::Vec4f &default_color=osg::Vec4f(1, 1, 1, 1))
 

Protected Member Functions

virtual void setCameraPos (const osg::Vec3 &pos)
 
virtual void drawImplementationNonConst (osg::RenderInfo &renderInfo)
 
virtual bool anythingToDraw (void) const
 

Protected Attributes

DtDemyDe
 
DtStreamedVboData myDynamicVbo
 
DtStreamedVboData myAxisVbo
 
std::vector< osg::Vec3f > myLineStripVerts
 
std::vector< osg::Vec4f > myLineStripColors
 
std::vector< unsigned short > myLineStripIndexes
 
GLuint myVao
 
osg::Vec3d myCameraPosition
 
std::array< std::vector
< osg::Vec3f >, 2 > 
myScratchVerts
 
std::array< std::vector
< osg::Vec4f >, 2 > 
myScratchColors
 
std::vector
< DtDebugDrawCallbackInterface * > 
myExtraDebugDrawObjects
 

Private Member Functions

 DtOsgGizmoRenderer (const DtOsgGizmoRenderer &rhs)=delete
 
DtOsgGizmoRendereroperator= (const DtOsgGizmoRenderer &rhs)=delete
 

Constructor & Destructor Documentation

makVrv::DtOsgGizmoRenderer::DtOsgGizmoRenderer ( DtDe de)

CTOR.

makVrv::DtOsgGizmoRenderer::~DtOsgGizmoRenderer ( )

DTOR.

makVrv::DtOsgGizmoRenderer::DtOsgGizmoRenderer ( const DtOsgGizmoRenderer rhs)
privatedelete

not allowed

Member Function Documentation

DtOsgGizmoRenderer& makVrv::DtOsgGizmoRenderer::operator= ( const DtOsgGizmoRenderer rhs)
privatedelete

not allowed

virtual void makVrv::DtOsgGizmoRenderer::releaseGLObjects ( osg::State *  state = 0) const
virtual

releases the opengl data

virtual void makVrv::DtOsgGizmoRenderer::drawImplementation ( osg::RenderInfo &  renderInfo) const
virtual

osg draw function

virtual void makVrv::DtOsgGizmoRenderer::addDebugDrawerCallback ( DtDebugDrawCallbackInterface drawer)
virtual

adds a callback to have the gizmo call the module to draw things when it's ready.

virtual void makVrv::DtOsgGizmoRenderer::addWsLine ( const osg::Vec3d &  p1,
const osg::Vec3d &  p2,
const osg::Vec4f &  color1,
const osg::Vec4f &  color2,
bool  depth_test = true 
)
virtual

adds a line segment

virtual void makVrv::DtOsgGizmoRenderer::renderWsBoxIntoVbo ( const osg::Vec3d &  p1,
const osg::Vec3d &  p2,
const osg::Vec4f &  color 
)
virtual

draws axis at pos

draws a box

virtual void makVrv::DtOsgGizmoRenderer::renderBoxFromPointsIntoVbo ( const osg::Matrixf &  model_matrix,
const osg::Vec3f &  pMin,
const osg::Vec3f &  pMax,
const osg::Vec4f &  color 
)
virtual

draw a transformed box

virtual void makVrv::DtOsgGizmoRenderer::renderSphereIntoVbo ( const osg::Vec3f &  localCenter,
const osg::Vec3f &  radii,
const osg::Matrixf &  xform,
const osg::Vec4f &  force_color 
)
virtual

adds a sphere/ellipsoid

virtual void makVrv::DtOsgGizmoRenderer::renderCircleIntoVbo ( const osg::Vec3f &  localCenter,
const float  radii,
const osg::Matrixf &  xform,
const osg::Vec4f &  force_color 
)
virtual

adds a 2D circle

virtual void makVrv::DtOsgGizmoRenderer::renderHemisphereIntoVbo ( const osg::Vec3f &  localCenter,
const osg::Vec3f &  radii,
const osg::Matrixf &  xform,
const osg::Vec4f &  force_color 
)
virtual

adds a hemisphere

virtual void makVrv::DtOsgGizmoRenderer::renderEllipseIntoVbo ( const osg::Vec3f &  localCenter,
const osg::Vec2f &  radii,
const osg::Matrixf &  xform,
const osg::Vec4f &  force_color 
)
virtual

adds a 2D ellipse

virtual void makVrv::DtOsgGizmoRenderer::renderBoxIntoVbo ( const osg::Vec3f &  localCenter,
const osg::Vec3f &  localMin,
const osg::Vec3f &  localMax,
const osg::Matrixf &  xform,
const osg::Vec4f &  force_color 
)
virtual

adds a box around the center

virtual void makVrv::DtOsgGizmoRenderer::drawStreamedData ( osg::RenderInfo &  renderInfo,
int  primitive_type,
const std::vector< osg::Vec3f > &  verts,
const std::vector< osg::Vec4f > *  colors,
const std::vector< osg::Vec3f > *  normals,
const std::vector< unsigned short > *  index_buffer,
const osg::Vec4f &  default_color = osg::Vec4f(1, 1, 1, 1) 
)
virtual

draws vert/color data, vert are required, colors, normals and index buffer is optional.

virtual void makVrv::DtOsgGizmoRenderer::setCameraPos ( const osg::Vec3 &  pos)
protectedvirtual

used to modify the input verts for worldspace functions

virtual void makVrv::DtOsgGizmoRenderer::drawImplementationNonConst ( osg::RenderInfo &  renderInfo)
protectedvirtual

everything is mutable

virtual bool makVrv::DtOsgGizmoRenderer::anythingToDraw ( void  ) const
protectedvirtual

for early out

Member Data Documentation

DtDe& makVrv::DtOsgGizmoRenderer::myDe
protected
DtStreamedVboData makVrv::DtOsgGizmoRenderer::myDynamicVbo
protected
DtStreamedVboData makVrv::DtOsgGizmoRenderer::myAxisVbo
protected
std::vector<osg::Vec3f> makVrv::DtOsgGizmoRenderer::myLineStripVerts
protected
std::vector<osg::Vec4f> makVrv::DtOsgGizmoRenderer::myLineStripColors
protected
std::vector<unsigned short> makVrv::DtOsgGizmoRenderer::myLineStripIndexes
protected
GLuint makVrv::DtOsgGizmoRenderer::myVao
mutableprotected
osg::Vec3d makVrv::DtOsgGizmoRenderer::myCameraPosition
protected
std::array< std::vector<osg::Vec3f>, 2> makVrv::DtOsgGizmoRenderer::myScratchVerts
protected
std::array< std::vector<osg::Vec4f>, 2> makVrv::DtOsgGizmoRenderer::myScratchColors
protected
std::vector<DtDebugDrawCallbackInterface*> makVrv::DtOsgGizmoRenderer::myExtraDebugDrawObjects
protected

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

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)