VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtIndirectTextureLoaderNode.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2019 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvOsg/vrvOsg.h>
14 
15 #include <osgUtil/CullVisitor>
16 
17 #include <boost/thread/mutex.hpp>
18 #include <boost/thread/condition_variable.hpp>
19 
20 #include <osg/Drawable>
21 
22 #include <set>
23 
24 namespace makVrv
25 {
31  class DT_DLL_VRVOSG DtIndirectTextureLoaderNode : public osg::Drawable
32  {
33  protected:
34 
37 
40 
41  public:
43  virtual ~DtIndirectTextureLoaderNode();
44 
45  private:
50 
51  public:
54  void accept(osg::NodeVisitor& nv);
55 
59  virtual void drawImplementation(osg::RenderInfo& renderInfo) const;
60 
63  virtual void addIndirectRegistrarToProcess(DtIndirectGeometryRegistrar* registrar);
64 
68  virtual void removeIndirectRegistrarToProcess(DtIndirectGeometryRegistrar* registrar);
69 
74  virtual bool containsIndirectRegistrarToProcess(DtIndirectGeometryRegistrar* registrar, bool blocking = true);
75 
77  virtual void clearIndirectRegistrarsToProcess(bool lastCall = false);
78 
79  protected:
80 
81  mutable boost::mutex myMutex;
82  mutable boost::condition_variable myCondition;
83 
84  typedef std::set<osg::ref_ptr<DtIndirectGeometryRegistrar> > RegistrarSet;
86 
88 
90  };
91 
96  {
97  public:
98  // CTOR
100 
103 
104  private:
111 
112  public:
114  static DtIndirectTextureLoaderNodeCreator& instance(DtDe& de);
115 
117  static void registerInstance(DtDe& de,
119 
121  virtual DtIndirectTextureLoaderNode* create();
122 
123  };
124 }
node for processing textures needed for indirect geometries this alllows for textures to be uploaded ...
Definition: DtIndirectTextureLoaderNode.h:31
Virtual base class.
Definition: DtVirtualBaseClass.h:22
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
Indirect geometry can have multiple models and their corresponding ids registered in it...
Definition: DtIndirectGeometryRegistrar.h:101
DtDe & myDtDe
DtDe reference.
Definition: DtIndirectTextureLoaderNode.h:110
DtDe & myDtDe
Definition: DtIndirectTextureLoaderNode.h:89
std::set< osg::ref_ptr< DtIndirectGeometryRegistrar > > RegistrarSet
Definition: DtIndirectTextureLoaderNode.h:84
RegistrarSet myProcessors
Definition: DtIndirectTextureLoaderNode.h:85
boost::condition_variable myCondition
Definition: DtIndirectTextureLoaderNode.h:82
The DtIndirectTextureLoaderNodeCreator creator for the DtIndirectTextureLoaderNodeCreator class...
Definition: DtIndirectTextureLoaderNode.h:95
Contains DLL export macros.
boost::mutex myMutex
Definition: DtIndirectTextureLoaderNode.h:81
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
Contains the DtIndirectGeometryRegistrar class declaration.
bool myAboutToBeDestroyed
Definition: DtIndirectTextureLoaderNode.h:87

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)