VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtSimData.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 #include <vrvCore/vrvCore.h>
12 #include <vrvCore/DtUniqueID.h>
13 #include <vrvUtil/signalslib.h>
14 
15 #include <unordered_map>
16 
17 namespace makVrv
18 {
19  class DtDe;
20  class DtSimEntry;
21  class DtSimObjectEntry;
22  class DtSimEventEntry;
23  class DtVirtualBaseClass;
24  struct DtSimState;
25 
26 
33  {
34 
35  public:
36 
38  typedef std::unordered_map<DtUniqueID, DtSimEntry*> SimEntryMap;
39 
41  typedef void (*SignalerAccessorFunction)(DtSimData&);
42 
43 
45  DtSimData(DtDe& de);
46 
48  ~DtSimData();
49 
51  void addEntry(DtUniqueID id);
52 
54  void removeEntry(DtUniqueID id);
55 
58  bool addStateToSimEntry(DtUniqueID id, DtSimState* state);
59 
62  bool removeStateFromSimEntry(DtUniqueID id, DtSimState* state);
63 
65  const DtSimEntry* findSimEntry(DtUniqueID id) const;
66 
68  DtSimEntry* findSimEntry(DtUniqueID id);
69 
71  const SimEntryMap& simEntryMap();
72 
75  void addStateToSimEvent(DtSimState* state);
76 
80  void signalEvent();
81 
83  void addEventSignaler(SignalerAccessorFunction accessor,
84  DtVirtualBaseClass* instance);
85 
87  DtVirtualBaseClass* findEventSignaler(SignalerAccessorFunction accessor);
88 
90  boost::signalslib::signal<void (DtSimObjectEntry&)> signal_simObjectEntryAdded;
91 
93  boost::signalslib::signal<void (DtSimObjectEntry&)> signal_simObjectEntryToBeRemoved;
94 
96  boost::signalslib::signal<void (DtSimObjectEntry&, DtSimState&)> signal_simStateAdded;
97 
100  boost::signalslib::signal<void (DtSimObjectEntry&, DtSimState&)> signal_simStateToBeRemoved;
101 
103  boost::signalslib::signal<void (DtSimEventEntry&)> signal_simEventTriggered;
104 
105  protected:
106 
108  DtSimEventEntry& entry();
109 
110  protected:
111 
112  typedef std::unordered_map<SignalerAccessorFunction,
114 
119 
120  };
121 }
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
DtDe & myDe
Definition: DtSimData.h:115
The DtSimData is the repository for simulation specific, read only data. The DtSimData has a map of D...
Definition: DtSimData.h:32
std::unordered_map< SignalerAccessorFunction, DtVirtualBaseClass * > SignalerMap
Definition: DtSimData.h:113
A DtSimEventEntry is an entry for a event like an interaction.
Definition: DtSimEventEntry.h:22
A DtSimEntry is a container of DtSimState&#39;s and represents the total state of an simulation object...
Definition: DtSimEntry.h:27
SimEntryMap mySimEntryMap
Definition: DtSimData.h:116
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
SignalerMap myEventSignalers
Definition: DtSimData.h:118
boost::signalslib::signal< void(DtSimEventEntry &)> signal_simEventTriggered
Signal emitted when a simulation event occurs.
Definition: DtSimData.h:103
boost::signalslib::signal< void(DtSimObjectEntry &)> signal_simObjectEntryAdded
Signal emitted when a DtSimObjectEntry is added.
Definition: DtSimData.h:90
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
boost::signalslib::signal< void(DtSimObjectEntry &, DtSimState &)> signal_simStateAdded
Signal emitted when a DtSimState is added to a DtSimEntry.
Definition: DtSimData.h:96
boost::signalslib::signal< void(DtSimObjectEntry &, DtSimState &)> signal_simStateToBeRemoved
Signal emitted when a DtSimEntry is about to be removed from a DtSimObjectEntry.
Definition: DtSimData.h:100
A DtSimState is the base class for all state objects. Derived instances of DtSimState will be created...
Definition: DtSimState.h:19
Contains makVrv::DtUniqueID type.
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
DtSimEventEntry * myEventEntry
Definition: DtSimData.h:117
std::unordered_map< DtUniqueID, DtSimEntry * > SimEntryMap
Map of unique id&#39;s to DtSimEntry&#39;s.
Definition: DtSimData.h:38
boost::signalslib::signal< void(DtSimObjectEntry &)> signal_simObjectEntryToBeRemoved
Signal emitted when a DtSimObjectEntry is about to be removed.
Definition: DtSimData.h:93
Contains DLL export macros.

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)