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:
41  virtual ~DtCellToIndirectGeoMap();
42 
43  protected:
45  DtCellToIndirectGeoMap(DtDe& de, const DtCullShaderConfig& cullShaderConfig);
46 
47  private:
49  DtCellToIndirectGeoMap() = delete;
50 
53 
55  DtCellToIndirectGeoMap& operator=(const DtCellToIndirectGeoMap& rhs) = delete;
56  public:
58  virtual DtCellIndirectGeo* getEntryFor(const osg::Node* node);
59 
61  virtual void deleteAllEntries(void);
62 
65  virtual bool keyNodeGettingDeleted(const osg::Node* node);
66 
68  virtual void setName(const std::string& name);
70  virtual const std::string& name(void) const;
72 
74  virtual const DtCullShaderConfig& cullShaderConfig(void) const;
75 
77  virtual int size(void) const;
78 
82  virtual void setRegistrarInvalid();
83 
84  protected:
86  virtual DtCellIndirectGeo* getEntry(const osg::Node* node);
87 
89  virtual DtCellIndirectGeo* createEntry(const osg::Node* keyNode
90  , const DtCullShaderConfig& cullShaderConfig
91  , bool includeIntersectionGeoInNodePath
92  , const DtIndirectGeometrySubType& geometrySubType
93  , const DtIndirectFadeParameters& fadeParameters) = 0;
94 
96  virtual void deleteEntries();
97  protected:
99  typedef std::unordered_map<const osg::Node*, DtCellIndirectGeo*> KeyToEntryTypeMap;
101 
103 
105 
106  std::string myName;
107  };
108 }
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:98
Helper for managing indirect geometry, its intersection group and registrar corresponding to a &#39;tile ...
Definition: DtCellIndirectGeo.h:79
KeyToEntryTypeMap myKeyToEntryTypeMap
Definition: DtCellToIndirectGeoMap.h:100
std::string myName
Definition: DtCellToIndirectGeoMap.h:106
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:99
Definition: DtCellToIndirectGeoMap.h:37
DtIndirectGeometrySubType
Definition: DtIndirectGeometrySubType.h:16
DtDe & myDe
Definition: DtCellToIndirectGeoMap.h:102
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
const DtCullShaderConfig myCullShaderConfig
Definition: DtCellToIndirectGeoMap.h:104

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)