VR-Forces 5.0.2 Developer's Guide
 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 apply(osg::RenderInfo& renderInfo) override;
72 
74  virtual void releaseGLObjects(osg::State* state) override;
75 
77  virtual void draw(osg::RenderInfo& renderInfo, int maxCommands
78  , DtGpuCulling* gpuCulling
79  , DtIndirectDofManager* dofManager
80  , const osg::Camera* camera);
81 
82  protected:
83  // initialize the debug geometry to draw the debug bounding boxes
84  virtual void initializeDebugGeometryIfNecessary(void);
85 
86  protected:
87  std::vector<Vector3_32> myDebugVertices;
88  std::vector<unsigned short> myDebugIndices;
89  unsigned int myDebugVertexBuffer;
90  unsigned int myDebugIndexBuffer;
91  };
92 
93 }
std::vector< unsigned short > myDebugIndices
Definition: DtIndirectDebugCullComponent.h:88
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:82
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:39
Contains the DtIndirectDrawComponent class declaration.
handles the dof nodes for all the indirect geometry. Sets up the default state of osg::Dof...
Definition: DtIndirectDofManager.h:64
std::vector< Vector3_32 > myDebugVertices
Definition: DtIndirectDebugCullComponent.h:87
unsigned int myDebugVertexBuffer
Definition: DtIndirectDebugCullComponent.h:89
Contains DLL export macros.
Interface class to manage/configure drawing of a subset of rendering components within an indirect ge...
Definition: DtIndirectDrawComponent.h:32
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:70
unsigned int myDebugIndexBuffer
Definition: DtIndirectDebugCullComponent.h:90
friend DtIndirectDebugCullComponentCreator
only creator can create
Definition: DtIndirectDebugCullComponent.h:49

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)