VR-Forces 4.7 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties 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 
33 
34 typedef std::multimap<int, DtTerrainPagerCommand*> DtCommandPriorityMultimap;
35 
42 {
43 public:
44 
47 
49  virtual ~DtTerrainSourcePager();
50 
52  virtual bool init();
53 
57  virtual void tick();
58 
60  virtual DtTerrainSourceTracker* createTerrainSourceTracker(DtVantageTerrainEngine*) = 0;
61 
63  virtual DtTerrainSourceTracker* terrainSourceTracker();
64 
65  virtual void updatePageTracker(DtTerrainIntersectIDType intersectId = 0) = 0;
66 
70  virtual int highestPriorityPendingWork();
71 
74  virtual void processCommandQueue();
75 
79  virtual void setCurrentTime(const double& currentTime);
80 
82  virtual unsigned long numTriangles() const;
83 
84  virtual bool quitFlagSet() const;
85  virtual void setQuit(bool);
86 
87  virtual const Coordinate_System* localCS() const;
88 
89  virtual void setLabel(const DtString&);
90  virtual DtString label() const;
91 
92 protected:
94  {
95  public:
96  typedef boost::unordered_map<DtNodeId, TerrainRecord> Map;
97 
99  void pageOut();
100 
101  protected:
103  };
104 
105  virtual void addTerrain(const osg::ref_ptr<osg::Node>& node, DtVrfSimTerrainProcessor&);
106  virtual void removeTerrain(const osg::ref_ptr<osg::Node>& node);
107 
109  virtual void addTriangles(unsigned int);
111  virtual void removeTriangles(unsigned int);
112 
113  typedef tbb::spin_rw_mutex Mutex;
114  mutable Mutex myMutex;
115 
117 
119  tbb::atomic<bool> myQuitFlag;
120 
124 
127 
132 
135 
139 
141  unsigned long myNumTriangles;
142 
144 
145  boost::optional<short int> myDefaultBulletObjectMask;
146 };

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)