VR-Link API Documentation for HLA 1.3
Home
Namespaces
Classes
Files
Examples
Libraries
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
include
strategies
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
"
9
#include "
managedInterface/linkStrategy.h
"
10
#include "
managedInterface/managedInterface.h
"
11
#include "
managedInterface/publisherList.h
"
12
#include "
messages/beamDiscovery.h
"
13
#include "
messages/beamState.h
"
14
#include "
messages/beamRemoved.h
"
15
#include "
messages/emitterDiscovery.h
"
16
#include "
messages/emitterState.h
"
17
#include "
messages/emitterRemoved.h
"
18
19
#include <string>
20
#include <map>
21
22
#include <
matrix/vlVector.h
>
23
24
class
DtMessage
;
25
class
DtManagedInterface
;
26
class
DtReflected;
27
class
DtReflectedEmitterSystem
;
28
class
DtReflectedEmitterSystemList
;
29
class
DtEmitterSystemPublisher
;
30
class
DtEmitterBeamRepository
;
31
32
#ifdef DtHLA
33
// Beams are only separate classes in HLA
34
class
DtReflectedEmitterBeam
;
35
class
DtReflectedEmitterBeamList
;
36
#endif
37
38
class
MANAGEDINTERFACE_MODULE_DLL
DtEmitterStateStrategy
:
public
DtLinkStrategy
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
:
53
DtEmitterStateStrategy
(
DtManagedInterface
* link);
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
69
DtReflectedEmitterSystemList
*
myReflectedEmitters
;
70
DtPublisherList<DtEmitterSystemPublisher>
*
myEmitterPubs
;
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
93
DtReflectedEmitterBeamList
*
myReflectedBeams
;
94
#endif
95
96
static
std::string
theStrategyName
;
97
98
DtMessageDelegate
*
myEmitterDiscoveredHandler
;
99
DtMessageDelegate
*
myEmitterStateHandler
;
100
DtMessageDelegate
*
myEmitterRemovedHandler
;
101
102
DtMessageDelegate
*
myBeamDiscoveredHandler
;
103
DtMessageDelegate
*
myBeamStateHandler
;
104
DtMessageDelegate
*
myBeamRemovedHandler
;
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
)