VR-Vantage API Documentation
DtOptimizer.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2010 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 /******************************************************************************
6 ** $RCSfile: $ $Revision: $ $State: $
7 ******************************************************************************/
8 
12 
13 #pragma once
14 
15 #include <vrvOsg/vrvOsg.h>
16 #include <osgUtil/Optimizer>
17 #include <osgUtil/Statistics>
18 #include <osgUtil/TriStripVisitor>
19 
20 namespace makVrv
21 {
25  class DT_DLL_VRVOSG DtOptimizer : public osgUtil::Optimizer
26  {
27  public:
28 
30  DtOptimizer(bool processProxyNodes);
31 
33  virtual void optimize(osg::Node* node, unsigned int options);
34 
35  class StatsVisitor : public osgUtil::StatsVisitor
36  {
37  public:
38  StatsVisitor(bool processProxyNodes);
39  virtual void apply(osg::ProxyNode& node);
40  protected:
42  };
43 
44  class StaticObjectDetectionVisitor : public osgUtil::Optimizer::StaticObjectDetectionVisitor
45  {
46  public:
47  StaticObjectDetectionVisitor(bool processProxyNodes);
48  virtual void apply(osg::ProxyNode& node);
49  protected:
51  };
52 
53  class TriStripVisitor : public osgUtil::TriStripVisitor
54  {
55  public:
56  TriStripVisitor(bool processProxyNodes,Optimizer* optimizer);
57  virtual void apply(osg::ProxyNode& node);
58  protected:
60  };
61 
62  class RemoveEmptyNodesVisitor : public osgUtil::Optimizer::RemoveEmptyNodesVisitor
63  {
64  public:
65  RemoveEmptyNodesVisitor(bool processProxyNodes,Optimizer* optimizer);
66  virtual void apply(osg::ProxyNode& node);
67  protected:
69  };
70 
71  class RemoveRedundantNodesVisitor : public osgUtil::Optimizer::RemoveRedundantNodesVisitor
72  {
73  public:
74  RemoveRedundantNodesVisitor(bool processProxyNodes,Optimizer* optimizer);
75  virtual void apply(osg::ProxyNode& node);
76  protected:
78  };
79 
80  class FlattenBillboardVisitor : public osgUtil::Optimizer::FlattenBillboardVisitor
81  {
82  public:
83  FlattenBillboardVisitor(bool processProxyNodes,Optimizer* optimizer);
84  virtual void apply(osg::ProxyNode& node);
85  protected:
87  };
88 
89  class SpatializeGroupsVisitor : public osgUtil::Optimizer::SpatializeGroupsVisitor
90  {
91  public:
92  SpatializeGroupsVisitor(bool processProxyNodes,Optimizer* optimizer);
93  virtual void apply(osg::ProxyNode& node);
94  protected:
96  };
97 
98  class TessellateVisitor : public osgUtil::Optimizer::TessellateVisitor
99  {
100  public:
101  TessellateVisitor(bool processProxyNodes,Optimizer* optimizer);
102  virtual void apply(osg::ProxyNode& node);
103  protected:
105  };
106 
107  class RemoveLoadedProxyNodesVisitor : public osgUtil::Optimizer::RemoveLoadedProxyNodesVisitor
108  {
109  public:
110  RemoveLoadedProxyNodesVisitor(bool processProxyNodes,Optimizer* optimizer);
111  virtual void apply(osg::ProxyNode& node);
112  protected:
114  };
115 
116  class CombineLODsVisitor : public osgUtil::Optimizer::CombineLODsVisitor
117  {
118  public:
119  CombineLODsVisitor(bool processProxyNodes,Optimizer* optimizer);
120  virtual void apply(osg::ProxyNode& node);
121  protected:
123  };
124 
125  class TextureVisitor : public osgUtil::Optimizer::TextureVisitor
126  {
127  public:
128  TextureVisitor(bool processProxyNodes,bool changeAutoUnRef, bool valueAutoUnRef,
129  bool changeClientImageStorage, bool valueClientImageStorage,
130  bool changeAnisotropy, float valueAnisotropy,
131  Optimizer* optimizer);
132 
133  virtual void apply(osg::ProxyNode& node);
134  protected:
136  };
137 
138  class StateVisitor : public osgUtil::Optimizer::StateVisitor
139  {
140  public:
141  StateVisitor(bool processProxyNodes, bool combineDynamicState,
142  bool combineStaticState,bool combineUnspecifiedState,
143  Optimizer* optimizer);
144  virtual void apply(osg::ProxyNode& node);
145 
146  protected:
148  };
149 
150  class CopySharedSubgraphsVisitor : public osgUtil::Optimizer::CopySharedSubgraphsVisitor
151  {
152  public:
153  CopySharedSubgraphsVisitor(bool processProxyNodes,Optimizer* optimizer);
154  virtual void apply(osg::ProxyNode& node);
155  protected:
157  };
158 
159  class CombineStaticTransformsVisitor : public osgUtil::Optimizer::CombineStaticTransformsVisitor
160  {
161  public:
162  CombineStaticTransformsVisitor(bool processProxyNodes,Optimizer* optimizer);
163  virtual void apply(osg::ProxyNode& node);
164  protected:
166  };
167 
170  {
171  public:
172  FlattenStaticTransformsDuplicatingSharedSubgraphsVisitor(bool processProxyNodes,Optimizer* optimizer);
173  virtual void apply(osg::ProxyNode& node);
174  protected:
176  };
177 
178  class MergeGeodesVisitor : public osgUtil::Optimizer::MergeGeodesVisitor
179  {
180  public:
181  MergeGeodesVisitor(bool processProxyNodes,Optimizer* optimizer);
182  virtual void apply(osg::ProxyNode& node);
183  protected:
185  };
186 
187  class CheckGeometryVisitor : public osgUtil::Optimizer::CheckGeometryVisitor
188  {
189  public:
190  CheckGeometryVisitor(bool processProxyNodes,Optimizer* optimizer);
191  virtual void apply(osg::ProxyNode& node);
192  protected:
194  };
195 
196  class MergeGeometryVisitor : public osgUtil::Optimizer::MergeGeometryVisitor
197  {
198  public:
199  MergeGeometryVisitor(bool processProxyNodes,Optimizer* optimizer);
200  virtual void apply(osg::ProxyNode& node);
201  protected:
203  };
204 
205  class FlattenStaticTransformsVisitor : public osgUtil::Optimizer::FlattenStaticTransformsVisitor
206  {
207  public:
208  FlattenStaticTransformsVisitor(bool processProxyNodes,Optimizer* optimizer);
209  virtual void apply(osg::ProxyNode& node);
210  protected:
212  };
213 
214  class TextureAtlasVisitor : public osgUtil::Optimizer::TextureAtlasVisitor
215  {
216  public:
217  TextureAtlasVisitor(bool processProxyNodes,Optimizer* optimizer);
218  virtual void apply(osg::ProxyNode& node);
219  protected:
221  };
222 
233  static int optimizationLevel01();
234 
253  static int optimizationLevel02();
254 
255  protected:
256 
258  };
259 
260 }
261 


Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)