VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtIndirectDebugCullComponent.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2020 VT-MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvOsg/vrvOsg.h>
13 
15 
17 
19 
20 #include <vector>
21 
22 namespace osg
23 {
24  class RenderInfo;
25  class State;
26  class Camera;
27 }
28 namespace makVrv
29 {
30  class DtVirtualProgramCache;
31  class DtGpuCulling;
32  class DtIndirectDofManager;
33 
36 
39 
41  template <>
42  inline const char* creatorTypeName<DtIndirectDebugCullComponent>(void) { return "DtIndirectDebugCullComponentCreator"; }
43 
44  // class to manage the debug drawing (the AABBs of instances output from the cull shader)
46  {
47  public:
50 
53  protected:
56  private:
59 
62 
64  DtIndirectDebugCullComponent& operator=(const DtIndirectDebugCullComponent& rhs) = delete;
65 
66  public:
68  virtual void initialize(DtVirtualProgramCache& virtualProgramCache);
69 
71  virtual void update(osg::RenderInfo& renderInfo) override;
72 
74  virtual void apply(osg::RenderInfo& renderInfo) override;
75 
77  virtual void draw(osg::RenderInfo& renderInfo, const int offsetCommandBuffer, GLenum indicesType, int maxCommands) override;
78 
80  virtual void releaseGLObjects(osg::State* state) override;
81 
83  virtual void draw(osg::RenderInfo& renderInfo, int maxCommands
84  , DtGpuCulling* gpuCulling
85  , DtIndirectDofManager* dofManager
86  , const osg::Camera* camera);
87 
88  protected:
89  // initialize the debug geometry to draw the debug bounding boxes
90  virtual void initializeDebugGeometryIfNecessary(void);
91 
92  protected:
93  std::vector<Vector3_32> myDebugVertices;
94  std::vector<unsigned short> myDebugIndices;
95  unsigned int myDebugVertexBuffer;
96  unsigned int myDebugIndexBuffer;
97  };
98 
99 }
std::vector< unsigned short > myDebugIndices
Definition: DtIndirectDebugCullComponent.h:94
const char * creatorTypeName< DtIndirectDebugCullComponent >(void)
template specialization for the creator
Definition: DtIndirectDebugCullComponent.h:42
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
Definition: DtIndirectDebugCullComponent.h:45
DtVirtualBaseClassCreator< DtIndirectDebugCullComponent > DtIndirectDebugCullComponentCreator
creator
Definition: DtIndirectDebugCullComponent.h:35
This class is a component of the DtIndirectGeometry It inputs are: -&gt; the instances registered with Dt...
Definition: DtGpuCulling.h:64
3 dimensional vector
Variadic templated creator class for defining a DtVirtualBaseClass creator that is automatically regi...
Definition: DtVirtualBaseClassCreator.h:22
class to hold a hashed map of strings to equivalent virtual programs to avoid repeated, duplicate creation of a virtual programs
Definition: DtVirtualProgramCache.h:46
Contains the DtIndirectDrawComponent class declaration.
handles the dof nodes for all the indirect geometry.
Definition: DtIndirectDofManager.h:63
unsigned int GLenum
Definition: DtGlTextureBufferObject.h:18
std::vector< Vector3_32 > myDebugVertices
Definition: DtIndirectDebugCullComponent.h:93
unsigned int myDebugVertexBuffer
Definition: DtIndirectDebugCullComponent.h:95
Contains DLL export macros.
Interface class to manage/configure drawing of a subset of rendering components within an indirect ge...
Definition: DtIndirectDrawComponent.h:30
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
unsigned int myDebugIndexBuffer
Definition: DtIndirectDebugCullComponent.h:96
friend DtIndirectDebugCullComponentCreator
only creator can create
Definition: DtIndirectDebugCullComponent.h:49

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)