VR-Forces 4.6.1 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 
54  virtual void tick();
55 
57  virtual DtTerrainSourceTracker* createTerrainSourceTracker(DtVantageTerrainEngine*) = 0;
58 
60  virtual DtTerrainSourceTracker* terrainSourceTracker();
61 
62  virtual void updatePageTracker(DtTerrainIntersectIDType intersectId = 0) = 0;
63 
67  virtual int highestPriorityPendingWork();
68 
71  virtual void processCommandQueue();
72 
76  virtual void setCurrentTime(const double& currentTime);
77 
79  virtual unsigned long numTriangles() const;
80 
81  virtual bool quitFlagSet() const;
82  virtual void setQuit(bool);
83 
84  virtual const Coordinate_System* localCS() const;
85 
86  virtual void setLabel(const DtString&);
87  virtual DtString label() const;
88 
89 protected:
91  {
92  public:
93  typedef boost::unordered_map<DtNodeId, TerrainRecord> Map;
94 
96  void pageOut();
97 
98  protected:
100  };
101 
102  virtual void addTerrain(const osg::ref_ptr<osg::Node>& node, DtVrfSimTerrainProcessor&);
103  virtual void removeTerrain(const osg::ref_ptr<osg::Node>& node);
104 
106  virtual void addTriangles(unsigned int);
108  virtual void removeTriangles(unsigned int);
109 
110  typedef tbb::spin_rw_mutex Mutex;
111  mutable Mutex myMutex;
112 
114 
116  tbb::atomic<bool> myQuitFlag;
117 
121 
124 
129 
132 
136 
138  unsigned long myNumTriangles;
139 
141 
142  boost::optional<short int> myDefaultBulletObjectMask;
143 };

Document ID: Generated on Wed Jul 25 16:57:45 EDT 2018 from SVN revision 190790
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)