VR-Forces 4.5 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
terrainSourcePager.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2010 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 #pragma once
6 
9 
10 #include <string>
11 
12 #include <tbb/spin_rw_mutex.h>
13 #include <tbb/concurrent_queue.h>
14 #include <tbb/atomic.h>
15 
16 #include <osg/Node>
17 
20 
22 
24 
25 #include <boost/unordered_map.hpp>
26 #include <boost/optional.hpp>
27 
32 
33 typedef std::multimap<int, DtTerrainPagerCommand*> DtCommandPriorityMultimap;
34 
41 {
42 public:
43 
46 
48  virtual ~DtTerrainSourcePager();
49 
53  virtual void tick();
54 
56  virtual DtTerrainSourceTracker* createTerrainSourceTracker(DtVantageTerrainEngine*) = 0;
57 
59  virtual DtTerrainSourceTracker* terrainSourceTracker();
60 
61  virtual void updatePageTracker(DtTerrainIntersectIDType intersectId = 0) = 0;
62 
66  virtual int highestPriorityPendingWork();
67 
70  virtual void processCommandQueue();
71 
75  virtual void setCurrentTime(const double& currentTime);
76 
78  virtual unsigned long numTriangles() const;
79 
80  virtual bool quitFlagSet() const;
81  virtual void setQuit(bool);
82 
83  virtual const Coordinate_System* localCS() const;
84 
85  virtual void setLabel(const DtString&);
86  virtual DtString label() const;
87 
88 protected:
90  {
91  public:
92  typedef boost::unordered_map<DtNodeId, TerrainRecord> Map;
93 
95  void pageOut();
96 
97  protected:
99  };
100 
101  virtual unsigned int addTerrain(const osg::ref_ptr<osg::Node>& node, DtVrfSimTerrainProcessor&);
102 
103  virtual void removeTerrain(const osg::ref_ptr<osg::Node>& node);
104 
105  typedef tbb::spin_rw_mutex Mutex;
106  mutable Mutex myMutex;
107 
109 
111  tbb::atomic<bool> myQuitFlag;
112 
116 
119 
124 
127 
131 
133  unsigned long myNumTriangles;
134 
136 
137  boost::optional<short int> myDefaultBulletObjectMask;
138 };

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)