VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtIndirectRegistrarDriverNode.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2022 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvOsg/vrvOsg.h>
14 
16 
17 #include <osgUtil/CullVisitor>
18 
19 #include <boost/thread/mutex.hpp>
20 #include <boost/thread/condition_variable.hpp>
21 
22 #include <osg/Drawable>
23 
24 #include <set>
25 
26 namespace makVrv
27 {
30 
33 
35  template <>
36  inline const char* creatorTypeName<DtIndirectRegistrarDriverNode>(void) { return "DtIndirectRegistrarDriverNodeCreator"; }
37 
43  class DT_DLL_VRVOSG DtIndirectRegistrarDriverNode : public osg::Drawable
44  {
45  protected:
46 
49 
52 
53  public:
56 
60  DtIndirectRegistrarDriverNode &operator=(const DtIndirectRegistrarDriverNode &other) = delete;
61 
62  public:
65  void accept(osg::NodeVisitor& nv);
66 
70  virtual void drawImplementation(osg::RenderInfo& renderInfo) const;
71 
74  virtual void addIndirectRegistrarToProcess(DtIndirectGeometryRegistrar* registrar);
75 
79  virtual void removeIndirectRegistrarToProcess(DtIndirectGeometryRegistrar* registrar);
80 
85  virtual bool containsIndirectRegistrarToProcess(DtIndirectGeometryRegistrar* registrar);
86 
88  virtual void clearIndirectRegistrarsToProcess(bool lastCall = false);
89 
90  protected:
91 
92  mutable boost::mutex myMutex;
93  mutable boost::condition_variable myCondition;
94 
95  typedef std::set<osg::ref_ptr<DtIndirectGeometryRegistrar> > RegistrarSet;
97 
99 
101  };
102 }
boost::condition_variable myCondition
Definition: DtIndirectRegistrarDriverNode.h:93
friend DtIndirectTextureLoaderNodeCreator
friend creator class so it is the only thing that can create DtIndirectTextureLoaderNodes ...
Definition: DtIndirectRegistrarDriverNode.h:51
std::set< osg::ref_ptr< DtIndirectGeometryRegistrar > > RegistrarSet
Definition: DtIndirectRegistrarDriverNode.h:95
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
boost::mutex myMutex
Definition: DtIndirectRegistrarDriverNode.h:92
node for processing textures needed for indirect geometries this allows for textures to be uploaded t...
Definition: DtIndirectRegistrarDriverNode.h:43
Indirect geometry can have multiple models and their corresponding ids registered in it...
Definition: DtIndirectGeometryRegistrar.h:109
DtDe & myDtDe
Definition: DtIndirectRegistrarDriverNode.h:100
RegistrarSet myProcessors
Definition: DtIndirectRegistrarDriverNode.h:96
Variadic templated creator class for defining a DtVirtualBaseClass creator that is automatically regi...
Definition: DtVirtualBaseClassCreator.h:22
bool myAboutToBeDestroyed
Definition: DtIndirectRegistrarDriverNode.h:98
DtVirtualBaseClassCreator< DtIndirectRegistrarDriverNode > DtIndirectTextureLoaderNodeCreator
creator
Definition: DtIndirectRegistrarDriverNode.h:29
Contains DLL export macros.
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:72
Contains the DtIndirectGeometryRegistrar class declaration.
const char * creatorTypeName< DtIndirectRegistrarDriverNode >(void)
template specialization for the creator (pass the class being created to the creatorTypeName template...
Definition: DtIndirectRegistrarDriverNode.h:36

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)