VR-Link API Documentation for HLA 1.3
 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 #include "messages/beamDiscovery.h"
13 #include "messages/beamState.h"
14 #include "messages/beamRemoved.h"
16 #include "messages/emitterState.h"
18 
19 #include <string>
20 #include <map>
21 
22 #include <matrix/vlVector.h>
23 
24 class DtMessage;
25 class DtManagedInterface;
26 class DtReflected;
31 
32 #ifdef DtHLA
33 // Beams are only separate classes in HLA
36 #endif
37 
39 {
40 public:
41  virtual ~DtEmitterStateStrategy();
42 
43  std::string name();
44  static std::string theName();
45 
46  virtual bool init();
47  virtual void tick();
48  virtual void shutdown();
49 
50  static DtLinkStrategy* create(DtManagedInterface* gl);
51 
52 protected:
54 
55  std::string formEmitterId(const std::string& hostIdStr, unsigned char emitterIndex) const;
56 
57  void handleCSharpEmitterDiscovered(DtMessage* msg);
58  static void vrlEmitterDiscovered(DtReflectedEmitterSystem* emitter, void* usr);
59  void handleVrlEmitterDiscovered(DtReflectedEmitterSystem* emitter);
60 
61  void handleCSharpEmitterState(DtMessage* msg);
62  static void vrlEmitterState(DtReflectedEmitterSystem* emitter, void* usr);
63  void handleVrlEmitterState(DtReflectedEmitterSystem* emitter);
64 
65  void handleCSharpEmitterRemoved(DtMessage* msg);
66  static void vrlEmitterRemoved(DtReflectedEmitterSystem* emitter, void* usr);
67  void handleVrlEmitterRemoved(DtReflectedEmitterSystem* emitter);
68 
71 
72  void handleCSharpBeamDiscovered(DtMessage* msg);
73  void handleCSharpBeamState(DtMessage* msg);
74  void handleCSharpBeamRemoved(DtMessage* msg);
75 
76  void sendBeamDiscoveredMessage(DtEmitterBeamRepository* repo);
77  void sendBeamStateMessage(DtEmitterBeamRepository* repo, DtTime timeStamp);
78  void sendBeamRemovedMessage(DtEmitterBeamRepository* repo);
79 
80  // Beams are published by their emitter publishers.
81 
82  // Reflected beams are only separate objects in HLA.
83 #ifdef DtHLA
84  static void vrlBeamDiscovered(DtReflectedEmitterBeam* beam, void* usr);
85  void handleVrlBeamDiscovered(DtReflectedEmitterBeam* beam);
86 
87  static void vrlBeamState(DtReflectedEmitterBeam* beam, void* usr);
88  void handleVrlBeamState(DtReflectedEmitterBeam* beam);
89 
90  static void vrlBeamRemoved(DtReflectedEmitterBeam* beam, void* usr);
91  void handleVrlBeamRemoved(DtReflectedEmitterBeam* beam);
92 
94 #endif
95 
96  static std::string theStrategyName;
97 
101 
105 };

Document ID: Generated on Mon Jun 22 21:18:40 EDT 2020 from SVN revision 213785
Copyright © 2005-2018 MAK Technologies. All Rights Reserved (www.mak.com)