VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtTacticalGraphicModelUpdaterManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2012 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
10 
11 #pragma once
12 
13 #include <vrvOsg/vrvOsg.h>
15 
16 #include <matrix/vlTaitBryan.h>
17 
18 #include <boost/function.hpp>
19 #include <map>
20 namespace makVrv
21 {
22  class DtChannelManager;
23  class DtChannel;
24  class DtDe;
25  class DtTerrainPatch;
26 
31  {
32  public:
36  {
38  double viewResolution;
39  DtTaitBryan orientation;
41 
42  bool operator==(const ChannelUpdateData& rhs)const
43  {
44  return ((channel == rhs.channel) &&
45  (viewResolution == rhs.viewResolution) &&
46  (orientation == rhs.orientation));
47  }
48 
49  bool operator!=(const ChannelUpdateData& rhs) const
50  {
51  return !(*this == rhs);
52  }
53  };
54 
56  typedef boost::function<void (ChannelUpdateData)> ChannelUpdateCallback;
57 
58  public:
61 
64 
67  static DtTacticalGraphicModelUpdaterManager& instance(DtDe& de);
68 
70  static void registerInstance(DtDe& de, DtTacticalGraphicModelUpdaterManager* anInstance);
71 
74  virtual void add(intptr_t identifier, ChannelUpdateCallback);
75 
77  virtual void remove(intptr_t);
78 
80  virtual bool isRegistered(intptr_t) const;
81 
83  virtual double viewResolution(DtChannel*);
84 
87  virtual ChannelUpdateData channelUpdateData(DtChannel*);
88 
89  protected:
92  virtual void slot_channelUpdated( DtChannelManager*, DtChannel* channel );
93 
96  virtual void slot_channelToBeDestroyed( DtChannelManager*, DtChannel* channel );
97 
100  void initializeTerrainInformation();
101 
104  virtual void terrainChanged(const DtTerrainPatch&);
105 
109  virtual double computeHighestTerrainPoint(DtChannel*) const;
110 
111  protected:
113 
114  typedef std::map<intptr_t, ChannelUpdateCallback> CallbacksList;
116 
119  typedef std::map<DtChannel*, ChannelUpdateData> ChannelUpdateDataMap;
121 
125 
129  };
130 }
Virtual base class.
Definition: DtVirtualBaseClass.h:19
bool operator==(const ChannelUpdateData &rhs) const
Camera orientation.
Definition: DtTacticalGraphicModelUpdaterManager.h:42
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
boost::function< void(ChannelUpdateData)> ChannelUpdateCallback
Function prototype for adding callback method to the model update manager.
Definition: DtTacticalGraphicModelUpdaterManager.h:56
DtDe & myDe
Definition: DtTacticalGraphicModelUpdaterManager.h:112
The DtTacticalGraphicModelUpdaterManager class manages tactical graphics that want to be updated by c...
Definition: DtTacticalGraphicModelUpdaterManager.h:30
ChannelUpdateDataMap myChannelUpdateData
Definition: DtTacticalGraphicModelUpdaterManager.h:120
DtTaitBryan orientation
How much the channel camera is zoomed in/out on the terrain.
Definition: DtTacticalGraphicModelUpdaterManager.h:40
A container for a single piece of terrain, containing settings needed to recreate it...
Definition: DtTerrainPatch.h:40
bool operator!=(const ChannelUpdateData &rhs) const
Definition: DtTacticalGraphicModelUpdaterManager.h:49
The abstract Channel Class.
Definition: DtChannel.h:30
Structure used to supply data to callback.
Definition: DtTacticalGraphicModelUpdaterManager.h:35
Contains makVrv::DtVirtualBaseClass class.
double viewResolution
Definition: DtTacticalGraphicModelUpdaterManager.h:38
bool myComputeHighestTerrainPoint
Set to true if bounding volume of terrain needs to be recalculated on next access.
Definition: DtTacticalGraphicModelUpdaterManager.h:128
DtChannel * channel
Definition: DtTacticalGraphicModelUpdaterManager.h:37
std::map< intptr_t, ChannelUpdateCallback > CallbacksList
Definition: DtTacticalGraphicModelUpdaterManager.h:114
Base class for handling DtChannels.
Definition: DtChannelManager.h:32
CallbacksList myCallbacks
Definition: DtTacticalGraphicModelUpdaterManager.h:115
Contains DLL export macros.
std::map< DtChannel *, ChannelUpdateData > ChannelUpdateDataMap
Current channel update data such that can check if channel updates need to be called.
Definition: DtTacticalGraphicModelUpdaterManager.h:119
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
double myHighestTerrainPoint
Calculated height above terrain of the highest point of the terrain based on its bounding sphere...
Definition: DtTacticalGraphicModelUpdaterManager.h:124

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)