VR-Forces 5.0.1 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
taskVisualizationLocalNetInterface.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
11 #include <vlutil/vlSmartPointers.h>
12 #include <vl/objectPublisher.h>
14 #include <tbb/mutex.h>
15 
23 
24 namespace vrvControlToolkit
25 {
26  class DtLine3DObject;
27 }
28 
29 namespace makVrf
30 {
31  class DtTaskVisualizationPublisherCreator;
32 
34  {
35  private:
38 
41 
44  orig);
45 
46  public:
48  static void ClearBulkProcessors();
49 
51  {
52  public:
54 
55  virtual void tick();
56 
57  #if DtDIS
58  virtual const DtObjectId& localId() const { return DtObjectId::nullId(); };
61  virtual const DtObjectId& id() const { return DtObjectId::nullId(); };
63  virtual const DtGlobalObjectDesignator& globalId() const { return DtObjectId::nullId(); };
64  virtual void forceUpdate() {};
65  #endif
66  protected:
67  vrvControlToolkit::DtDrawControlObject* myDrawControlObject;
68  };
69 
71  {
72  public:
73  LineDrawControl(DtExerciseConn* conn, DtVrlinkNetworkInterface*);
74  virtual ~LineDrawControl();
75 
76  void setVertices(const std::vector<DtTaskVisualizationStateComponentData::LineVertex>&);
77  void update();
78  void clearSegments();
79 
80  std::vector<vrvControlToolkit::DtLine3DObject*>& segments() { return myLineSegments; };
81 
82  protected:
83  std::vector<vrvControlToolkit::DtLine3DObject*> myLineSegments;
84  DtExerciseConn* myExerciseConnection;
86  };
87 
92  DtTaskVisualizationLocalNetInterface(DtStateData * simObject, DtVrlinkNetworkInterface* objectManager, bool publishObject = true);
93 
96 
99  virtual bool init(const DtStateComponent*);
100 
103  virtual DtString type() const;
104 
105  static DtSimObjectNetInterface * creator(
106  DtStateData* vrfObject, DtVrlinkNetworkInterface* mgr, bool publishObject);
107 
108  virtual bool isLocal() const
109  {
110  return true;
111  }
112 
114  static void advanceFrame();
115 
116  virtual bool wantsToCreatePublisher() const;
117 
118  protected:
119  virtual void updatePublisher();
120  virtual DtObjectPublisher* createPublisher(const DtTaskVisualizationStateComponent*);
121  virtual void startVisualizing(const DtTaskVisualizationStateComponent*);
122  virtual void stopVisualizing(const DtTaskVisualizationStateComponent*);
123 
124  static DtGlobalObjectDesignator nextTaskVisualizationGlobalIdCallback(void* usr);
125 
126  virtual void createDrawControlObject(const DtTaskVisualizationStateComponent*);
127 
128  virtual void createLineDrawControl(const DtTaskVisualizationStateComponent*);
129  virtual void createPointDrawControl(const DtTaskVisualizationStateComponent*);
130  virtual void createTextDrawControl(const DtTaskVisualizationStateComponent*);
131  virtual void createAreaDrawControl(const DtTaskVisualizationStateComponent*);
132 
133  virtual void updateLineDrawControl(const DtTaskVisualizationStateComponent*);
134  virtual void updatePointDrawControl(const DtTaskVisualizationStateComponent*);
135  virtual void updateTextDrawControl(const DtTaskVisualizationStateComponent*);
136  virtual void updateAreaDrawControl(const DtTaskVisualizationStateComponent*);
137 
138  virtual DtVector calculateOffsetLocation(const DtVector& location, const DtVector& locationOffset);
139 
140  protected:
143  {
144  ProcessManager() : mutex(new tbb::mutex) {};
145  DtBoost::shared_ptr<DtBulkEnvironmentProcessManager> manager;
146  DtBoost::shared_ptr<tbb::mutex> mutex;
147  std::set<const DtTaskVisualizationStateComponent*> componentsUsing;
148  };
149 
150  typedef std::map<DtUUID, ProcessManager> BulkEnvironmentProcessManagerMap;
152 
155  };
156 }
DtDrawControlObject.h contains the class definition for DtDrawControlObject, the base class from whic...
ProcessManager()
Definition: taskVisualizationLocalNetInterface.h:144
const DtTaskVisualizationStateComponent * myTaskVisualizationComponent
Definition: taskVisualizationLocalNetInterface.h:141
std::vector< vrvControlToolkit::DtLine3DObject * > & segments()
Definition: taskVisualizationLocalNetInterface.h:80
Definition: taskVisualizationLocalNetInterface.h:142
virtual const DtGlobalObjectDesignator & globalId() const
The entityIdentifier unique to this object.
Definition: taskVisualizationLocalNetInterface.h:63
std::map< DtUUID, ProcessManager > BulkEnvironmentProcessManagerMap
Definition: taskVisualizationLocalNetInterface.h:150
Class that creates an environment process publisher for use in task visualizations. Allows environment processes to be bundled into a single bulk environment process.
Definition: taskVisualizationPublisherCreator.h:24
Definition: taskVisualizationLocalNetInterface.h:70
The overall structure of the DtStateData mechanism is: The DtStateData contains a list of double buff...
Definition: stateData.h:336
DtTaskVisualizationPublisherCreator * myEnvProcPublisherCreator
Definition: taskVisualizationLocalNetInterface.h:153
Class Description: DtSimObjectNetInterface.
Definition: simObjectNetInterface.h:48
virtual bool isLocal() const
Is this network interface for a local (true) or remote (false) object? Local network interfaces shoul...
Definition: taskVisualizationLocalNetInterface.h:108
virtual const DtObjectId & id() const
The id is the same as the globalId, a DtEntityIdentifier unique to this object.
Definition: taskVisualizationLocalNetInterface.h:61
std::set< const DtTaskVisualizationStateComponent * > componentsUsing
Definition: taskVisualizationLocalNetInterface.h:147
Definition: localStateComponentNetInterface.h:22
Definition: stateComponent.h:51
static BulkEnvironmentProcessManagerMap theBulkEnvironmentProcessManagerMap
Definition: taskVisualizationLocalNetInterface.h:151
DtDrawControlObject is the base class from which all Draw Control Objects are derived.
Definition: DtDrawControlObject.h:35
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
vrvControlToolkit::DtDrawControlObject * myDrawControl
Definition: taskVisualizationLocalNetInterface.h:154
DtExerciseConn * myExerciseConnection
Definition: taskVisualizationLocalNetInterface.h:84
1) Define the interface class that will be used to represent the next and current frames...
Definition: taskVisualizationStateComponent.h:260
DtBulkEnvironmentProcessManager. A class to manage bulk EnvironmentProcess publishers, ensuring that no publisher handles more individual EnvironmentProcess data than it should.
Definition: bulkEnvironmentProcessManager.h:24
DtVrlinkNetworkInterface * myObjectManager
Definition: taskVisualizationLocalNetInterface.h:85
DtBoost::shared_ptr< tbb::mutex > mutex
Definition: taskVisualizationLocalNetInterface.h:146
Definition: taskVisualizationLocalNetInterface.h:33
A 3D Line Stealth Draw Control Object.
Definition: DtLine3DObject.h:38

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)