VR-Forces 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 bool tick() override;
56 
57  #if DtDIS
58  virtual const DtObjectId& localId() const override { return DtObjectId::nullId(); };
61  virtual const DtObjectId& id() const override { return DtObjectId::nullId(); };
63  virtual const DtGlobalObjectDesignator& globalId() const override { return DtObjectId::nullId(); };
64  virtual void forceUpdate() override {};
65  #endif
66  protected:
67  vrvControlToolkit::DtDrawControlObject* myDrawControlObject;
68  };
69 
71  {
72  public:
73  LineDrawControl(DtExerciseConn* conn, DtVrlinkNetworkInterface*);
74  virtual ~LineDrawControl() override;
75 
76  void setVertices(const std::vector<DtTaskVisualizationStateComponentData::LineVertex>&);
77  virtual void update() override;
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 
95  virtual ~DtTaskVisualizationLocalNetInterface() override;
96 
99  virtual bool init(const DtStateComponent*) override;
100 
103  virtual DtString type() const override;
104 
105  static DtSimObjectNetInterface * creator(
106  DtStateData* vrfObject, DtVrlinkNetworkInterface* mgr, bool publishObject);
107 
108  virtual bool isLocal() const override {
109  return true;
110  }
111 
113  static void advanceFrame();
114 
115  virtual bool wantsToCreatePublisher() const override;
116 
117  protected:
118  virtual void updatePublisher() override;
119  virtual DtObjectPublisher* createPublisher(const DtTaskVisualizationStateComponent*);
120  virtual void startVisualizing(const DtTaskVisualizationStateComponent*);
121  virtual void stopVisualizing(const DtTaskVisualizationStateComponent*);
122 
123  static DtGlobalObjectDesignator nextTaskVisualizationGlobalIdCallback(void* usr);
124 
125  virtual void createDrawControlObject(const DtTaskVisualizationStateComponent*);
126 
127  virtual void createLineDrawControl(const DtTaskVisualizationStateComponent*);
128  virtual void createPointDrawControl(const DtTaskVisualizationStateComponent*);
129  virtual void createTextDrawControl(const DtTaskVisualizationStateComponent*);
130  virtual void createAreaDrawControl(const DtTaskVisualizationStateComponent*);
131 
132  virtual void updateLineDrawControl(const DtTaskVisualizationStateComponent*);
133  virtual void updatePointDrawControl(const DtTaskVisualizationStateComponent*);
134  virtual void updateTextDrawControl(const DtTaskVisualizationStateComponent*);
135  virtual void updateAreaDrawControl(const DtTaskVisualizationStateComponent*);
136 
137  virtual DtVector calculateOffsetLocation(const DtVector& location, const DtVector& locationOffset);
138  virtual void stateDataDestroyed() override;
139 
140  protected:
143  {
144  ProcessManager() : mutex(new tbb::mutex) {};
145  std::shared_ptr<DtBulkEnvironmentProcessManager> manager;
146  std::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 override
The entityIdentifier unique to this object.
Definition: taskVisualizationLocalNetInterface.h:63
std::map< DtUUID, ProcessManager > BulkEnvironmentProcessManagerMap
Definition: taskVisualizationLocalNetInterface.h:150
std::shared_ptr< tbb::mutex > mutex
Definition: taskVisualizationLocalNetInterface.h:146
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
virtual const DtObjectId & id() const override
The id is the same as the globalId, a DtEntityIdentifier unique to this object.
Definition: taskVisualizationLocalNetInterface.h:61
Definition: taskVisualizationLocalNetInterface.h:70
The overall structure of the DtStateData mechanism is: The DtStateData contains a list of double buff...
Definition: stateData.h:398
DtTaskVisualizationPublisherCreator * myEnvProcPublisherCreator
Definition: taskVisualizationLocalNetInterface.h:153
Class Description: DtSimObjectNetInterface.
Definition: simObjectNetInterface.h:50
std::set< const DtTaskVisualizationStateComponent * > componentsUsing
Definition: taskVisualizationLocalNetInterface.h:147
Definition: localStateComponentNetInterface.h:22
Definition: stateComponent.h:52
static BulkEnvironmentProcessManagerMap theBulkEnvironmentProcessManagerMap
Definition: taskVisualizationLocalNetInterface.h:151
virtual bool isLocal() const override
Is this network interface for a local (true) or remote (false) object? Local network interfaces shoul...
Definition: taskVisualizationLocalNetInterface.h:108
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
Definition: taskVisualizationLocalNetInterface.h:33
A 3D Line Stealth Draw Control Object.
Definition: DtLine3DObject.h:38

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)