VR-Forces 4.10 Class Documentation
 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. More...

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

Public Member Functions

 DtOsgGizmoRenderer (DtDe &de)
 CTOR. More...
 
 ~DtOsgGizmoRenderer ()
 DTOR. More...
 
virtual void releaseGLObjects (osg::State *state)
 releases the opengl data More...
 
virtual void drawImplementation (osg::RenderInfo &renderInfo) const
 osg draw function More...
 
virtual void addDebugDrawerCallback (DtDebugDrawCallbackInterface *drawer)
 adds a callback to have the gizmo call the module to draw things when it's ready. More...
 
virtual void addWsLine (const osg::Vec3d &p1, const osg::Vec3d &p2, const osg::Vec4f &color1, const osg::Vec4f &color2, bool depth_test=true)
 adds a line segment More...
 
virtual void renderWsBoxIntoVbo (const osg::Vec3d &p1, const osg::Vec3d &p2, const osg::Vec4f &color)
 draws axis at pos More...
 
virtual void renderBoxFromPointsIntoVbo (const osg::Matrixf &model_matrix, const osg::Vec3f &pMin, const osg::Vec3f &pMax, const osg::Vec4f &color)
 draw a transformed box More...
 
virtual void renderSphereIntoVbo (const osg::Vec3f &localCenter, const osg::Vec3f &radii, const osg::Matrixf &xform, const osg::Vec4f &force_color)
 adds a sphere/ellipsoid More...
 
virtual void renderCircleIntoVbo (const osg::Vec3f &localCenter, const float radii, const osg::Matrixf &xform, const osg::Vec4f &force_color)
 adds a 2D circle More...
 
virtual void renderHemisphereIntoVbo (const osg::Vec3f &localCenter, const osg::Vec3f &radii, const osg::Matrixf &xform, const osg::Vec4f &force_color)
 adds a hemisphere More...
 
virtual void renderEllipseIntoVbo (const osg::Vec3f &localCenter, const osg::Vec2f &radii, const osg::Matrixf &xform, const osg::Vec4f &force_color)
 adds a 2D ellipse More...
 
virtual void renderBoxIntoVbo (const osg::Vec3f &localCenter, const osg::Vec3f &localMin, const osg::Vec3f &localMax, const osg::Matrixf &xform, const osg::Vec4f &force_color)
 adds a box around the center More...
 
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))
 draws vert/color data, vert are required, colors, normals and index buffer is optional. More...
 

Protected Member Functions

virtual void setCameraPos (const osg::Vec3 &pos)
 used to modify the input verts for worldspace functions More...
 
virtual void drawImplementationNonConst (osg::RenderInfo &renderInfo)
 everything is mutable More...
 

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::vector< osg::Vec3f > myScratchVerts [2]
 
std::vector< osg::Vec4f > myScratchColors [2]
 
std::vector
< DtDebugDrawCallbackInterface * > 
myExtraDebugDrawObjects
 

Private Member Functions

 DtOsgGizmoRenderer (const DtOsgGizmoRenderer &rhs)=delete
 not allowed More...
 
DtOsgGizmoRendereroperator= (const DtOsgGizmoRenderer &rhs)=delete
 not allowed More...
 

Detailed Description

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.

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)
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

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
protected
osg::Vec3d makVrv::DtOsgGizmoRenderer::myCameraPosition
protected
std::vector<osg::Vec3f> makVrv::DtOsgGizmoRenderer::myScratchVerts[2]
protected
std::vector<osg::Vec4f> makVrv::DtOsgGizmoRenderer::myScratchColors[2]
protected
std::vector<DtDebugDrawCallbackInterface*> makVrv::DtOsgGizmoRenderer::myExtraDebugDrawObjects
protected

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

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)