VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtInstanceContainer.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2021 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
15 
17 
18 #include <unordered_map>
19 
20 namespace makVrv
21 {
22  typedef std::vector<Matrix4_64> VectorMatrix4_64;
23 
24  struct DtAggregateModelInfo;
25 
32  {
33  public:
36 
38  virtual ~DtInstanceContainer();
39 
40  private:
44  DtInstanceContainer& operator=(const DtInstanceContainer&) = delete;
45 
46  public:
47 
49  virtual void addInstance(const int modelId
54  , const DtPerGeomInstances& perGeomInstancesTemplate
55  , int geometryLocations, int lightSourceCount
56  , int &outPerGeomTemplateOffset, int& outNumGeoms, int& outInstanceIndex);
57 
59  virtual bool removeInstance(int instanceId);
60 
62  virtual bool hasInstance(int instanceId) const;
63 
65  virtual const DtReusablePerGeomInstances& perGeomInstances(void) const;
66 
68  virtual DtReusablePerGeomInstances& perGeomInstances(void);
69 
71  virtual void printPerGeomInstances() const;
72 
74  virtual int numValidInstances(void) const;
75 
77  virtual int numUniqueGeometriesForModel(int modelId) const;
78 
81  virtual int numUniqueGeometries() const;
82 
85  virtual bool instanceEverAdded(void) const;
86 
88  virtual const DtIndirectOffsetAndSize& perGeomInstanceOffsetAndSize(int instanceId) const;
89 
90 
92  virtual void incrementNumUniqueGeometries(int number);
93 
95  virtual const std::vector<int>& modelAddedOrder() const;
96 
99  virtual unsigned int maxNumLightSources() const;
100 
101  protected:
106 
108 
109  typedef std::unordered_map<int, DtIndirectOffsetAndSize> MapInstanceIdToPerGeomInstanceOffsetAndSize;
111 
112  typedef std::unordered_map<int, int> MapInstanceIdToNumLightSources;
114 
116 
118 
120  unsigned int myMaxNumLightSources;
121  };
122 }
SetInts myUniqueModels
Definition: DtInstanceContainer.h:103
std::set< int > SetInts
Definition: DtCommonTypes.h:22
structure for some internal GPU book-keeping
Definition: DtIndirectOffsetAndSize.h:17
Dll export defines.
MapIntToInt myModelIdToGeometryCount
Definition: DtInstanceContainer.h:105
#define DT_DLL_VRVINDIRECTRENDERING
Definition: vrvIndirectRendering.h:19
std::map< int, int > MapIntToInt
Definition: DtCommonTypes.h:25
int myRunningInstanceId
Definition: DtInstanceContainer.h:115
Contains makVrv::DtIndirectOffsetAndSize class.
std::vector< int > VectorInts
Definition: DtCommonTypes.h:20
std::unordered_map< int, int > MapInstanceIdToNumLightSources
Definition: DtInstanceContainer.h:112
VectorInts myModelAddedOrder
Definition: DtInstanceContainer.h:104
contains the Per Model info which DtAggregatedGeometry needs It is owned by the Indirect geometry reg...
Definition: DtAggregateModelInfo.h:31
std::vector< PerGeomInstance > DtPerGeomInstances
Definition: DtPerGeomInstance.h:26
unsigned int myMaxNumLightSources
Definition: DtInstanceContainer.h:120
std::unordered_map< int, DtIndirectOffsetAndSize > MapInstanceIdToPerGeomInstanceOffsetAndSize
Definition: DtInstanceContainer.h:109
int myNumValidInstances
Definition: DtInstanceContainer.h:117
std::vector< Matrix4_64 > VectorMatrix4_64
Definition: DtInstanceContainer.h:22
int myNumUniqueGeometries
Definition: DtInstanceContainer.h:107
Helper class to manage instances This class allows you to add a DtInstance_64 Internally, however it stores this as a DtInstance (which the GPU can directly read)
Definition: DtInstanceContainer.h:31
MapInstanceIdToPerGeomInstanceOffsetAndSize myMapInstanceIdToPerGeomInstanceOffsetAndSize
Definition: DtInstanceContainer.h:110
MapInstanceIdToNumLightSources myMapInstanceIdToNumLightSources
Definition: DtInstanceContainer.h:113
MapIntToInt myModelIdToGeomOffset
Definition: DtInstanceContainer.h:102
DtReusablePerGeomInstances myPerGeomInstances
Definition: DtInstanceContainer.h:119
DtPerGeomInstance class declaration.
4 dimensional matrix

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)