VR-Vantage 2.6 API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DtOptimizer.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2019 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvOsg/vrvOsg.h>
14 
15 #include <osgUtil/Optimizer>
16 #include <osgUtil/Statistics>
17 #include <osgUtil/TriStripVisitor>
18 
19 #include <osgSim/LightPointNode>
20 
21 namespace makVrv
22 {
26  class DT_DLL_VRVOSG DtOptimizer : public osgUtil::Optimizer
27  {
28  public:
29 
31  DtOptimizer(bool processProxyNodes);
32 
34  virtual void optimize(osg::Node* node, unsigned int options);
35 
36  class StatsVisitor : public osgUtil::StatsVisitor
37  {
38  public:
39  StatsVisitor(bool processProxyNodes);
40  virtual void apply(osg::ProxyNode& node);
41  protected:
43  };
44 
46  {
47  public:
48  StaticObjectDetectionVisitor(bool processProxyNodes);
49  virtual void apply(osg::ProxyNode& node);
50  protected:
52  };
53 
54  class TriStripVisitor : public osgUtil::TriStripVisitor
55  {
56  public:
57  TriStripVisitor(bool processProxyNodes,Optimizer* optimizer);
58  virtual void apply(osg::ProxyNode& node);
59  protected:
61  };
62 
64  {
65  public:
66  RemoveEmptyNodesVisitor(bool processProxyNodes,Optimizer* optimizer);
67  virtual void apply(osg::ProxyNode& node);
68  protected:
70  };
71 
73  {
74  public:
75  RemoveRedundantNodesVisitor(bool processProxyNodes,Optimizer* optimizer);
76  virtual void apply(osg::ProxyNode& node);
77  virtual void apply( osg::Group& node );
78  protected:
80  };
81 
83  {
84  public:
85  FlattenBillboardVisitor(bool processProxyNodes,Optimizer* optimizer);
86  virtual void apply(osg::ProxyNode& node);
87  protected:
89  };
90 
92  {
93  public:
94  SpatializeGroupsVisitor(bool processProxyNodes,Optimizer* optimizer);
95  virtual void apply(osg::ProxyNode& node);
96  protected:
98  };
99 
101  {
102  public:
103  TessellateVisitor(bool processProxyNodes,Optimizer* optimizer);
104  virtual void apply(osg::ProxyNode& node);
105  protected:
107  };
108 
110  {
111  public:
112  RemoveLoadedProxyNodesVisitor(bool processProxyNodes,Optimizer* optimizer);
113  virtual void apply(osg::ProxyNode& node);
114  protected:
116  };
117 
119  {
120  public:
121  CombineLODsVisitor(bool processProxyNodes,Optimizer* optimizer);
122  virtual void apply(osg::ProxyNode& node);
123  protected:
125  };
126 
128  {
129  public:
130  TextureVisitor(bool processProxyNodes,bool changeAutoUnRef, bool valueAutoUnRef,
131  bool changeClientImageStorage, bool valueClientImageStorage,
132  bool changeAnisotropy, float valueAnisotropy,
133  Optimizer* optimizer);
134 
135  virtual void apply(osg::ProxyNode& node);
136  protected:
138  };
139 
141  {
142  public:
143  StateVisitor(bool processProxyNodes, bool combineDynamicState,
144  bool combineStaticState,bool combineUnspecifiedState,
145  Optimizer* optimizer);
146  virtual void apply(osg::ProxyNode& node);
147 
148  protected:
150  };
151 
153  {
154  public:
155  CopySharedSubgraphsVisitor(bool processProxyNodes,Optimizer* optimizer);
156  virtual void apply(osg::ProxyNode& node);
157  protected:
159  };
160 
162  {
163  public:
164  CombineStaticTransformsVisitor(bool processProxyNodes,Optimizer* optimizer);
165  virtual void apply(osg::ProxyNode& node);
166  protected:
168  };
169 
172  {
173  public:
174  FlattenStaticTransformsDuplicatingSharedSubgraphsVisitor(bool processProxyNodes,Optimizer* optimizer);
175  virtual void apply(osg::ProxyNode& node);
176  virtual void apply(osg::Node& node);
177  virtual void apply(osg::LightSource& ls);
178 
179  protected:
180  virtual void transformOsgSimLightPointNode(osgSim::LightPointNode* lpn);
181  virtual void transformDtLightPointNode(DtLightPointNode* lpn);
182  virtual void transformOsgLightSource(osg::LightSource* ls);
183 
184  protected:
186 
187  };
188 
190  {
191  public:
192  MergeGeodesVisitor(bool processProxyNodes,Optimizer* optimizer);
193  virtual void apply(osg::ProxyNode& node);
194  protected:
196  };
197 
199  {
200  public:
201  CheckGeometryVisitor(bool processProxyNodes,Optimizer* optimizer);
202  virtual void apply(osg::ProxyNode& node);
203  protected:
205  };
206 
208  {
209  public:
210  MergeGeometryVisitor(bool processProxyNodes,Optimizer* optimizer);
211  virtual void apply(osg::ProxyNode& node);
212  protected:
214  };
215 
217  {
218  public:
219  FlattenStaticTransformsVisitor(bool processProxyNodes,Optimizer* optimizer);
220  virtual void apply(osg::ProxyNode& node);
221  protected:
223  };
224 
226  {
227  public:
228  TextureAtlasVisitor(bool processProxyNodes,Optimizer* optimizer);
229  virtual void apply(osg::ProxyNode& node);
230  protected:
232  };
233 
244  static int optimizationLevel01();
245 
256  static int optimizationLevel01Instanced();
257 
277  static int optimizationLevel02();
278 
279  protected:
280 
282  };
283 
284 }
285 
Definition: DtOptimizer.h:100
Contains makVrv::DtLightPointNode class.
Definition: DtOptimizer.h:207
bool myProcessProxyNodes
Definition: DtOptimizer.h:124
bool myProcessProxyNodes
Definition: DtOptimizer.h:158
bool myProcessProxyNodes
Definition: DtOptimizer.h:204
bool myProcessProxyNodes
Definition: DtOptimizer.h:97
bool myProcessProxyNodes
Definition: DtOptimizer.h:69
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
bool myProcessProxyNodes
Definition: DtOptimizer.h:137
bool myProcessProxyNodes
Definition: DtOptimizer.h:106
bool myProcessProxyNodes
Definition: DtOptimizer.h:79
bool myProcessProxyNodes
Definition: DtOptimizer.h:167
bool myProcessProxyNodes
Definition: DtOptimizer.h:281
bool myProcessProxyNodes
Definition: DtOptimizer.h:213
Definition: DtOptimizer.h:189
bool myProcessProxyNodes
Definition: DtOptimizer.h:149
bool myProcessProxyNodes
Definition: DtOptimizer.h:60
Definition: DtOptimizer.h:118
Definition: DtOptimizer.h:54
Optimizer class that allows for thread-safe optimization by not following proxy nodes.
Definition: DtOptimizer.h:26
bool myProcessProxyNodes
Definition: DtOptimizer.h:195
bool myProcessProxyNodes
Definition: DtOptimizer.h:222
Derived from osg::Node and is a replacement for the osgSim::LightPointNode represents a group of ligh...
Definition: DtLightPointNode.h:33
bool myProcessProxyNodes
Definition: DtOptimizer.h:231
bool myProcessProxyNodes
Definition: DtOptimizer.h:115
bool myProcessProxyNodes
Definition: DtOptimizer.h:51
Definition: DtOptimizer.h:127
Contains DLL export macros.
bool myProcessProxyNodes
Definition: DtOptimizer.h:88
bool myProcessProxyNodes
Definition: DtOptimizer.h:42
Definition: DtOptimizer.h:198
Definition: DtOptimizer.h:36
Definition: DtOptimizer.h:140
Definition: DtOptimizer.h:225


Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)