VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
taskVisualizationStateComponent.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 
12 #include "vlpi/entityIdentifier.h"
13 #include <vrfutil/rwUUID.h>
14 
15 namespace makVrf
16 {
18  {
20  {
21  Unknown = 0,
26  };
27 
28  struct LineVertex
29  {
30  public:
31  LineVertex() : attachedObject(DtUUID::nullUUID()) {};
32 
34  DtVector location;
35 
39 
40  bool operator==(const LineVertex& rhs) const
41  {
42  return (location == rhs.location && attachedObject == rhs.attachedObject);
43  }
44  };
45 
47  : myVisualizationType(Unknown)
48  , myRed(0)
49  , myGreen(0)
50  , myBlue(0)
51  , myAlpha(255)
52  , mySize(1)
53  , myArrowAtStart(false)
54  , myArrowAtEnd(false)
55  , myIsSizeLimited(false)
56  , myProjected(false)
57  , myActive(false)
58  , myUseDrawControlForTaskVisualizations(false)
59  , myAttachedObject(DtUUID::nullUUID())
60  , myHostId(DtUUID::nullUUID())
61  , myNeedsPointVerticesUpdate(false)
62  {
63  }
64 
66  : myComponentName(orig.myComponentName)
67  , myVisualizationName(orig.myVisualizationName)
68  , myVisualizationType(orig.myVisualizationType)
69  , myRed(orig.myRed)
70  , myGreen(orig.myGreen)
71  , myBlue(orig.myBlue)
72  , myAlpha(orig.myAlpha)
73  , myLocationOffset(orig.myLocationOffset)
74  , myLocation(orig.myLocation)
75  , mySize(orig.mySize)
76  , myAttachedObject(orig.myAttachedObject)
77  , myArrowAtStart(orig.myArrowAtStart)
78  , myArrowAtEnd(orig.myArrowAtEnd)
79  , myIsSizeLimited(orig.myIsSizeLimited)
80  , myProjected(orig.myProjected)
81  , myLineVertices(orig.myLineVertices)
82  , myText(orig.myText)
83  , myActive(orig.myActive)
84  , myUseDrawControlForTaskVisualizations(orig.myUseDrawControlForTaskVisualizations)
85  , myHostId(orig.myHostId)
86  , myEntityId(orig.myEntityId)
87  , myPointVertices(orig.myPointVertices)
88  , myNeedsPointVerticesUpdate(orig.myNeedsPointVerticesUpdate)
89  {
90  if (myNeedsPointVerticesUpdate)
91  {
92  pointVertices();
93  }
94  }
95 
97  {
98  myComponentName = rhs.myComponentName;
99  myVisualizationName = rhs.myVisualizationName;
100  myVisualizationType = rhs.myVisualizationType;
101  myRed = rhs.myRed;
102  myGreen = rhs.myGreen;
103  myBlue = rhs.myBlue;
104  myAlpha = rhs.myAlpha;
105  myLocationOffset = rhs.myLocationOffset;
106  mySize = rhs.mySize;
107  myLocation = rhs.myLocation;
108  myAttachedObject = rhs.myAttachedObject;
109  myArrowAtStart = rhs.myArrowAtStart;
110  myArrowAtEnd = rhs.myArrowAtEnd;
111  myIsSizeLimited = rhs.myIsSizeLimited;
112  myProjected = rhs.myProjected;
113  myLineVertices = rhs.myLineVertices;
114  myText = rhs.myText;
115  myActive = rhs.myActive;
116  myUseDrawControlForTaskVisualizations = rhs.myUseDrawControlForTaskVisualizations;
117  myHostId = rhs.myHostId;
118  myEntityId = rhs.myEntityId;
119  myPointVertices = rhs.myPointVertices;
120  myNeedsPointVerticesUpdate = rhs.myNeedsPointVerticesUpdate;
121 
122  if (myNeedsPointVerticesUpdate)
123  {
124  pointVertices();
125  }
126 
127  return *this;
128  }
129 
131  DEFINE_ACCESSOR_MUTATOR(DtString, componentName, ComponentName)
132  DEFINE_ACCESSOR_MUTATOR(DtString, visualizationName, VisualizationName)
133  DEFINE_ACCESSOR_MUTATOR(DtUUID, attachedObject, AttachedObject)
134  DEFINE_ACCESSOR_MUTATOR(DtString, text, Text)
135  DEFINE_ACCESSOR_MUTATOR(DtUUID, hostId, HostId)
136  DEFINE_ACCESSOR_MUTATOR(DtEntityIdentifier, entityId, EntityId)
137  DEFINE_ACCESSOR_MUTATOR(unsigned int, red, Red)
138  DEFINE_ACCESSOR_MUTATOR(unsigned int, green, Green)
139  DEFINE_ACCESSOR_MUTATOR(unsigned int, blue, Blue)
140  DEFINE_ACCESSOR_MUTATOR(unsigned int, alpha, Alpha)
141  DEFINE_ACCESSOR_MUTATOR(double, size, Size)
142  DEFINE_ACCESSOR_MUTATOR(DtVector, locationOffset, LocationOffset)
143  DEFINE_ACCESSOR_MUTATOR(DtVector, location, Location)
144  DEFINE_REF_ACCESSORS(std::vector<LineVertex>, lineVertices, LineVertices)
145  DEFINE_ACCESSOR_MUTATOR(bool, arrowAtStart, ArrowAtStart)
146  DEFINE_ACCESSOR_MUTATOR(bool, arrowAtEnd, ArrowAtEnd)
147  DEFINE_ACCESSOR_MUTATOR(bool, projected, Projected)
148  DEFINE_ACCESSOR_MUTATOR(bool, isSizeLimited, IsSizeLimited)
149  DEFINE_ACCESSOR_MUTATOR(bool, active, Active)
150  DEFINE_ACCESSOR_MUTATOR(bool, useDrawControlForTaskVisualizations, UseDrawControlForTaskVisualizations)
151 
152  const std::vector<DtVector>& pointVertices() const
153  {
154  if (myNeedsPointVerticesUpdate)
155  {
156  myPointVertices.resize(myLineVertices.size());
157 
158  std::vector<LineVertex>::const_iterator iter = myLineVertices.begin();
159  std::vector<LineVertex>::const_iterator end = myLineVertices.end();
160  std::vector<DtVector>::iterator ptIter = myPointVertices.begin();
161  while (iter != end)
162  {
163  (*ptIter) = iter->location;
164  ++iter;
165  ++ptIter;
166  }
167 
168  myNeedsPointVerticesUpdate = false;
169  }
170 
171  return myPointVertices;
172  }
173 
174  void setVertices(const std::vector<LineVertex>& v) { myLineVertices = v; myNeedsPointVerticesUpdate = true;};
175  void setVertices(const std::vector<DtVector>& v)
176  {
177  myLineVertices.resize(v.size());
178  int i, iLimit = v.size();
179  for (i = 0; i < iLimit; i++)
180  {
181  myLineVertices[i].location = v[i];
182  }
183 
184  myPointVertices = v;
185  }
186 
187  void setVertices(const std::vector<DtUUID>& v)
188  {
189  myLineVertices.resize(v.size());
190  int i, iLimit = v.size();
191  for (i = 0; i < iLimit; i++)
192  {
193  myLineVertices[i].attachedObject = v[i];
194  }
195 
196  myNeedsPointVerticesUpdate = true;
197  }
198 
199  void setVertex(int i, const DtVector& v)
200  {
201  if (i >= myLineVertices.size())
202  {
203  myLineVertices.resize(i+1);
204  myPointVertices.resize(i + 1);
205  }
206 
207  myPointVertices[i] = v;
208  myLineVertices[i].location = v;
209  }
210 
211  void setVertex(int i, const DtUUID& v)
212  {
213  if (i >= myLineVertices.size())
214  {
215  myLineVertices.resize(i+1);
216  myPointVertices.resize(i + 1);
217  }
218 
219  myLineVertices[i].attachedObject = v;
220  }
221 
222  const std::vector<LineVertex>& linVertices() const { return myLineVertices; };
223 
224  protected:
225  DtString myComponentName;
227  DtEntityIdentifier myEntityId;
230  unsigned int myRed;
231  unsigned int myGreen;
232  unsigned int myBlue;
233  unsigned int myAlpha;
234  bool myActive;
236 
239  mutable std::vector<DtVector> myPointVertices{};
240 
242  double mySize;
243  DtVector myLocation;
245 
247  std::vector<LineVertex> myLineVertices{};
253 
256  };
257 
261  {
262  public:
264 
266  : DtFrameStateInterface(storage)
267  {
268  }
269 
271  UNDEFINED_RETURNREF_ACCESSOR_MUTATOR(DtString, componentName, ComponentName)
272  UNDEFINED_RETURNREF_ACCESSOR_MUTATOR(DtString, visualizationName, VisualizationName)
273  UNDEFINED_RETURNREF_ACCESSOR_MUTATOR(DtUUID, attachedObject, AttachedObject)
275  UNDEFINED_RETURNREF_ACCESSOR_MUTATOR(unsigned int, red, Red)
276  UNDEFINED_RETURNREF_ACCESSOR_MUTATOR(unsigned int, green, Green)
277  UNDEFINED_RETURNREF_ACCESSOR_MUTATOR(unsigned int, blue, Blu)
278  UNDEFINED_RETURNREF_ACCESSOR_MUTATOR(unsigned int, alpha, Alpha)
280  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(unsigned int, thickness, Thickness)
281  UNDEFINED_RETURNREF_ACCESSOR_MUTATOR(DtVector, locationOffset, LocationOffset)
282  UNDEFINED_RETURNREF_ACCESSOR_MUTATOR(DtVector, location, Location)
283  UNDEFINED_RETURNREF_ACCESSORS(std::vector<DtTaskVisualizationStateComponentData::LineVertex>, vertices)
284  UNDEFINED_RETURNVALUE_ACCESSOR(unsigned int, numberOfVertices)
285  UNDEFINED_RETURNREF_ACCESSOR_MUTATOR(bool, arrowAtStart, ArrowAtStart)
286  UNDEFINED_RETURNREF_ACCESSOR_MUTATOR(bool, arrowAtEnd, ArrowAtEnd)
287  UNDEFINED_RETURNREF_ACCESSOR_MUTATOR(bool, projected, Projected)
288  UNDEFINED_RETURNREF_ACCESSOR_MUTATOR(bool, isSizeLimited, IsSizeLimited)
289  UNDEFINED_RETURNREF_ACCESSOR_MUTATOR(bool, active, Active)
290  UNDEFINED_METHOD(void, setVertices, const std::vector<DtTaskVisualizationStateComponentData::LineVertex>&)
291  UNDEFINED_METHOD(void, setVertices, const std::vector<DtVector>&)
292  UNDEFINED_METHOD(void, setVertices, const std::vector<DtUUID>&)
293  UNDEFINED_RETURNREF_ACCESSOR_MUTATOR(bool, useDrawControlForTaskVisualizations, UseDrawControlForTaskVisualizations)
294  UNDEFINED_RETURNREF_ACCESSOR_MUTATOR(DtUUID, hostId, HostId)
295  UNDEFINED_RETURNREF_ACCESSOR_MUTATOR(DtEntityIdentifier, entityId, EntityId)
296 
297  virtual const std::vector<DtVector>& pointVertices() const { throw DtUnimplementedMethod("void pointVertices() is unimplemented by this class."); };
298  virtual void setColor(unsigned int r, unsigned int g, unsigned int b, unsigned int a) { throw DtUnimplementedMethod("setColor(r, g, b, a) is unimplemented by this class."); };
299  virtual void setVertex(unsigned int i, const DtVector&) { throw DtUnimplementedMethod("void setVertex(unsigned int i, const DtVector&) is unimplemented by this class."); };
300  virtual void setVertex(unsigned int i, const DtUUID&) { throw DtUnimplementedMethod("void setVertex(unsigned int i, const DtUUID&) is unimplemented by this class."); };
301  virtual void setupAsLineTaskVisualization(const DtEntityIdentifier& entityIdentifier, const DtString& visualizationName, const DtString& componentName)
302  { throw DtUnimplementedMethod("void setupAsLineTaskVisualization is unimplemented by this class."); };
303  virtual void setupAsAreaTaskVisualization(const DtEntityIdentifier& entityIdentifier, const DtString& visualizationName, const DtString& componentName)
304  { throw DtUnimplementedMethod("void setupAsLineTaskVisualization is unimplemented by this class."); };
305  virtual void setupAsTextTaskVisualization(const DtEntityIdentifier& entityIdentifier, const DtString& visualizationName, const DtString& componentName)
306  { throw DtUnimplementedMethod("void setupAsLineTaskVisualization is unimplemented by this class."); };
307  virtual void setupAsPointTaskVisualization(const DtEntityIdentifier& entityIdentifier, const DtString& visualizationName, const DtString& componentName)
308  { throw DtUnimplementedMethod("void setupAsLineTaskVisualization is unimplemented by this class."); };
309  };
310 
313  {
314  public:
316 
318  const DtTaskVisualizationStateComponentData& frameState() const { return myData; };
320 
321  virtual const DtTaskVisualizationStateComponentData::VisualizationType& visualizationType() const override;
322 
323  virtual const std::vector<DtTaskVisualizationStateComponentData::LineVertex>& vertices() const override;
324  virtual std::vector<DtTaskVisualizationStateComponentData::LineVertex>& vertices() override;
325 
326  virtual const unsigned int numberOfVertices() const override;
327 
328  virtual void setComponentName(const DtString&) override;
329  virtual const DtString& componentName() const override;
330 
331  virtual void setVisualizationName(const DtString&) override;
332  virtual const DtString& visualizationName() const override;
333 
334  virtual void setAttachedObject(const DtUUID&) override;
335  virtual const DtUUID& attachedObject() const override;
336 
337  virtual void setText(const DtString&) override;
338  virtual const DtString& text() const override;
339 
340  virtual void setRed(const unsigned int&) override;
341  virtual const unsigned int& red() const override;
342 
343  virtual void setGreen(const unsigned int&) override;
344  virtual const unsigned int& green() const override;
345 
346  void setBlue(const unsigned int&);
347  virtual const unsigned int& blue() const override;
348 
349  virtual void setAlpha(const unsigned int&) override;
350  virtual const unsigned int& alpha() const override;
351 
352  virtual void setSize(const double&) override;
353  virtual const double size() const override;
354 
355  virtual void setThickness(const unsigned int& i) override { setSize(i); };
356  virtual const unsigned int thickness() const override { return size(); };
357 
358  virtual void setLocationOffset(const DtVector&) override;
359  virtual const DtVector& locationOffset() const override;
360 
361  virtual void setLocation(const DtVector&) override;
362  virtual const DtVector& location() const override;
363 
364  virtual void setArrowAtStart(const bool&) override;
365  virtual const bool& arrowAtStart() const override;
366 
367  virtual void setArrowAtEnd(const bool&) override;
368  virtual const bool& arrowAtEnd() const override;
369 
370  virtual void setIsSizeLimited(const bool&) override;
371  virtual const bool& isSizeLimited() const override;
372 
373  virtual void setProjected(const bool&) override;
374  virtual const bool& projected() const override;
375 
376  virtual void setActive(const bool&) override;
377  virtual const bool& active() const override;
378 
379  virtual void setUseDrawControlForTaskVisualizations(const bool&) override;
380  virtual const bool& useDrawControlForTaskVisualizations() const override;
381 
382  virtual void setColor(unsigned int r, unsigned int g, unsigned int b, unsigned int a) override;
383  virtual void setVertices(const std::vector<DtTaskVisualizationStateComponentData::LineVertex>&) override;
384  virtual void setVertices(const std::vector<DtVector>&) override;
385  virtual void setVertices(const std::vector<DtUUID>&) override;
386  virtual void setVertex(unsigned int i, const DtVector&) override;
387  virtual void setVertex(unsigned int i, const DtUUID&) override;
388 
389  virtual const DtUUID& hostId() const override;
390  virtual void setHostId(const DtUUID&) override;
391 
392  virtual const DtEntityIdentifier& entityId() const override;
393  virtual void setEntityId(const DtEntityIdentifier&) override;
394 
395  virtual const std::vector<DtVector>& pointVertices() const override;
396 
398  virtual void makeWritable() override {};
399 
401  virtual void makeReadOnly() override {};
402 
403  virtual void setupAsLineTaskVisualization(const DtEntityIdentifier& entityIdentifier, const DtString& visualizationName, const DtString& componentName) override;
404  virtual void setupAsTextTaskVisualization(const DtEntityIdentifier& entityIdentifier, const DtString& visualizationName, const DtString& componentName) override;
405  virtual void setupAsAreaTaskVisualization(const DtEntityIdentifier& entityIdentifier, const DtString& visualizationName, const DtString& componentName) override;
406  virtual void setupAsPointTaskVisualization(const DtEntityIdentifier& entityIdentifier, const DtString& visualizationName, const DtString& componentName) override;
407 
408  protected:
411 
412  protected:
414  };
415 
418  {
419  public:
421 
423  const DtTaskVisualizationStateComponentData& frameState() const { return myData; };
424 
425  virtual const DtTaskVisualizationStateComponentData::VisualizationType& visualizationType() const override;
426 
427  virtual const DtString& componentName() const override;
428  virtual const DtString& visualizationName() const override;
429  virtual const DtUUID& attachedObject() const override;
430  virtual const DtString& text() const override;
431 
432  virtual const unsigned int& red() const override;
433  virtual const unsigned int& green() const override;
434  virtual const unsigned int& blue() const override;
435  virtual const unsigned int& alpha() const override;
436  virtual const double size() const override;
437  virtual const unsigned int thickness() const override
438  {
439  return size();
440  }
441 
442  virtual const DtVector& locationOffset() const override;
443  virtual const DtVector& location() const override;
444  virtual const std::vector<DtTaskVisualizationStateComponentData::LineVertex>& vertices() const override;
445  virtual const unsigned int numberOfVertices() const override;
446 
447  virtual const bool& arrowAtStart() const override;
448  virtual const bool& arrowAtEnd() const override;
449  virtual const bool& isSizeLimited() const override;
450  virtual const bool& projected() const override;
451  virtual const bool& active() const override;
452  virtual const bool& useDrawControlForTaskVisualizations() const override;
453  virtual const DtUUID& hostId() const override;
454  virtual const DtEntityIdentifier& entityId() const override;
455  virtual const std::vector<DtVector>& pointVertices() const override;
456 
457  protected:
460  {
461  myData = d;
462  }
463 
464  protected:
466  };
467 
471  {
472  public:
474 
475  bool isDoubleBuffered() { return true; };
476  virtual const DtFrameStateInterface* currentFrameState() const override { return &myCurrentFrameState; }
477  virtual DtFrameStateInterface* nextFrameState() override { return &myNextFrameState; };
478  virtual const DtFrameStateInterface* nextFrameState() const override { return &myNextFrameState; };
479 
480  virtual void updateDataStorage() override
481  {
482  if (myNextFrameState.isWritable())
483  {
484  myCurrentFrameState.advanceFrame(myNextFrameState.frameState());
485  }
486 
487  myCurrentFrameState.emitComponentUpdated();
488  }
489 
490  virtual void updateStateData(DtStateData* sd) override
491  {
492  myCurrentFrameState.updateStateData(sd);
493  myNextFrameState.updateStateData(sd);
494  }
495 
496  static void setMaximumLineSegements(unsigned max);
497  static unsigned maximumLineSegments();
498 
499  DtTaskVisualizationStateComponent* lineTaskVisualization(const DtString& v, const DtString& c);
500  DtTaskVisualizationStateComponent* areaTaskVisualization(const DtString& v, const DtString& c);
501  DtTaskVisualizationStateComponent* pointTaskVisualization(const DtString& v, const DtString& c);
502  DtTaskVisualizationStateComponent* textTaskVisualization(const DtString& v, const DtString& c);
503 
504  virtual void aboutToBeDeleted() override
505  {
507  myCurrentFrameState.aboutToBeDeleted();
508  myNextFrameState.aboutToBeDeleted();
509  }
510 
511  protected:
515  };
516 
520 }
virtual void setupAsAreaTaskVisualization(const DtEntityIdentifier &entityIdentifier, const DtString &visualizationName, const DtString &componentName)
Definition: taskVisualizationStateComponent.h:303
UUID is a unique ID wrapper class.
Definition: uuid.h:59
virtual void setupAsTextTaskVisualization(const DtEntityIdentifier &entityIdentifier, const DtString &visualizationName, const DtString &componentName)
Definition: taskVisualizationStateComponent.h:305
Definition: taskVisualizationStateComponent.h:28
virtual void aboutToBeDeleted() override
Definition: taskVisualizationStateComponent.h:504
virtual void makeWritable() override
Override to make component writable.
Definition: taskVisualizationStateComponent.h:398
Definition: stateDataTypes.h:23
Definition: taskVisualizationStateComponent.h:24
DtTaskVisualizationStateComponentData & frameState()
Definition: taskVisualizationStateComponent.h:319
#define UNDEFINED_METHOD(Type, Method,...)
Definition: doubleBufferedDataStorage.h:68
Definition: taskVisualizationStateComponent.h:17
DtUUID myAttachedObject
Definition: taskVisualizationStateComponent.h:244
VisualizationType
Definition: taskVisualizationStateComponent.h:19
void advanceFrame(const DtTaskVisualizationStateComponentData &d)
Definition: taskVisualizationStateComponent.h:459
const DtTaskVisualizationStateComponentData & frameState() const
Next frame access write access. Ensure this is only used in a single thread (i.e.a controller thread)...
Definition: taskVisualizationStateComponent.h:318
Definition: stateComponent.h:269
DtVector myLocationOffset
Location offset in forward, right, down entity coordinates.
Definition: taskVisualizationStateComponent.h:238
DtString myComponentName
Definition: taskVisualizationStateComponent.h:222
bool myIsSizeLimited
Definition: taskVisualizationStateComponent.h:251
voidpf void uLong size
Definition: ioapi.h:39
unsigned int myRed
Definition: taskVisualizationStateComponent.h:230
bool myArrowAtEnd
Definition: taskVisualizationStateComponent.h:248
#define UNDEFINED_RETURNREF_ACCESSORS(ReturnType, Member)
Definition: doubleBufferedDataStorage.h:40
#define UNDEFINED_RETURNVALUE_ACCESSOR(ReturnType, Member)
Definition: doubleBufferedDataStorage.h:31
virtual void makeReadOnly() override
Override to make component read-only.
Definition: taskVisualizationStateComponent.h:401
DtTaskVisualizationStateComponentData myData
Definition: taskVisualizationStateComponent.h:465
virtual void updateStateData(DtStateData *sd) override
Implement to update data storage to the new state data.
Definition: taskVisualizationStateComponent.h:490
Contains the DtUUID class declaration.
DtUUID myHostId
Definition: taskVisualizationStateComponent.h:228
#define UNDEFINED_RETURNREF_ACCESSOR(ReturnType, Member)
Definition: doubleBufferedDataStorage.h:34
2) Define the next frame class. This will be used for write access.
Definition: taskVisualizationStateComponent.h:312
DtTaskVisualizationStateComponentNextFrame myNextFrameState
Definition: taskVisualizationStateComponent.h:513
virtual void setupAsLineTaskVisualization(const DtEntityIdentifier &entityIdentifier, const DtString &visualizationName, const DtString &componentName)
Definition: taskVisualizationStateComponent.h:301
DtEntityIdentifier myEntityId
Definition: taskVisualizationStateComponent.h:227
Definition: taskVisualizationStateComponent.h:22
virtual void setupAsPointTaskVisualization(const DtEntityIdentifier &entityIdentifier, const DtString &visualizationName, const DtString &componentName)
Definition: taskVisualizationStateComponent.h:307
void setVertices(const std::vector< DtUUID > &v)
Definition: taskVisualizationStateComponent.h:187
virtual void setColor(unsigned int r, unsigned int g, unsigned int b, unsigned int a)
Definition: taskVisualizationStateComponent.h:298
DtTaskVisualizationStateComponentData()
Definition: taskVisualizationStateComponent.h:46
bool myUseDrawControlForTaskVisualizations
Definition: taskVisualizationStateComponent.h:235
DtStateComponentCreator< DtTaskVisualizationStateComponentImplementation > DtTaskVisualizationStateComponentCreator
5) Define the creator. This will need to be registered with the REGISTER_STATE_COMPONENT macro in the...
Definition: taskVisualizationStateComponent.h:519
The overall structure of the DtStateData mechanism is: The DtStateData contains a list of double buff...
Definition: stateData.h:398
virtual DtFrameStateInterface * nextFrameState() override
Definition: taskVisualizationStateComponent.h:477
#define DEFINE_STATE_COMPONENT_TYPE(CreatedComponent)
Definition: stateComponent.h:231
virtual void setVertex(unsigned int i, const DtVector &)
Definition: taskVisualizationStateComponent.h:299
IMGUI_API void Text(const char *fmt,...) IM_FMTARGS(1)
std::vector< LineVertex > myLineVertices
For line objects.
Definition: taskVisualizationStateComponent.h:247
DtTaskVisualizationStateComponentData(const DtTaskVisualizationStateComponentData &orig)
Definition: taskVisualizationStateComponent.h:65
bool myActive
Definition: taskVisualizationStateComponent.h:234
Subclass from this to indicate that this will be a double buffered state component.
Definition: stateComponent.h:384
void setVertices(const std::vector< LineVertex > &v)
Definition: taskVisualizationStateComponent.h:174
virtual const unsigned int thickness() const override
Definition: taskVisualizationStateComponent.h:356
std::vector< DtVector > myPointVertices
Definition: taskVisualizationStateComponent.h:239
#define UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(Type, Member, Set)
Definition: doubleBufferedDataStorage.h:53
virtual void aboutToBeDeleted()
DtTaskVisualizationStateComponentData::VisualizationType myVisualizationType
Definition: taskVisualizationStateComponent.h:229
virtual void setThickness(const unsigned int &i) override
Definition: taskVisualizationStateComponent.h:355
4) Define the state component that will contain the wrappers to the next and current frame states tha...
Definition: taskVisualizationStateComponent.h:470
void setVertices(const std::vector< DtVector > &v)
Definition: taskVisualizationStateComponent.h:175
DtTaskVisualizationStateComponentData & operator=(const DtTaskVisualizationStateComponentData &rhs)
Definition: taskVisualizationStateComponent.h:96
DtTaskVisualizationStateComponentCurrentFrame myCurrentFrameState
Definition: taskVisualizationStateComponent.h:512
bool operator==(const LineVertex &rhs) const
Definition: taskVisualizationStateComponent.h:40
virtual void setVertex(unsigned int i, const DtUUID &)
Definition: taskVisualizationStateComponent.h:300
#define UNDEFINED_RETURNREF_ACCESSOR_MUTATOR(Type, Member, Set)
Definition: doubleBufferedDataStorage.h:57
bool myArrowAtStart
Definition: taskVisualizationStateComponent.h:249
#define DEFINE_REF_ACCESSORS(ReturnType, Method, Member)
Definition: doubleBufferedDataStorage.h:13
#define DEFINE_ACCESSOR_MUTATOR(ReturnType, Accessor, Mutator)
Definition: doubleBufferedDataStorage.h:23
virtual void updateDataStorage() override
Implement to update data storage. Called from advanceFrame.
Definition: taskVisualizationStateComponent.h:480
void setVertex(int i, const DtUUID &v)
Definition: taskVisualizationStateComponent.h:211
virtual const unsigned int thickness() const override
Definition: taskVisualizationStateComponent.h:437
static int theMaximumLineSegments
Definition: taskVisualizationStateComponent.h:514
DtString myText
Text.
Definition: taskVisualizationStateComponent.h:255
unsigned int myGreen
Definition: taskVisualizationStateComponent.h:231
bool isDoubleBuffered()
Definition: taskVisualizationStateComponent.h:475
virtual const DtFrameStateInterface * nextFrameState() const override
Definition: taskVisualizationStateComponent.h:478
3) Define the current frame class. This will be used for read access.
Definition: taskVisualizationStateComponent.h:417
#define DT_DLL_vrfStateData
This file is used to determine how to build Disable inconsistent dll linkage warning Visual Studio 6...
Definition: vrfStateDataDefines.h:26
DtVector location
Geocentric location of the vertex (if not attached).
Definition: taskVisualizationStateComponent.h:31
DtUUID attachedObject
Global ID of the object the point is attached to. If blank, use specified location instead...
Definition: taskVisualizationStateComponent.h:38
bool myNeedsPointVerticesUpdate
Definition: taskVisualizationStateComponent.h:252
const DtTaskVisualizationStateComponentData & frameState() const
Current frame state only can access current frame buffers. This ensures thread safety.
Definition: taskVisualizationStateComponent.h:423
double mySize
Not all of these are used by all task visualizations.
Definition: taskVisualizationStateComponent.h:242
DtTaskVisualizationStateComponentData myData
Definition: taskVisualizationStateComponent.h:413
Definition: taskVisualizationStateComponent.h:23
void setVertex(int i, const DtVector &v)
Definition: taskVisualizationStateComponent.h:199
unsigned int myBlue
Definition: taskVisualizationStateComponent.h:232
1) Define the interface class that will be used to represent the next and current frames...
Definition: taskVisualizationStateComponent.h:260
DtVector myLocation
Definition: taskVisualizationStateComponent.h:243
Contains the DtStateComponent class declaration.
This is a simple base class that will be used to return a pointer to current or next frame state...
Definition: stateComponent.h:294
virtual const DtFrameStateInterface * currentFrameState() const override
Definition: taskVisualizationStateComponent.h:476
DtString myVisualizationName
Definition: taskVisualizationStateComponent.h:226
bool myProjected
Definition: taskVisualizationStateComponent.h:250
unsigned int myAlpha
Definition: taskVisualizationStateComponent.h:233

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)