VR-Forces 5.0.2 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtCellToIndirectGeoMap.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2022 VT-MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvOsg/vrvOsg.h>
15 
16 #include <string>
17 #include <unordered_map>
18 
19 namespace osg
20 {
21  class Group;
22  class Node;
23 }
24 
25 namespace makVrv
26 {
27  class DtDe;
28 
29  class DtIndirectGeoComputeBoundCallbackCreator;
30  class DtIndirectVisitorControlGroupCreator;
31 
32  class DtCellIndirectGeo;
33  class DtIndirectFadeParameters;
34  class DtCullShaderConfig;
35 
37  {
38  public:
40  virtual ~DtCellToIndirectGeoMap();
41 
42  protected:
44  DtCellToIndirectGeoMap(DtDe& de, const DtCullShaderConfig& cullShaderConfig);
45 
46  private:
48  DtCellToIndirectGeoMap() = delete;
49 
52 
54  DtCellToIndirectGeoMap& operator=(const DtCellToIndirectGeoMap& rhs) = delete;
55  public:
57  virtual DtCellIndirectGeo* getEntryFor(const osg::Node* node);
58 
60  virtual void deleteAllEntries(void);
61 
64  virtual bool keyNodeGettingDeleted(const osg::Node* node);
65 
67  virtual void setName(const std::string& name);
69  virtual const std::string& name(void) const;
71 
73  virtual const DtCullShaderConfig& cullShaderConfig(void) const;
74 
76  virtual int size(void) const;
77 
81  virtual void setRegistrarInvalid();
82 
83  protected:
85  virtual DtCellIndirectGeo* getEntry(const osg::Node* node);
86 
88  virtual DtCellIndirectGeo* createEntry(const osg::Node* keyNode
89  , const DtCullShaderConfig& cullShaderConfig
90  , bool includeIntersectionGeoInNodePath
91  , bool terrainPatch
92  , const DtIndirectFadeParameters& fadeParameters) = 0;
93 
95  virtual void deleteEntries();
96  protected:
98  typedef std::unordered_map<const osg::Node*, DtCellIndirectGeo*> KeyToEntryTypeMap;
100 
102 
104 
105  std::string myName;
106  };
107 }
Contains the DtCullShaderConfig class declaration.
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
voidpf void uLong size
Definition: ioapi.h:39
shader configuration storage class. Has 3 available options which are described in the constructor&#39;s ...
Definition: DtCullShaderConfig.h:21
Threading::Mutex myMutex
Definition: DtCellToIndirectGeoMap.h:97
Helper for managing indirect geometry, its intersection group and registrar corresponding to a &#39;tile ...
Definition: DtCellIndirectGeo.h:70
KeyToEntryTypeMap myKeyToEntryTypeMap
Definition: DtCellToIndirectGeoMap.h:99
std::string myName
Definition: DtCellToIndirectGeoMap.h:105
struct for holding the fade parameters used by the indirect rendering cull compute shader ...
Definition: DtIndirectFadeParameters.h:17
OpenThreads::Mutex Mutex
Definition: DtOsgThreadingUtils.h:12
std::unordered_map< const osg::Node *, DtCellIndirectGeo * > KeyToEntryTypeMap
Definition: DtCellToIndirectGeoMap.h:98
Definition: DtCellToIndirectGeoMap.h:36
DtDe & myDe
Definition: DtCellToIndirectGeoMap.h:101
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:70
const DtCullShaderConfig myCullShaderConfig
Definition: DtCellToIndirectGeoMap.h:103

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)