VR-Forces 4.8 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>
20 #include <tbb/spin_mutex.h>
21 
22 #include <list>
23 
24 class DtSimManager;
25 class DtIfComputeRoute;
26 class DtSimulationAddress;
27 class DtSimMessage;
29 class DtIfOsgEarthCacheInformationRequest;
31 
33 {
34 protected:
35  struct PendingIntersection;
36  class PendingDynamicTerrainInformation;
37 
38 public:
40 
42 
43  virtual ~DtSimTerrainRequestManager();
44 
45  virtual void init();
46 
47  virtual void tick();
48 
49  virtual void process(const DtIfComputeRoute& msg, const DtSimulationAddress& from);
50 
52  virtual void setIntersectionRecheckPeriod(double);
54  {
55  return myIntersectionRecheckPeriod;
56  }
57 
59  virtual void setVectorFeatureLookup(const DtString&);
61  {
62  return myVectorFeatureLookup;
63  }
64 
66  virtual void terrainClosed();
67 
68 protected:
69  static void intersectionRequestCallback(DtSimMessage*, void* usr);
70  virtual void processIntersectionRequest(DtIfRequestIntersectionInformation*);
71 
73  virtual bool processPendingIntersection(PendingIntersection&);
74 
76  static void osgEarthCacheRequestCallback(DtSimMessage*, void* usr);
77  virtual void processOsgEarthCacheRequest(DtIfOsgEarthCacheRequest*);
78 
80  static void osgEarthCacheCancelRequestCallback(DtSimMessage*, void* usr);
81  virtual void processOsgEarthCacheCancelRequest(DtIfOsgEarthCacheCancelRequest*);
82 
84  static void cacheProgressCallback(int reqeustId, int current, bool completed, double elapsedTime, void*);
85  virtual void processCacheProgress(int reqeustId, int current, bool completed, double elapsedTime);
86 
87 protected:
89 
90  typedef boost::shared_ptr<DtAsyncJobMapEntry> EntryPtr;
91 
92  struct Record
93  {
94  Record(const EntryPtr& entry, const DtSimulationAddress& addr, const DtIfComputeRoute& msg)
95  : entry(entry), address(addr), message(msg) { }
96 
98  DtSimulationAddress address;
100  };
101 
102  bool processRecord(const Record&);
103 
104  typedef std::list<Record> Records;
106 
110  {
111  std::vector<bool> awaiting;
115  };
116 
117  typedef std::vector<PendingIntersection> PendingIntersectionRequest;
118 
120 
123 
125  typedef std::map<int, DtIfOsgEarthCacheProgress> OsgEarthProgressReports;
127 };
Interface content for requesting intersection information.
Definition: ifRequestIntersectionInformation.h:20
Definition: simTerrainRequestManager.h:32
Definition: simTerrainRequestManager.h:92
EntryPtr entry
Definition: simTerrainRequestManager.h:97
class DtIfOsgEarthCacheRequest:
Definition: ifOsgEarthCacheRequest.h:18
const DtString & vectorFeatureLookup() const
Definition: simTerrainRequestManager.h:60
std::vector< bool > awaiting
Definition: simTerrainRequestManager.h:111
PendingIntersectionRequest myPendingIntersectionRequests
Definition: simTerrainRequestManager.h:119
OsgEarthProgressReports myOsgEarthProgressReports
Definition: simTerrainRequestManager.h:126
std::map< int, DtIfOsgEarthCacheProgress > OsgEarthProgressReports
Definition: simTerrainRequestManager.h:125
boost::shared_ptr< DtAsyncJobMapEntry > EntryPtr
Definition: simTerrainRequestManager.h:90
std::vector< PendingIntersection > PendingIntersectionRequest
Definition: simTerrainRequestManager.h:117
double intersectionRecheckPeriod() const
Definition: simTerrainRequestManager.h:53
If there are intersections pending this is the intersection that is pending, including the original r...
Definition: simTerrainRequestManager.h:109
DtString myVectorFeatureLookup
Definition: simTerrainRequestManager.h:122
DtSimulationAddress address
Definition: simTerrainRequestManager.h:98
Definition: ifIntersectionInformationResponse.h:105
class DtIfOsgEarthCacheCancelRequest:
Definition: ifOsgEarthCacheCancelRequest.h:18
double nextCheckTime
Definition: simTerrainRequestManager.h:114
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
Records myComputeRouteJobs
Definition: simTerrainRequestManager.h:105
DtIfIntersectionInformationResponse response
Definition: simTerrainRequestManager.h:113
File: simMsg.h.
Definition: simMessage.h:35
std::list< Record > Records
Definition: simTerrainRequestManager.h:104
Definition: ifComputeRoute.h:19
DtSimManager * mySimManager
Definition: simTerrainRequestManager.h:88
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
DtIfRequestIntersectionInformation request
Definition: simTerrainRequestManager.h:112
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:102
tbb::spin_mutex myOsgEarthCacheInfoProgress
Definition: simTerrainRequestManager.h:124
DtIfComputeRoute message
Definition: simTerrainRequestManager.h:99
double myIntersectionRecheckPeriod
Definition: simTerrainRequestManager.h:121
Record(const EntryPtr &entry, const DtSimulationAddress &addr, const DtIfComputeRoute &msg)
Definition: simTerrainRequestManager.h:94

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)