VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtIndirectGeometryUpdateMainThreadJob.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 
16 #include <osg/OperationThread>
17 #include <osg/observer_ptr>
18 #include <osg/Matrix>
19 
20 #include <boost/thread/mutex.hpp>
21 #include <tbb/atomic.h>
22 #include <stack>
23 
24 namespace osg
25 {
26  class Object;
27  class Camera;
28 }
29 
30 namespace makVrv
31 {
32  class DtIndirectGeometry;
33 
36 
39 
41  template <>
42  inline const char* creatorTypeName<DtIndirectGeometryUpdateMainThreadJob>(void) { return "DtIndirectGeometryUpdateMainThreadJobCreator"; }
43 
47  {
48  public:
51 
54  protected:
57 
58  private:
65 
66  public:
68  virtual void operator() (osg::Object* sv);
69 
72  virtual void pushCameraAndMatrix(osg::Camera* camera, const osg::Matrix& modelView);
73 
75  virtual bool cameraMatrixStackEmpty();
76 
77  protected:
78  osg::observer_ptr< DtIndirectGeometry >myIndirectGeometryObserverPtr;
79  typedef std::pair<osg::observer_ptr<osg::Camera>, osg::Matrix> CameraMatrixPair;
80  std::stack< CameraMatrixPair > myCameraMatrixStack;
83 
85  };
86 }
responsible for updating the indirect geometry in the cull pass to prep for indirect rendering...
Definition: DtIndirectGeometryUpdateMainThreadJob.h:46
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
std::stack< CameraMatrixPair > myCameraMatrixStack
Definition: DtIndirectGeometryUpdateMainThreadJob.h:80
boost::mutex myCameraMatrixStackMutex
Definition: DtIndirectGeometryUpdateMainThreadJob.h:81
std::pair< osg::observer_ptr< osg::Camera >, osg::Matrix > CameraMatrixPair
Definition: DtIndirectGeometryUpdateMainThreadJob.h:79
friend DtIndirectGeometryUpdateMainThreadJobCreator
friend. only creator can create
Definition: DtIndirectGeometryUpdateMainThreadJob.h:50
Variadic templated creator class for defining a DtVirtualBaseClass creator that is automatically regi...
Definition: DtVirtualBaseClassCreator.h:22
const char * creatorTypeName< DtIndirectGeometryUpdateMainThreadJob >(void)
template specialization for the creator (pass the class being created to the creatorTypeName template...
Definition: DtIndirectGeometryUpdateMainThreadJob.h:42
\ ::, which allows us to hook into our indirect engine to render using indirect rendering...
Definition: DtIndirectGeometry.h:102
DtVirtualBaseClassCreator< DtIndirectGeometryUpdateMainThreadJob, DtIndirectGeometry * > DtIndirectGeometryUpdateMainThreadJobCreator
creator
Definition: DtIndirectGeometryUpdateMainThreadJob.h:35
DtDe & myDe
Definition: DtIndirectGeometryUpdateMainThreadJob.h:84
bool myCameraMatrixStackEmpty
Definition: DtIndirectGeometryUpdateMainThreadJob.h:82
Contains DLL export macros.
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
osg::observer_ptr< DtIndirectGeometry > myIndirectGeometryObserverPtr
Definition: DtIndirectGeometryUpdateMainThreadJob.h:78

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)