VR-Forces 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) 2024 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  enum class DtIndirectGeometrySubType;
36 
38  {
39  public:
40  typedef std::unordered_map<const osg::Node*, DtCellIndirectGeo*> KeyToEntryTypeMap;
41 
42  public:
44  virtual ~DtCellToIndirectGeoMap();
45 
46  protected:
48  DtCellToIndirectGeoMap(DtDe& de, const DtCullShaderConfig& cullShaderConfig);
49 
50  private:
52  DtCellToIndirectGeoMap() = delete;
53 
56 
58  DtCellToIndirectGeoMap& operator=(const DtCellToIndirectGeoMap& rhs) = delete;
59  public:
61  virtual DtCellIndirectGeo* getEntryFor(const osg::Node* node);
62 
64  virtual const KeyToEntryTypeMap& entryMap() const;
65 
67  virtual void deleteAllEntries(void);
68 
71  virtual bool keyNodeGettingDeleted(const osg::Node* node);
72 
74  virtual void setName(const std::string& name);
76  virtual const std::string& name(void) const;
78 
80  virtual const DtCullShaderConfig& cullShaderConfig(void) const;
81 
83  virtual int size(void) const;
84 
88  virtual void setRegistrarInvalid();
89 
90  protected:
92  virtual DtCellIndirectGeo* getEntry(const osg::Node* node);
93 
95  virtual DtCellIndirectGeo* createEntry(const osg::Node* keyNode
96  , const DtCullShaderConfig& cullShaderConfig
97  , bool includeIntersectionGeoInNodePath
98  , const DtIndirectGeometrySubType& geometrySubType
99  , const DtIndirectFadeParameters& fadeParameters) = 0;
100 
102  virtual void deleteEntries();
103  protected:
106 
108 
110 
111  std::string myName;
112  };
113 }
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:104
Helper for managing indirect geometry, its intersection group and registrar corresponding to a &#39;tile ...
Definition: DtCellIndirectGeo.h:80
KeyToEntryTypeMap myKeyToEntryTypeMap
Definition: DtCellToIndirectGeoMap.h:105
std::string myName
Definition: DtCellToIndirectGeoMap.h:111
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:40
Definition: DtCellToIndirectGeoMap.h:37
DtIndirectGeometrySubType
Definition: DtIndirectGeometrySubType.h:16
DtDe & myDe
Definition: DtCellToIndirectGeoMap.h:107
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:76
const DtCullShaderConfig myCullShaderConfig
Definition: DtCellToIndirectGeoMap.h:109

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)