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 
32  virtual void setActivities(const DtRwActivities& r);
33  virtual const DtRwActivities& activities() const;
34 
35  virtual void setScenarioFilename(const DtFilename&);
36  virtual const DtFilename& scenarioFilename() const;
37 
40 
43 
49 
53  virtual bool hasPermissionToDisplayTaskVisualizations(const DtUUID& uuid);
54  virtual void stopCurrentTaskVisualizations(const DtUUID& uuid);
55 
57  virtual void setMaxObjectsWithTaskVisualizations(unsigned max);
58  virtual unsigned maxObjectsWithTaskVisualizations() const;
59 
62  virtual void setUseDrawControlForTaskVisualizations(bool);
63  virtual bool useDrawControlForTaskVisualizations() const;
65 
67  virtual void enableAutoReorganization();
68  virtual void disableAutoReorganization();
70  virtual bool autoReorganizeEnabled() const;
71 
75  virtual void setScenarioImportData(const DtImportScenarioData& d);
76  virtual void clearScenarioImportData();
77  virtual bool importingScenario() const;
80 
81  virtual void setLoadingScenario(bool b);
82  virtual bool loadingScenario() const;
83 
87  virtual void setSearchPaths(const DtReaderWriter::SearchPaths&);
88  virtual const DtReaderWriter::SearchPaths& searchPaths() const;
90 
95 
97  virtual void advanceFrame();
98  virtual bool setNextFrameEmbarkedOn(const DtUUID& object, const DtUUID& embarkingOn);
99 
100 protected:
103  static void autoReorganizeCallback(DtSimMessage* msg, void* usr);
104  virtual void processAutoReorganize(DtSimMessage* msg);
105  virtual bool wouldBeRecursiveAttach(const DtUUID& object, const DtUUID& embarkingOn) const;
106  virtual DtUUID nextFrameEmbarkedOn(const DtUUID& object) const;
107 
108 protected:
110 
111  DtFilename myScenarioFilename;
114 
116 
123 
127 
130 
131  tbb::spin_rw_mutex myEmbarkingMutex;
132  typedef std::map<DtUUID, DtUUID> NextFrameEmbarkedOn;
134 };
135 
UUID is a unique ID wrapper class.
Definition: uuid.h:59
virtual void setScenarioImportData(const DtImportScenarioData &d)=0
bool myAutoReorganizeFlag
Definition: scenarioService.h:122
std::set< DtUUID > myObjectsWithTaskVisualizations
Definition: scenarioService.h:118
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:132
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:112
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:120
DtFilename myScenarioFilename
Definition: scenarioService.h:111
Definition: assembliesReaderWriter.h:31
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:29
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:129
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:131
NextFrameEmbarkedOn myNextFrameEmbarkedOn
Definition: scenarioService.h:133
virtual void setLoadingScenario(bool b)=0
bool myLoadingScenario
Definition: scenarioService.h:125
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:119
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:126
virtual const DtRwActivities & activities() const =0
bool myWarnedAboutTaskVisLimit
Definition: scenarioService.h:121
DtTaskVisualizationPublicationMode myTaskVisualizationPublicationMode
Definition: scenarioService.h:115
virtual bool autoReorganizeEnabled() const =0
Returns true if auto-reorganization is enabled, false if not.
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:94
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:124
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:128
bool myUseDrawControlForTaskVisualizations
Definition: scenarioService.h:117
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:109
virtual bool loadingScenario() const =0
DtAssembliesReaderWriter::RwRootNode myRollUpRules
Definition: scenarioService.h:113
DtTaskVisualizationPublicationMode
Defines how task visualizations will be published.
Definition: scenarioServiceInterface.h:21

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)