VR-Link API Documentation for HLA 1516
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
emitter.h
Go to the documentation of this file.
1 /*********************************************************************************
2 ** Copyright (c) 2018 MAK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************************/
5 
6 #pragma once
7 
8 #include "strategies/export.h"
12 
13 #include <string>
14 #include <map>
15 
16 #include <vl/trackJamDesignator.h>
18 #include <matrix/vlVector.h>
19 #include <vlutil/vlTime.h>
20 
21 class DtMessage;
22 class DtManagedInterface;
23 class DtExerciseConn;
24 class DtReflected;
29 
30 #ifdef DtHLA
31 // Beams are only separate classes in HLA
34 #endif
35 
37 {
38 public:
39  virtual ~DtEmitterStateStrategy();
40 
41  std::string name();
42  static std::string theName();
43 
44  virtual bool init();
45  virtual void tick();
46  virtual void shutdown();
47 
48  static DtLinkStrategy* create(DtManagedInterface* gl);
49 
50 protected:
52 
53  void handleCSharpEmitterDiscovered(DtMessage* msg);
54  static void vrlEmitterDiscovered(DtReflectedEmitterSystem* emitter, void* usr);
55  void handleVrlEmitterDiscovered(DtReflectedEmitterSystem* emitter);
56 
57  void handleCSharpEmitterState(DtMessage* msg);
58  static void vrlEmitterState(DtReflectedEmitterSystem* emitter, void* usr);
59  void handleVrlEmitterState(DtReflectedEmitterSystem* emitter);
60 
61  void handleCSharpEmitterRemoved(DtMessage* msg);
62  static void vrlEmitterRemoved(DtReflectedEmitterSystem* emitter, void* usr);
63  void handleVrlEmitterRemoved(DtReflectedEmitterSystem* emitter);
64 
67 
68  void handleCSharpBeamDiscovered(DtMessage* msg);
69  void handleCSharpBeamState(DtMessage* msg);
70  void handleCSharpBeamRemoved(DtMessage* msg);
71 
72  void sendBeamDiscoveredMessage(const std::string& hostGlobalId, int emitterNumber, DtEmitterBeamRepository* repo);
73  void sendBeamStateMessage(const std::string& hostGlobalId, int emitterNumber, DtEmitterBeamRepository* repo, DtTime timeStamp);
74  void sendBeamRemovedMessage(const std::string& hostGlobalId, int emitterNumber, DtEmitterBeamRepository* repo);
75 
76  DtTrackJamDesignator& makeTrackJamDesignator(DtTrackJamDesignator& designator, const std::string& designatorString);
77 
78  // Beams are published by their emitter publishers.
79 
80  // Reflected beams are only separate objects in HLA.
81 #ifdef DtHLA
82  static void vrlBeamDiscovered(DtReflectedEmitterBeam* beam, void* usr);
83  void handleVrlBeamDiscovered(DtReflectedEmitterBeam* beam);
84 
85  static void vrlBeamState(DtReflectedEmitterBeam* beam, void* usr);
86  void handleVrlBeamState(DtReflectedEmitterBeam* beam);
87 
88  static void vrlBeamRemoved(DtReflectedEmitterBeam* beam, void* usr);
89  void handleVrlBeamRemoved(DtReflectedEmitterBeam* beam);
90 
92 #endif
93 
94  static std::string theStrategyName;
95  const char* myIdTag = "emit";
96 
98 
102 
106 };
Instances of DtExerciseConn are used to provide an application&#39;s interface or connection to the netwo...
Definition: exerciseConnHLA.h:60
DtReflectedEmitterBeamList * myReflectedBeams
Definition: emitter.h:91
DtMessageDelegate * myEmitterStateHandler
Definition: emitter.h:100
Contains the DtTrackJamDesignator class declaration.
This file contains the declaration of DtClock and DtTime.
DtMessageDelegate * myEmitterDiscoveredHandler
Definition: emitter.h:99
DtMessageDelegate * myBeamStateHandler
Definition: emitter.h:104
class DtReflectedEmitterBeam:
Definition: reflectedEmitterBeamHLA.h:32
DtExerciseConn * myExconn
Definition: emitter.h:97
#define MANAGEDINTERFACE_MODULE_DLL
Definition: export.h:34
Instances of DtReflectedEmitterBeamList manage the list of of remote EmitterBeams in the exercise...
Definition: reflectedEmitterBeamListHLA.h:20
This is the DtMessage class.
Definition: message.h:20
This file declares DtVector and DtVector32.
The DtManagedInterface Class is a singleton that is used to manage the message flow between C# and th...
Definition: managedInterface.h:49
Instances of DtReflectedEmitterSystemList manage the list of of remote EmitterSystems in the exercise...
Definition: reflectedEmitterSystemListHLA.h:21
class DtEmitterBeamRepository:
Definition: emitterBeamRepository.h:40
DtMessageDelegate * myBeamRemovedHandler
Definition: emitter.h:105
DtMessageDelegate * myEmitterRemovedHandler
Definition: emitter.h:101
static std::string theStrategyName
Definition: emitter.h:94
DtReflectedEmitterSystemList * myReflectedEmitters
Definition: emitter.h:65
Definition: emitter.h:36
DtPublisherList< DtEmitterSystemPublisher > * myEmitterPubs
Definition: emitter.h:66
Instances of DtEmitterSystemPublisher are used for local or source simulations of emitter systems...
Definition: emitterSystemPublisherHLA.h:22
Defines the DtManagedInterface Singleton object that manages the message flow between C# and the rest...
Defines a template for maintaining a list of VR-Link Publisher objects.
Instances of DtString are used to represent strings.
Definition: vlString.h:29
Delegate template for binding static or member functions for callback at later time The return type a...
Definition: delegate.h:69
DtMessageDelegate * myBeamDiscoveredHandler
Definition: emitter.h:103
Instances of DtReflectedEmitterSystem represent EmitterSystem objects simulated by remote application...
Definition: reflectedEmitterSystemHLA.h:28

Document ID: Generated on Mon Apr 25 03:39:01 EDT 2022 from SVN revision 242502
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)