VR-Forces 4.1 Class Documentation
DtObjectDataInterface.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2012 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 #include <vrfGuiCore/vrfGuiCore.h>
14 #include <vrvCore/DtElementEntry.h>
15 #include <vrvCore/DtEntityState.h>
19 
20 namespace makVrf
21 {
44  {
45  public:
48  {
49  Local = 0,
50  World = 1
51  };
52 
53  public:
55  virtual ~DtObjectDataInterface();
56 
59  makVrv::DtElementID elementID() const;
60 
63  virtual makVrv::DtElementEntry::ElementType type() const;
64 
67  template<typename T_ObjectDataInterfaceType>
68  static DtBoost::shared_ptr<T_ObjectDataInterfaceType> cast(DtBoost::shared_ptr<DtObjectDataInterface> dataInterface)
69  {
70  return DtBoost::dynamic_pointer_cast<T_ObjectDataInterfaceType>(dataInterface);
71  }
72 
78 
80  virtual void setStateView(const makVrv::DtStateView<makVrv::DtSimState>* s);
81 
83  makVrv::DtSimEntryUpdater::UpdateRate updateRate() const;
84 
86  virtual void forceUpdate();
87 
89  virtual bool hasBeenRemoved() const;
90 
92  virtual bool isVisible() const;
93 
97  virtual void setVisible(bool);
98 
100  virtual bool isSelected() const;
101 
103  virtual void removeFromSelection();
104 
106  virtual void addToSelection(bool replace = false);
107 
108  public:
110  boost::signal<void ()> signal_dataUpdated;
111 
113  boost::signal<void ()> signal_dataRemoved;
114 
115  protected:
117  virtual void slot_simObjectEntryAboutToBeRemoved(makVrv::DtSimObjectEntry&);
118 
120  virtual DtVector geocentricVectorToLocalVector(const DtVector& localLocation, const DtVector& geocVector) const;
121 
123  virtual void slot_onStateViewUpdated();
124 
125  protected:
128  };
129 
130  typedef DtBoost::shared_ptr<DtObjectDataInterface> DtObjectDataInterfacePtr;
131 
133  {
134  public:
135  virtual DtObjectDataInterface* create(makVrv::DtDe&) const = 0;
136  };
137 
139  template <typename T>
141  {
142  protected:
143  DtObjectDataInterface* create(makVrv::DtDe& de) const { return new T(de); };
144  };
145 
147  {
148  public:
151 
154 
156  static void registerInstance(makVrv::DtDe& de, DtObjectDataInterfaceCreationFactory* instance);
157 
159  void addNetworkDataInterfaceCreator(makVrv::DtElementEntry::ElementType, DtObjectDataInterfaceCreatorInterface*);
160 
161  virtual DtObjectDataInterface* createNetworkDataInterface(makVrv::DtElementEntry::ElementType);
162 
163  protected:
164  typedef std::map<int, DtObjectDataInterfaceCreatorInterface*> DataCreatorMap;
165 
168  };
169 }

Document ID: Generated on Tue Jan 29 18:21:16 EST 2013 from SVN revision 123193
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)