VR-Forces 5.0.3 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtIndirectModelInfo.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Copyright (c) 2022 MAK Technologies, Inc.
3  * All rights reserved.
4  *****************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvOsg/vrvOsg.h>
13 
14 #include <string>
15 
21 
22 #define CPU_SIDE_COMPILATION 1
23 #include <../data/shaders/indirect/GeometrySpecification.h>
24 
27 
28 #include <set>
29 #include <unordered_set>
30 
31 namespace makVrv
32 {
34  class DtIndirectModelSubGeometry;
35  class DtIndirectLimitTextureStrategy;
36 
37  class DtGpuCulling;
38 
39  class DtDe;
40 
45  {
46  public:
49 
51  virtual ~DtIndirectModelInfo();
52 
55 
57  DtIndirectModelInfo& operator=(const DtIndirectModelInfo&) = delete;
58 
59  public:
63  virtual void unloadBuffers();
64 
66  virtual bool buffersLoaded() const;
67 
70  virtual void texturesSet(std::map< osg::ref_ptr< osg::Texture>, int >& texturesSet) const;
71 
75  virtual int addUser(const DtGpuCulling* user);
76 
80  virtual int removeUser(const DtGpuCulling* user);
81 
85  virtual void computeMaxTextureResolution(const DtIndirectLimitTextureStrategy& limitStrategy);
86 
87  protected:
89  virtual bool isDefaultTexture(osg::ref_ptr<const osg::Texture> texture) const;
90  public:
92  std::string myModelName;
93 
94  std::string myModelDefName;
95 
97  int myModelID;
98 
101 
103  DtGeometrySpecVector myGeometrySpecifications;
104 
107  std::vector<DtIndirectModelSubGeometry*> myVectorModelSubGeometries;
108 
111 
114 
117 
120 
123 
126 
130 
133 
134  std::unordered_set<const DtGpuCulling*> myUsers;
135 
137 
139  };
140 
141 
142 }
Contains makVrv::DtIndirectUvOffsetManager class.
DtMaterial class declaration.
DtGeometrySpecVector myGeometrySpecifications
the vector of all geometry specs
Definition: DtIndirectModelInfo.h:103
std::string myModelDefName
Definition: DtIndirectModelInfo.h:94
std::vector< DtIndirectGeometryTexturesRefPtr > VectorIndirectGeometryTexturesRefPtrs
Definition: DtIndirectGeometryTextures.h:141
DtDe & myDe
Definition: DtIndirectModelInfo.h:136
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
This class is a component of the DtIndirectGeometry It inputs are: -&gt; the instances registered with Dt...
Definition: DtGpuCulling.h:82
std::vector< DtIndirectModelSubGeometry * > myVectorModelSubGeometries
the same size as the spec vector above 1 sub-geometry for each spec
Definition: DtIndirectModelInfo.h:107
DtVector2< int > myMaxTextureResolutionInXandY
Definition: DtIndirectModelInfo.h:138
DtIndirectUvOffsetManager::ScrollableUvOffsetIdsAndMultipliers myScrollableUvOffsetIdsAndMultipliers
uv offset ids and multipliers
Definition: DtIndirectModelInfo.h:122
DtIndirectLodManager::DequeIndirectLodInfoArray myLodStacks
lod paths
Definition: DtIndirectModelInfo.h:128
int myNumLightSources
the number of light sources
Definition: DtIndirectModelInfo.h:132
std::vector< DequeIndirectLodInfos > DequeIndirectLodInfoArray
Definition: DtIndirectLodManager.h:68
std::deque< NodeDofInfoPair > DequeNodeDofInfoPairs
Definition: DtIndirectDofManager.h:75
Contains makVrv::DtIndirectDofManager class.
std::string myModelName
the model name
Definition: DtIndirectModelInfo.h:92
std::map< std::string, unsigned int > AnnotationToUvOffsetMap
Definition: DtIndirectUvOffsetManager.h:53
DtIndirectUvOffsetManager::AnnotationToUvOffsetMap myAnnotationToUvOffsetIdMap
annotation to uv offset map
Definition: DtIndirectModelInfo.h:119
DtIndirectSwitchManager::DequeNodeSwitchInfoPairsArray mySwitchPaths
switch paths
Definition: DtIndirectModelInfo.h:125
std::unordered_map< int, MultiplierAndTrackSide > ScrollableUvOffsetIdsAndMultipliers
Definition: DtIndirectUvOffsetManager.h:65
std::vector< PerGeomInstance > DtPerGeomInstances
Definition: DtPerGeomInstance.h:26
bool myDownloaded
is the model completely downloaded to the gpu
Definition: DtIndirectModelInfo.h:100
std::vector< DequeNodeSwitchInfoPairs > DequeNodeSwitchInfoPairsArray
Definition: DtIndirectSwitchManager.h:79
This class is passed as a pointer to DtIndirectTextureProcessor. The processor then uses this in conj...
Definition: DtIndirectLimitTextureStrategy.h:65
Contains makVrv::DtIndirectSwitchManager class.
Contains makVrv::DtIndirectLodManager class.
DtIndirectMaterialVector myMaterials
vector of the materials in this model
Definition: DtIndirectModelInfo.h:110
std::unordered_set< const DtGpuCulling * > myUsers
Definition: DtIndirectModelInfo.h:134
int myModelID
the model id
Definition: DtIndirectModelInfo.h:97
Contains DLL export macros.
DtIndirectDofManager::DequeNodeDofInfoPairs myDofPaths
Definition: DtIndirectModelInfo.h:129
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
Contains the DtIndirectGeometryTextures class declaration.
VectorIndirectGeometryTexturesRefPtrs myTextures
vector of the textures in this model
Definition: DtIndirectModelInfo.h:113
DtPerGeomInstances myPerGeomInstancesTemplate
vector of the per geom instances
Definition: DtIndirectModelInfo.h:116
DtPerGeomInstance class declaration.
Contains the per Model info which the indirect module needs It is owned by the Indirect geometry regi...
Definition: DtIndirectModelInfo.h:44
std::vector< Material > DtIndirectMaterialVector
Each model type can have a number of geometries, each with an own material.
Definition: DtMaterial.h:46

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)