VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
scenarioService.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2021 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
7 
8 #pragma once
9 
12 #include "vrfutil/rwActivities.h"
15 #include "vlutil/vlFilename.h"
16 #include <tbb/spin_rw_mutex.h>
17 
19 class DtSimMessage;
20 
23 {
24 private:
27 
28 public:
30  virtual ~DtScenarioService();
31 
33  virtual double dateAndTimeOfDay() const override;
34 
35  virtual void setActivities(const DtRwActivities& r) override;
36  virtual const DtRwActivities& activities() const override;
37 
38  virtual void setScenarioFilename(const DtFilename&) override;
39  virtual const DtFilename& scenarioFilename() const override;
40 
41  virtual DtFrameMode scenarioFrameMode() const override;
42  virtual void setScenarioFrameMode(DtFrameMode frameMode) override;
43 
45  virtual void setRollUpRules(const DtAssembliesReaderWriter::RwRootNode&) override;
46 
48  virtual const DtAssembliesReaderWriter::RwRootNode& rollUpRules() const override;
49 
55 
59  virtual bool hasPermissionToDisplayTaskVisualizations(const DtUUID& uuid) override;
60  virtual void stopCurrentTaskVisualizations(const DtUUID& uuid) override;
61 
63  virtual void setMaxObjectsWithTaskVisualizations(unsigned max) override;
64  virtual unsigned maxObjectsWithTaskVisualizations() const override;
65 
68  virtual void setUseDrawControlForTaskVisualizations(bool) override;
69  virtual bool useDrawControlForTaskVisualizations() const override;
71 
73  virtual void enableAutoReorganization() override;
74  virtual void disableAutoReorganization() override;
76  virtual bool autoReorganizeEnabled() const override;
77 
81  virtual void setScenarioImportData(const DtImportScenarioData& d) override;
82  virtual void clearScenarioImportData() override;
83  virtual bool importingScenario() const override;
84  virtual const DtImportScenarioData& scenarioImportData() override;
86 
87  virtual void setLoadingScenario(bool b) override;
88  virtual bool loadingScenario() const override;
89 
93  virtual void setSearchPaths(const DtReaderWriter::SearchPaths&) override;
94  virtual const DtReaderWriter::SearchPaths& searchPaths() const override;
96 
100  virtual const DtSubordinateFunctionTable& subordinateFunctionTable() const override;
101 
103  virtual void advanceFrame() override;
104  virtual bool setNextFrameEmbarkedOn(const DtUUID& object, const DtUUID& embarkingOn) override;
105 
106 protected:
109  static void autoReorganizeCallback(DtSimMessage* msg, void* usr);
110  virtual void processAutoReorganize(DtSimMessage* msg);
111  virtual bool wouldBeRecursiveAttach(const DtUUID& object, const DtUUID& embarkingOn) const;
112  virtual DtUUID nextFrameEmbarkedOn(const DtUUID& object) const;
113 
114 protected:
116 
117  DtFilename myScenarioFilename;
121 
123 
130 
134 
137 
138  tbb::spin_rw_mutex myEmbarkingMutex;
139  typedef std::map<DtUUID, DtUUID> NextFrameEmbarkedOn;
141 };
142 
UUID is a unique ID wrapper class.
Definition: uuid.h:59
virtual void setScenarioImportData(const DtImportScenarioData &d)=0
bool myAutoReorganizeFlag
Definition: scenarioService.h:129
DtFrameMode myScenarioFrameMode
Definition: scenarioService.h:118
std::set< DtUUID > myObjectsWithTaskVisualizations
Definition: scenarioService.h:125
virtual bool hasPermissionToDisplayTaskVisualizations(const DtUUID &uuid)=0
Called by an entity&#39;s task manager to determine if it has permission to display task visualizations...
virtual void advanceFrame()=0
Code for making sure that embarkation would not be recursive this frame.
virtual void setActivities(const DtRwActivities &r)=0
std::map< DtUUID, DtUUID > NextFrameEmbarkedOn
Definition: scenarioService.h:139
virtual void setUseDrawControlForTaskVisualizations(bool)=0
Publish task visualizations as VRV draw control objects rather than their standard, VR-Forces specific format.
DtRwActivities myActivities
Definition: scenarioService.h:119
virtual void clearScenarioImportData()=0
virtual const std::vector< DtFilename > & searchPaths() const =0
virtual const DtFilename & scenarioFilename() const =0
This class handles all operations involving scenarios.
Definition: scenarioService.h:22
virtual bool useDrawControlForTaskVisualizations() const =0
Called by an entity&#39;s task manager to determine if it has permission to display task visualizations...
unsigned myMaxObjectsWithTaskVisualizations
Definition: scenarioService.h:127
DtFilename myScenarioFilename
Definition: scenarioService.h:117
Definition: assembliesReaderWriter.h:31
virtual void setScenarioFrameMode(DtFrameMode framemode)=0
virtual DtFrameMode scenarioFrameMode() const =0
Structure that is used during scenario import to determine what to do with the import data...
Definition: loadScenarioData.h:21
Service interface for checking and altering scenario wide properties.
Definition: scenarioServiceInterface.h:30
virtual void stopCurrentTaskVisualizations(const DtUUID &uuid)=0
Called by an entity&#39;s task manager to determine if it has permission to display task visualizations...
virtual void setSearchPaths(const std::vector< DtFilename > &)=0
Search paths used to load information in this scenario.
virtual void setTaskVisualizationPublicationMode(DtTaskVisualizationPublicationMode mode)=0
Called by an entity&#39;s task manager to determine if it has permission to display task visualizations...
DtSubordinateFunctionTable mySubordinateFunctionTable
Definition: scenarioService.h:136
virtual void setRollUpRules(const DtAssembliesReaderWriter::RwRootNode &)=0
Sets the roll up rules to be used when organizing state and parameter data.
virtual const DtImportScenarioData & scenarioImportData()=0
virtual DtSubordinateFunctionTable & subordinateFunctionTable()=0
returns a map of string key-value pairs representing subordinateFunction handles and role name text ...
tbb::spin_rw_mutex myEmbarkingMutex
Definition: scenarioService.h:138
NextFrameEmbarkedOn myNextFrameEmbarkedOn
Definition: scenarioService.h:140
virtual void setLoadingScenario(bool b)=0
bool myLoadingScenario
Definition: scenarioService.h:132
virtual const DtAssembliesReaderWriter::RwRootNode & rollUpRules() const =0
Roll up rules.
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
DtScenarioServiceInterface & operator=(const DtScenarioServiceInterface &)
Not implemented.
virtual bool setNextFrameEmbarkedOn(const DtUUID &object, const DtUUID &embarkingOn)=0
Return true if this object can be embarked on the other object next frame.
File: simMsg.h.
Definition: simMessage.h:35
tbb::spin_rw_mutex myObjectsWithTaskVisualizationsMutex
Definition: scenarioService.h:126
virtual bool importingScenario() const =0
virtual DtTaskVisualizationPublicationMode taskVisualizationPublicationMode() const =0
Called by an entity&#39;s task manager to determine if it has permission to display task visualizations...
std::vector< DtFilename > SearchPaths
Definition: readerWriter.h:92
bool myImportingScenario
Definition: scenarioService.h:133
virtual const DtRwActivities & activities() const =0
bool myWarnedAboutTaskVisLimit
Definition: scenarioService.h:128
DtTaskVisualizationPublicationMode myTaskVisualizationPublicationMode
Definition: scenarioService.h:122
virtual bool autoReorganizeEnabled() const =0
Returns true if auto-reorganization is enabled, false if not.
virtual double dateAndTimeOfDay() const =0
Date and time of day of currently running scenario.
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:96
virtual void disableAutoReorganization()=0
virtual void setScenarioFilename(const DtFilename &)=0
virtual void enableAutoReorganization()=0
Enables/disables auto reorganization of pseudo-aggregates.
vrlink
Definition: subordinateFunctionTable.h:20
DtImportScenarioData myScenarioImportData
Definition: scenarioService.h:131
const char int mode
Definition: ioapi.h:38
virtual void setMaxObjectsWithTaskVisualizations(unsigned max)=0
Maximum number of objects with enabled task visualizations.
DtReaderWriter::SearchPaths mySearchPaths
Definition: scenarioService.h:135
DtFrameMode
Definition: messageTypes.h:459
bool myUseDrawControlForTaskVisualizations
Definition: scenarioService.h:124
virtual unsigned maxObjectsWithTaskVisualizations() const =0
Called by an entity&#39;s task manager to determine if it has permission to display task visualizations...
A DtRwActivities list will contain a list of activities (key/value pair) by entity type that will sup...
Definition: rwActivities.h:20
DtSimulationServices * mySimulationServices
Definition: scenarioService.h:115
virtual bool loadingScenario() const =0
DtAssembliesReaderWriter::RwRootNode myRollUpRules
Definition: scenarioService.h:120
DtTaskVisualizationPublicationMode
Defines how task visualizations will be published.
Definition: scenarioServiceInterface.h:22

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)