VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
simTerrainRequestManager.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 #pragma once
10 
13 #include <vrfmsgs/ifComputeRoute.h>
21 #include <tbb/spin_mutex.h>
22 
23 #include <list>
24 
25 class DtSimManager;
26 class DtIfComputeRoute;
28 class DtSimulationAddress;
29 class DtSimMessage;
31 class DtIfOsgEarthCacheInformationRequest;
33 
35 {
36 protected:
37  struct PendingIntersection;
38  class PendingDynamicTerrainInformation;
39 
40 public:
42 
44 
45  virtual ~DtSimTerrainRequestManager();
46 
47  virtual void init();
48 
49  virtual void tick();
50 
51  virtual void process(const DtIfComputeRoute& msg, const DtSimulationAddress& from);
52 
53  virtual void process(const DtIfComputeAerodrome& msg, const DtSimulationAddress& from);
54 
56  virtual void setIntersectionRecheckPeriod(double);
58  {
59  return myIntersectionRecheckPeriod;
60  }
61 
63  virtual void setVectorFeatureLookup(const DtString&);
65  {
66  return myVectorFeatureLookup;
67  }
68 
70  virtual void terrainClosed();
71 
72 protected:
73  static void intersectionRequestCallback(DtSimMessage*, void* usr);
74  virtual void processIntersectionRequest(DtIfRequestIntersectionInformation*);
75 
77  virtual bool processPendingIntersection(PendingIntersection&);
78 
80  static void osgEarthCacheRequestCallback(DtSimMessage*, void* usr);
81  virtual void processOsgEarthCacheRequest(DtIfOsgEarthCacheRequest*);
82 
84  static void osgEarthCacheCancelRequestCallback(DtSimMessage*, void* usr);
85  virtual void processOsgEarthCacheCancelRequest(DtIfOsgEarthCacheCancelRequest*);
86 
88  static void cacheProgressCallback(int reqeustId, int current, bool completed, double elapsedTime, void*);
89  virtual void processCacheProgress(int reqeustId, int current, bool completed, double elapsedTime);
90 
91 protected:
93 
94  typedef boost::shared_ptr<DtAsyncJobMapEntry> EntryPtr;
95 
96  struct Record
97  {
98  Record(const EntryPtr& entry, const DtSimulationAddress& addr, const DtIfComputeRoute& msg)
99  : entry(entry), address(addr), message(msg) { }
100 
102  DtSimulationAddress address;
104  };
105 
106  bool processRecord(const Record&);
107 
108  typedef std::list<Record> Records;
110 
112  {
113  AerodromeRecord(const EntryPtr& entry, const DtSimulationAddress& addr, const DtIfComputeAerodrome& msg)
114  : entry(entry), address(addr), message(msg) { }
115 
117  DtSimulationAddress address;
119  };
120 
121  bool processAerodromeRecord(const AerodromeRecord&);
122 
123  typedef std::list<AerodromeRecord> AerodromeRecords;
125 
129  {
130  std::vector<bool> awaiting;
134  };
135 
136  typedef std::vector<PendingIntersection> PendingIntersectionRequest;
137 
139 
142 
144  typedef std::map<int, DtIfOsgEarthCacheProgress> OsgEarthProgressReports;
146 };
Interface content for requesting intersection information.
Definition: ifRequestIntersectionInformation.h:20
DtSimulationAddress address
Definition: simTerrainRequestManager.h:117
Definition: simTerrainRequestManager.h:34
Definition: simTerrainRequestManager.h:96
EntryPtr entry
Definition: simTerrainRequestManager.h:101
class DtIfOsgEarthCacheRequest:
Definition: ifOsgEarthCacheRequest.h:18
const DtString & vectorFeatureLookup() const
Definition: simTerrainRequestManager.h:64
std::vector< bool > awaiting
Definition: simTerrainRequestManager.h:130
Definition: ifComputeAerodrome.h:19
DtIfComputeAerodrome message
Definition: simTerrainRequestManager.h:118
PendingIntersectionRequest myPendingIntersectionRequests
Definition: simTerrainRequestManager.h:138
OsgEarthProgressReports myOsgEarthProgressReports
Definition: simTerrainRequestManager.h:145
std::map< int, DtIfOsgEarthCacheProgress > OsgEarthProgressReports
Definition: simTerrainRequestManager.h:144
boost::shared_ptr< DtAsyncJobMapEntry > EntryPtr
Definition: simTerrainRequestManager.h:94
std::vector< PendingIntersection > PendingIntersectionRequest
Definition: simTerrainRequestManager.h:136
double intersectionRecheckPeriod() const
Definition: simTerrainRequestManager.h:57
If there are intersections pending this is the intersection that is pending, including the original r...
Definition: simTerrainRequestManager.h:128
DtString myVectorFeatureLookup
Definition: simTerrainRequestManager.h:141
DtSimulationAddress address
Definition: simTerrainRequestManager.h:102
Definition: ifIntersectionInformationResponse.h:105
class DtIfOsgEarthCacheCancelRequest:
Definition: ifOsgEarthCacheCancelRequest.h:18
double nextCheckTime
Definition: simTerrainRequestManager.h:133
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
Records myComputeRouteJobs
Definition: simTerrainRequestManager.h:109
DtIfIntersectionInformationResponse response
Definition: simTerrainRequestManager.h:132
Definition: simTerrainRequestManager.h:111
File: simMsg.h.
Definition: simMessage.h:35
AerodromeRecords myComputeAerodromeJobs
Definition: simTerrainRequestManager.h:124
std::list< Record > Records
Definition: simTerrainRequestManager.h:108
std::list< AerodromeRecord > AerodromeRecords
Definition: simTerrainRequestManager.h:123
Definition: ifComputeRoute.h:19
DtSimManager * mySimManager
Definition: simTerrainRequestManager.h:92
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
DtIfRequestIntersectionInformation request
Definition: simTerrainRequestManager.h:131
EntryPtr entry
Definition: simTerrainRequestManager.h:116
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:103
tbb::spin_mutex myOsgEarthCacheInfoProgress
Definition: simTerrainRequestManager.h:143
DtIfComputeRoute message
Definition: simTerrainRequestManager.h:103
double myIntersectionRecheckPeriod
Definition: simTerrainRequestManager.h:140
AerodromeRecord(const EntryPtr &entry, const DtSimulationAddress &addr, const DtIfComputeAerodrome &msg)
Definition: simTerrainRequestManager.h:113
Record(const EntryPtr &entry, const DtSimulationAddress &addr, const DtIfComputeRoute &msg)
Definition: simTerrainRequestManager.h:98

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)