VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
simLocalEntityNetInterface.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2000 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
14 
15 #pragma once
16 
19 #include <vl/globalObjectDesignator.h>
20 #include <tbb/spin_rw_mutex.h>
21 
22 class DtObjectPublisher;
23 
33 
34 namespace makVrf
35 {
36  class DtArticulatedPartStateComponent;
37  class DtStatePropertiesStateComponent;
38  class DtEntityStateComponent;
39  class DtEntityLocationStateComponent;
40  class DtVrfGeometryStateComponent;
41  class DtVrfStateComponent;
42  class DtHumanStateComponent;
43  class DtRangeItemsStateComponent;
44  class DtAisDataStateComponent;
45  class DtAircraftLightingStateComponent;
46  class DtGroundVehicleLightingStateComponent;
47 
49  {
50  private:
54 
56  const DtSimLocalEntityNetInterface & operator=(const
58 
59  public:
60 
63  bool publishObject = true);
64 
67 
70  virtual void onTick();
71 
72  virtual bool publishObject() const
73  {
74  return myPublishObject;
75  }
76 
77  virtual bool init(const DtEntityIdentifier& id = DtEntityIdentifier::nullId());
78 
81  virtual bool publisherUserSupplied() const;
82 
85  virtual void updatePublisher() = 0;
86 
89  virtual bool createPublisher(const DtEntityIdentifier& id = DtEntityIdentifier::nullId()) = 0;
90 
93  virtual void destroyPublisher() = 0;
94 
96  virtual DtObjectPublisher* publisher() = 0;
97 
100  virtual void updateNet();
101 
106  virtual void setupNetworkRepository() = 0;
107 
109  virtual void updateUuid() = 0;
110 
114  static bool isVrfGlobalId(const DtGlobalObjectDesignator& identifier);
115 
117  virtual bool isLocal() const { return true; }
118 
119  virtual bool isAggregate() const = 0;
120 
124  static DtSimLocalEntityNetInterface * isLocalEntityNetInterface(const
125  DtSimObjectNetInterface * objNetInterface);
126 
131  static void setVrfDataTimeThreshold(DtTime time);
132 
133  #ifdef DtDIS
134  static void setHeartbeatVariance(double variance);
138  static double heartbeatVariance();
139  #endif
140 
141  protected:
142  virtual const makVrf::DtEntityStateComponent* entityStateComponent();
143  virtual const makVrf::DtEntityLocationStateComponent* entityLocationStateComponent();
144  virtual const makVrf::DtVrfStateComponent* vrfStateComponent();
145  virtual const makVrf::DtVrfGeometryStateComponent* vrfGeometryStateComponent();
146  virtual const makVrf::DtArticulatedPartStateComponent* articulatedPartStateComponent();
147  virtual const makVrf::DtStatePropertiesStateComponent* statePropertiesStateComponent();
148  virtual const makVrf::DtHumanStateComponent* humanStateComponent();
149  virtual const makVrf::DtRangeItemsStateComponent* rangeItemsStateComponent();
150  virtual const makVrf::DtAisDataStateComponent* aisDataStateComponent();
151  virtual const makVrf::DtAircraftLightingStateComponent* aircraftLightingStateComponent();
152  virtual const makVrf::DtGroundVehicleLightingStateComponent* groundVehicleLightingStateComponent();
153 
154  protected:
156 
158 
159  static double theHeartbeatVariance;
160 
172  };
173 }
1) Define the interface class that will be used to represent the next and curent frames. The UNDEFINED_ macros are convenience macros that will define methods that throw exceptions (until they are implemented)
Definition: groundVehicleLightingStateComponent.h:52
1) Define the interface class that will be used to represent the next and curent frames. The UNDEFINED_ macros are convenience macros that will define methods that throw exceptions (until they are implemented)
Definition: statePropertiesStateComponent.h:93
const makVrf::DtArticulatedPartStateComponent * myArticulatedPartStateComponent
Definition: simLocalEntityNetInterface.h:161
bool myPublishObject
Definition: simLocalEntityNetInterface.h:157
Definition: simLocalEntityNetInterface.h:48
1) Define the interface class that will be used to represent the next and current frames...
Definition: entityStateComponent.h:79
2) Define the interface class that will be used to represent the next and curent frames. The UNDEFINED_ macros are convenience macros that will define methods that throw exceptions (until they are implemented)
Definition: entityLocationStateComponent.h:116
const makVrf::DtAisDataStateComponent * myAisDataStateComponent
Definition: simLocalEntityNetInterface.h:169
In order to be a well defined state component, you must:
Definition: articulatedPartStateComponent.h:59
const makVrf::DtEntityStateComponent * myEntityStateComponent
Definition: simLocalEntityNetInterface.h:163
const makVrf::DtGroundVehicleLightingStateComponent * myGroundVehicleLightingStateComponent
Definition: simLocalEntityNetInterface.h:171
const makVrf::DtVrfGeometryStateComponent * myVrfGeometryStateComponent
Definition: simLocalEntityNetInterface.h:165
const makVrf::DtVrfStateComponent * myVrfStateComponent
Definition: simLocalEntityNetInterface.h:166
1) Define the interface class that will be used to represent the next and curent frames. The UNDEFINED_ macros are convenience macros that will define methods that throw exceptions (until they are implemented)
Definition: rangeItemsStateComponent.h:64
1) Define the interface class that will be used to represent the next and curent frames. The UNDEFINED_ macros are convenience macros that will define methods that throw exceptions (until they are implemented)
Definition: vrfGeometryStateComponent.h:54
1) Define the interface class that will be used to represent the next and curent frames. The UNDEFINED_ macros are convenience macros that will define methods that throw exceptions (until they are implemented)
Definition: vrfStateComponent.h:66
const makVrf::DtHumanStateComponent * myHumanStateComponent
Definition: simLocalEntityNetInterface.h:167
The overall structure of the DtStateData mechanism is: The DtStateData contains a list of double buff...
Definition: stateData.h:339
const makVrf::DtEntityLocationStateComponent * myEntityLocationStateComponent
Definition: simLocalEntityNetInterface.h:164
Class Description: DtSimObjectNetInterface.
Definition: simObjectNetInterface.h:50
Definition: simEntityNetInterface.h:32
virtual bool publishObject() const
Definition: simLocalEntityNetInterface.h:72
In order to be a well defined state component, you must:
Definition: humanStateComponent.h:25
const makVrf::DtAircraftLightingStateComponent * myAircraftLightingStateComponent
Definition: simLocalEntityNetInterface.h:170
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
static double theHeartbeatVariance
Definition: simLocalEntityNetInterface.h:159
virtual bool isLocal() const
This network interface is for local entities.
Definition: simLocalEntityNetInterface.h:117
const makVrf::DtStatePropertiesStateComponent * myStatePropertiesStateComponent
Definition: simLocalEntityNetInterface.h:162
1) Define the interface class that will be used to represent the next and curent frames. The UNDEFINED_ macros are convenience macros that will define methods that throw exceptions (until they are implemented)
Definition: aisDataStateComponent.h:62
bool myPublisherUserSupplied
Definition: simLocalEntityNetInterface.h:155
1) Define the interface class that will be used to represent the next and curent frames. The UNDEFINED_ macros are convenience macros that will define methods that throw exceptions (until they are implemented)
Definition: aircraftLightingStateComponent.h:132
const makVrf::DtRangeItemsStateComponent * myRangeItemsStateComponent
Definition: simLocalEntityNetInterface.h:168

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)