VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
objectDataInterface.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 isValid() const;
90 
92  virtual bool hasBeenRemoved() const;
93 
95  virtual bool isVisible() const;
96 
100  virtual void setVisible(bool);
101 
103  virtual bool isSelected() const;
104 
106  virtual void removeFromSelection();
107 
109  virtual void addToSelection(bool replace = false);
110 
111  public:
113  boost::signals2::signal<void ()> signal_dataUpdated;
114 
116  boost::signals2::signal<void ()> signal_dataRemoved;
117 
118  protected:
120  virtual void slot_simObjectEntryAboutToBeRemoved(makVrv::DtSimObjectEntry&);
121 
123  virtual DtVector geocentricVectorToLocalVector(const DtVector& localLocation, const DtVector& geocVector) const;
124 
126  virtual void slot_onStateViewUpdated();
127 
128  protected:
131  };
132 
133  typedef DtBoost::shared_ptr<DtObjectDataInterface> DtObjectDataInterfacePtr;
134 
136  {
137  public:
138  virtual DtObjectDataInterface* create(makVrv::DtDe&) const = 0;
139  };
140 
142  template <typename T>
144  {
145  protected:
146  DtObjectDataInterface* create(makVrv::DtDe& de) const { return new T(de); };
147  };
148 
150  {
151  public:
154 
157 
159  static void registerInstance(makVrv::DtDe& de, DtObjectDataInterfaceCreationFactory* instance);
160 
162  void addNetworkDataInterfaceCreator(makVrv::DtElementEntry::ElementType, DtObjectDataInterfaceCreatorInterface*);
163 
164  virtual DtObjectDataInterface* createNetworkDataInterface(makVrv::DtElementEntry::ElementType);
165 
166  protected:
167  typedef std::map<int, DtObjectDataInterfaceCreatorInterface*> DataCreatorMap;
168 
171  };
172 }
Definition: objectDataInterface.h:149
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
std::map< int, DtObjectDataInterfaceCreatorInterface * > DataCreatorMap
Definition: objectDataInterface.h:167
makVrv::DtDe & myDe
Definition: objectDataInterface.h:170
Contains makVrv::DtStateViewCollection class.
static DtBoost::shared_ptr< T_ObjectDataInterfaceType > cast(DtBoost::shared_ptr< DtObjectDataInterface > dataInterface)
This is a convenience method for casting a DtBoost::shared_ptr to a DtObjectDataInterface to a derive...
Definition: objectDataInterface.h:68
UpdateRate
Definition: DtSimEntryUpdater.h:31
Definition: objectDataInterface.h:135
makVrv::DtDe & myDe
Definition: objectDataInterface.h:129
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:23
DtBoost::shared_ptr< DtObjectDataInterface > DtObjectDataInterfacePtr
Definition: objectDataInterface.h:133
DtObjectDataInterface * create(makVrv::DtDe &de) const
Definition: objectDataInterface.h:146
A DtSimObjectEntry is an entry for a persistent simulation object like an entity. ...
Definition: DtSimObjectEntry.h:22
boost::signals2::signal< void()> signal_dataUpdated
Signal sent when any of this items data has been updated.
Definition: objectDataInterface.h:113
The DtObjectDataInterface class is a wrapper around state views to give access to convenience methods...
Definition: objectDataInterface.h:43
Contains makVrv::DtVrlinkSimulatedEntityState class.
ElementType
Definition: DtElementEntry.h:26
boost::signals2::signal< void()> signal_dataRemoved
Signal send when this items data has been removed.
Definition: objectDataInterface.h:116
makVrv::DtStateView< makVrv::DtSimState > * myStateView
Definition: objectDataInterface.h:130
Representation
Use these enums in various information methods to return data in local or world coordinates.
Definition: objectDataInterface.h:47
Contains makVrv::DtSimEntryUpdater class.
DT_DLL_vrfutil void geocentricVectorToLocalVector(const DtVector &geocentricPosition, const DtVector &geocentricVector, const Coordinate_System &coordinateSystem, DtVector &localVector)
Transforms a vector in geocentric coordinates to local (database) coordinates. Inputs: geocentricPosi...
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:72
DataCreatorMap myDataCreatorMap
Definition: objectDataInterface.h:169
Templated class implementation. Create on and pass into the factory.
Definition: objectDataInterface.h:143
Contains makVrv::DtElementEntry class.

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)