VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
controlObjectBaseRepository.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2018 VT MAK
3  * All rights reserved.
4  ****************************************************************************/
5 
11 
12 #pragma once
13 
14 #include <vl/environmentProcessRepository.h>
18 #include <vlpi/appearance.h>
19 
22 
23 class Dt3dBoundingVolume;
24 
25 #include <vector>
26 #include <map>
27 
30 class DtEnvironmentalBoundingSphereRecord;
31 class DtEnvironmentalRectangularVolumeRecord;
33 class DtGlobalObjectDesignatorList;
34 
36 {
44 };
45 
47 {
61 };
62 
63 class DtEnvironmentalPointRecord;
64 
66 
69 {
70 public:
71 
73  DtExtendedEnvironmentalDataRecord(const char* data, int length);
75 
79 
82 
84 
86  virtual DtEnvironmentalRecord * clone() const;
87 
90  virtual const char* networkData() const;
91  virtual const char* setNetworkData(const DtNetEnvironmentalRecord*);
92 
94  virtual int netRepSize() const;
95  virtual void setFromNet(const DtNetEnvironmentalRecord& buffer, int protocolVersion);
96 
97 protected:
98  virtual bool createNetworkRepresentation();
99  virtual bool resizeNetRep(int newSize);
100 
101 protected:
103  const char* myData;
104 };
105 
107 
110 {
111 public:
114 
117 
119  virtual void updateDataRecords(DtControlObjectBaseRepository*);
120 
122  virtual void decodeDataRecords(DtControlObjectBaseRepository*);
123 
125  virtual bool readFromRecord(const DtNetEnvironmentalRecord*);
126 };
127 
129 {
130 public:
131  typedef std::vector<DtVector> DtCOVertexList;
132  typedef std::vector<DtIttEnvironmentalProcessData*> DtGeometricDataList;
133  typedef std::map<int, DtIttSourceDataCreator> DtIttSourceDataMap;
134 
135 public:
136 
139 
142 
145 
148 
150  virtual DtStateRepository* clone(bool copy = false) const;
151 
152  DtEntityType entityType() const { return environmentType(); };
153  DtEntityType objectType() const { return entityType(); };
154 
155  virtual const DtControlObjectKind& kind() const;
156  virtual void setKind(const DtControlObjectKind& k);
157 
158  virtual const DtControlObjectCategory& category() const;
159  virtual void setCategory(const DtControlObjectCategory& c);
160 
162  virtual void generateUniqueId();
164  virtual void setUniqueId(const DtVrlUuid& uniqueId);
166  virtual const DtVrlUuid& uniqueId() const;
167 
168  const std::vector<DtVector>& vertexList() const;
169 
173  virtual void updateExtensions();
174 
178  virtual int compare(const DtControlObjectBaseRepository* rhs);
179 
181  virtual int compareToMostRecent();
182 
185  virtual bool locationsDifferent(bool updateIfDifferent);
186  virtual void emptyVertexList();
187 
191  static void initializePuffFactory();
192  static void addToPuffFactory(int iRecordType, DtIttSourceDataCreator fcn);
193  static DtIttSourceData* createPuffRecord(DtNetEnvironmentalRecord* geometric,
194  DtNetEnvironmentalRecord* source);
195  static DtIttSourceData* createPuffRecord(DtNetEnvironmentalRecord* rec);
196 
197  virtual void getBoundingVolume(DtVector& location, double& radius) const;
198 
199  const DtGeometricDataList& geometricRecords() const;
200  bool geometricRecordsChanged() const;
201  void clearGeometricRecordsChanged();
202 
205  virtual void updateDataRecords();
206 
208  virtual int numberOfSubordinates() const;
209  virtual bool getSubordinate(int i, DtGlobalObjectDesignator& d);
210  virtual const DtGlobalObjectDesignatorList& subordinates() const;
211  virtual DtGlobalObjectDesignatorList& subordinates();
212 
214  virtual void setExtendedData(const std::map<DtString, DtString>& ed);
215  virtual void setExtendedData(const DtString& key, const DtString& value);
216 
219  virtual double orientation() const;
220 
223  virtual void setVertices(const DtList& pnt);
224  virtual void appendVertex(const DtVector&);
225  virtual void setVertex(int i, const DtVector&);
226  virtual void removeVertex(int i);
227 
229 
232  virtual DtForceType forceType() const;
233  virtual void setForceType(DtForceType i);
234 
236  virtual int color() const;
237  virtual void setColor(int);
238 
240  virtual const DtString& parent() const;
241  virtual void setParent(const DtString&);
242 
243  virtual const DtString& userData() const;
244  virtual void setUserData(const DtString&);
245 
246  virtual void setVrfObjectName(const DtString&);
247  virtual const DtString& vrfObjectName();
248 
249  virtual DtAppearance appearance() const;
250  virtual void setAppearance(const DtAppearance& app);
251 
252  virtual void setNumberOfSubordinates(int);
253  virtual void setSubordinate(int i, const DtGlobalObjectDesignator&);
254 
256  virtual const DtGlobalObjectDesignator& hostGlobalId() const;
257  virtual void setHostGlobalId(const DtGlobalObjectDesignator&);
258 
260  virtual void setObjectAttachMode(DtVrfObjectAttachMode);
261  virtual DtVrfObjectAttachMode objectAttachMode() const;
262 
264  virtual void clearHostGlobalId();
265 
274  virtual bool getFontInformation(DtString& font, int& fontSize) const;
275  virtual void setFontInformation(const DtString&, int fontSize);
276 
278  virtual bool getFontColor(unsigned int& color) const;
279  virtual void setFontColor(unsigned int color);
280 
281  virtual bool getArrowInformation(int& arrowHeadPlacement, int& arrowStyle, int& arrowSize) const;
282  virtual void setArrowInformation(int arrowHeadPlacement, int arrowStyle, int arrowSize);
283 
291 
294  virtual void setBoundingSphereRadius(double);
295  virtual double boundingSphereRadius() const;
296 
299  virtual void setBoundingSphereLocation(const DtVector&);
300  virtual const DtVector& boundingSphereLocation() const;
301 
302  bool hasBoundingSphereRecord() const;
303 
311 
312  bool hasBoundingRectRecord() const;
313 
314  virtual void setBoundingExtent(const DtVector&);
315  const DtVector& boundingExtent() const;
316 
317  virtual void setBoundingCornerLocation(const DtVector&);
318  virtual const DtVector& boundingCornerLocation() const;
319 
320  virtual void setBoundingOrientation(const DtTaitBryan&);
321  const DtTaitBryan& boundingOrientation() const;
322 
325  virtual void setProjected(bool);
326  virtual bool projected() const;
327 
328  virtual void setClosedFigure(bool);
329  virtual bool closedFigure() const;
330 
331  virtual void setBound2D(bool);
332  virtual bool bound2D() const;
333 
335  virtual void setFillStyle(int);
336  virtual int fillStyle() const;
337 
338  virtual void setLineStyle(int);
339  virtual int lineStyle() const;
340 
341  virtual void setLineWidth(int);
342  virtual int lineWidth() const;
343 
345  virtual void setPhysicalLineHeight(double);
346  virtual double physicalLineHeight() const;
347 
349  virtual void setPhysicalLineWidth(double);
350  virtual double physicalLineWidth() const;
351 
354  virtual void setRelativeLocation(const DtVector&);
355  virtual const DtVector& relativeLocation() const;
356 
359  virtual void setVelocity(const DtVector&);
360  virtual const DtVector& velocity() const;
361 
362  virtual void setAcceleration(const DtVector&);
363  virtual const DtVector& acceleration() const;
364 
365  virtual void setDRAlogrithm(DtDeadReckonTypes);
366  virtual const DtDeadReckonTypes& drAlgorithm() const;
368 
369  virtual void setOffsetPoints(const std::vector<DtVector>&);
370  virtual const std::vector<DtVector>& offsetPoints() const;
371 
375  virtual void setCachePoints(bool);
376  bool cachePoints() const;
377 
380  virtual DtString extendedData(const DtString& key) const;
381 
383  {
384  return myExtendedRecordData;
385  }
386 
388  {
389  return myExtendedRecordData;
390  }
391 
392  int numberOfDatumRecords() const;
393  void setNumberOfDatumRecords(int);
394 
398  virtual void setSendVrfObjectDataRecord(bool shouldSend);
399  virtual bool shouldSendVrfObjectDataRecord() const;
401 
402 protected:
403 
404 #ifdef DtDIS
405  virtual void addUuidRecord();
407 #endif
408 
412  virtual bool createExtendedEnvironmentalStateRecord();
413 
417  virtual DtSimEnvironmentalObjectStateRecord* extendedEnvironmentalStateRecord();
418 
422  virtual bool createVrfObjectStateRecord();
423 
427  virtual DtVrfObjectDataEnvironmentalRecord* vrfObjectStateRecord();
428 
431  virtual bool createBoundingSphereRecord();
432 
436  virtual DtEnvironmentalBoundingSphereRecord* boundingSphereRecord();
437 
440  virtual bool createBoundingRectRecord();
441 
445  virtual DtEnvironmentalRectangularVolumeRecord* boundingRectRecord();
446 
448  virtual void setupKindFromType(const DtEntityType& type);
449  virtual void getBoundingVolume(EnvGeomSpheriod* rec);
450  virtual void clearGeometricRecords();
451 
453  virtual void extensionModified();
454 
455 public:
456  static DtEnvironmentProcessRepository* create();
457 
460 
464 
471  DtEnvironmentalBoundingSphereRecord* myBoundingSphereRecord;
474  DtEnvironmentalRectangularVolumeRecord* myBoundingRectRecord;
475 
477  DtVrlUuid myUuid;
478 
484 
487 
489 
491 };
492 
494 {
495  return myGeometricRecords;
496 }
497 
499 {
501 }
502 
504 {
506 }
507 
509 {
510  return (myBoundingSphereRecord != NULL);
511 }
512 
514 {
515  return (myBoundingRectRecord != NULL);
516 }
517 
519 {
520  return myCachePoints;
521 }
Definition: controlObjectBaseRepository.h:41
Definition: controlObjectBaseRepository.h:56
Definition: controlObjectBaseRepository.h:52
Definition: controlObjectBaseRepository.h:128
DtEnvironmentalProcessExtendedRecordData myExtendedRecordData
Definition: controlObjectBaseRepository.h:488
const DtGeometricDataList & geometricRecords() const
Definition: controlObjectBaseRepository.h:493
Definition: controlObjectBaseRepository.h:59
Definition: ittEnvironmentalProcessData.h:18
Definition: controlObjectBaseRepository.h:54
Definition: vrfExtensions.h:22
const char * myData
Definition: controlObjectBaseRepository.h:103
Environmental process version of this class.
Definition: controlObjectBaseRepository.h:109
bool myNeedVrfObjectDataUpdate
Definition: controlObjectBaseRepository.h:483
DtVrfExtensions & operator=(const DtVrfExtensions &orig)
Definition: controlObjectBaseRepository.h:57
Definition: vrfExtendedRecordData.h:18
bool cachePoints() const
Definition: controlObjectBaseRepository.h:518
int myDataSize
Definition: controlObjectBaseRepository.h:102
bool hasBoundingRectRecord() const
Routines that are used to set/get information about the bounding rectangle. If this information is se...
Definition: controlObjectBaseRepository.h:513
Definition: controlObjectBaseRepository.h:40
Definition: controlObjectBaseRepository.h:58
bool myGeometricRecordsChanged
Definition: controlObjectBaseRepository.h:482
std::map< int, DtIttSourceDataCreator > DtIttSourceDataMap
Definition: controlObjectBaseRepository.h:133
DtVrlUuid myUuid
Definition: controlObjectBaseRepository.h:477
const DtVrfExtendedRecordData & extendedRecordData() const
Definition: controlObjectBaseRepository.h:382
DtCOVertexList myVertexList
Keeps a list of all geometry point records to use to update internal model datas from.
Definition: controlObjectBaseRepository.h:463
Definition: controlObjectBaseRepository.h:48
Definition: controlObjectBaseRepository.h:38
std::vector< DtVector > DtCOVertexList
Definition: controlObjectBaseRepository.h:131
Definition: controlObjectBaseRepository.h:43
DtGeometricDataList myGeometricRecords
Definition: controlObjectBaseRepository.h:481
Definition: ittEnvironmentalProcessRecords.h:17
std::vector< DtIttEnvironmentalProcessData * > DtGeometricDataList
Definition: controlObjectBaseRepository.h:132
virtual const std::map< DtString, DtString > & extendedData() const
Gets/sets extended data.
Definition: controlObjectBaseRepository.h:39
Contains the DtVrfExtensions class declaration.
DtControlObjectBaseRepository * myLastCopy
Definition: controlObjectBaseRepository.h:473
Definition: controlObjectBaseRepository.h:51
DtEnvironmentalRectangularVolumeRecord * myBoundingRectRecord
Definition: controlObjectBaseRepository.h:474
Definition: controlObjectBaseRepository.h:53
DtEnvironmentalBoundingSphereRecord * myBoundingSphereRecord
Definition: controlObjectBaseRepository.h:471
Definition: controlObjectBaseRepository.h:55
void clearGeometricRecordsChanged()
Definition: controlObjectBaseRepository.h:503
static DtIttSourceDataMap thePuffFactory
This information is needed for ITT puff clouds.
Definition: controlObjectBaseRepository.h:480
const char * source
Definition: lz4.h:442
DtEntityType objectType() const
Definition: controlObjectBaseRepository.h:153
Network representation class for extended environmental data.
Definition: controlObjectBaseRepository.h:68
Wraps a DtIfVrfObjectData message into this structure so it can be sent as an environmental record...
Definition: vrfObjectDataEnvironmentalRecord.h:25
Definition: controlObjectBaseRepository.h:42
Definition: simEnvironmentalModelType.h:20
DtVrfExtendedRecordData & extendedRecordData()
Definition: controlObjectBaseRepository.h:387
virtual void extensionModified()
DtControlObjectKind
Definition: controlObjectBaseRepository.h:35
DT_DLL_VRVCORE double length(const makVrv::DtCoordinateSystem &, const std::vector< DtVector > &vertices)
Returns the total distance of a segmented line defined by the provided vector of vertices. Coordinates are in local database coordinates. The coordinate system is used to convert between the local database coordinates and geocentric. All distance is in 2D – the Z value is ignored.
bool hasBoundingSphereRecord() const
Definition: controlObjectBaseRepository.h:508
DtVrfObjectAttachMode
Definition: vrfObjectAttachEnums.h:8
bool myGeneratedUuid
Definition: controlObjectBaseRepository.h:476
Definition: simEnvironmentalObjectStateRecord.h:143
Contains Extended DI-Guy Object net types.
DtIttSourceData *(* DtIttSourceDataCreator)(DtNetEnvironmentalRecord *)
Definition: ittEnvironmentalProcessData.h:132
int myPointsSet
Definition: controlObjectBaseRepository.h:486
DtControlObjectCategory myCategory
Definition: controlObjectBaseRepository.h:459
Definition: controlObjectBaseRepository.h:60
DtEntityType entityType() const
Definition: controlObjectBaseRepository.h:152
bool myCachePoints
Definition: controlObjectBaseRepository.h:485
DtControlObjectKind myKind
Definition: controlObjectBaseRepository.h:458
Definition: controlObjectBaseRepository.h:50
Definition: controlObjectBaseRepository.h:49
bool geometricRecordsChanged() const
Definition: controlObjectBaseRepository.h:498
DtSimEnvironmentalObjectStateRecord * myExtEnvStateRecord
DtSimEnvironmentalObjectStateRecord is a special form of DtEnvironmentalRecord, used to decode custom...
Definition: controlObjectBaseRepository.h:470
DtVrfObjectDataEnvironmentalRecord * myVrfObjectStateRecord
Definition: controlObjectBaseRepository.h:472
bool mySendVrfObjectDataRec
Definition: controlObjectBaseRepository.h:490
Definition: controlObjectBaseRepository.h:37
#define DT_DLL_vrfExtObjects
Definition: dllExport.h:23
virtual void setExtendedData(const std::map< DtString, DtString > &)
Gets/sets extended data.
DtControlObjectCategory
Definition: controlObjectBaseRepository.h:46

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)