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) 2025 MAK Technologies, Inc.
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 
81  virtual ~DtExtendedEnvironmentalDataRecord() override;
82 
84 
86  virtual DtEnvironmentalRecord *clone() const override;
87 
90  virtual const char* networkData() const;
91  virtual const char* setNetworkData(const DtNetEnvironmentalRecord*);
92 
94  virtual int netRepSize() const override;
95  virtual void setFromNet(const DtNetEnvironmentalRecord &buffer,
96  int protocolVersion) override;
97 
98 protected:
99  virtual bool createNetworkRepresentation() override;
100  virtual bool resizeNetRep(int newSize) override;
101 
102 protected:
104  const char* myData;
105 };
106 
108 
111 {
112 public:
115 
117  virtual ~DtEnvironmentalProcessExtendedRecordData() override;
118 
120  virtual void updateDataRecords(DtControlObjectBaseRepository*);
121 
123  virtual void decodeDataRecords(DtControlObjectBaseRepository*);
124 
126  virtual bool readFromRecord(const DtNetEnvironmentalRecord*);
127 };
128 
130 {
131 public:
132  typedef std::vector<DtVector> DtCOVertexList;
133  typedef std::vector<DtIttEnvironmentalProcessData*> DtGeometricDataList;
134  typedef std::map<int, DtIttSourceDataCreator> DtIttSourceDataMap;
135 
136 public:
137 
140 
142  virtual ~DtControlObjectBaseRepository() override;
143 
146 
149 
151  virtual DtStateRepository *clone(bool copy = false) const override;
152 
153  DtEntityType entityType() const { return environmentType(); };
154  DtEntityType objectType() const { return entityType(); };
155 
156  virtual const DtControlObjectKind& kind() const;
157  virtual void setKind(const DtControlObjectKind& k);
158 
159  virtual const DtControlObjectCategory& category() const;
160  virtual void setCategory(const DtControlObjectCategory& c);
161 
163  virtual void generateUniqueId();
165  virtual void setUniqueId(const DtVrlUuid& uniqueId);
167  virtual const DtVrlUuid& uniqueId() const;
168 
169  const std::vector<DtVector>& vertexList() const;
170 
174  virtual void updateExtensions();
175 
179  virtual int compare(const DtControlObjectBaseRepository* rhs);
180 
182  virtual int compareToMostRecent();
183 
186  virtual bool locationsDifferent(bool updateIfDifferent);
187  virtual void emptyVertexList();
188 
192  static void initializePuffFactory();
193  static void addToPuffFactory(int iRecordType, DtIttSourceDataCreator fcn);
194  static DtIttSourceData* createPuffRecord(DtNetEnvironmentalRecord* geometric,
195  DtNetEnvironmentalRecord* source);
196  static DtIttSourceData* createPuffRecord(DtNetEnvironmentalRecord* rec);
197 
198  virtual void getBoundingVolume(DtVector& location, double& radius) const;
199 
200  const DtGeometricDataList& geometricRecords() const;
201  bool geometricRecordsChanged() const;
202  void clearGeometricRecordsChanged();
203 
206  virtual void updateDataRecords();
207 
209  virtual int numberOfSubordinates() const;
210  virtual bool getSubordinate(int i, DtGlobalObjectDesignator& d);
211  virtual const DtGlobalObjectDesignatorList& subordinates() const;
212  virtual DtGlobalObjectDesignatorList& subordinates();
213 
215  virtual void setExtendedData(const std::map<DtString, DtString> &ed) override;
216  virtual void setExtendedData(const DtString &key,
217  const DtString &value) override;
218 
221  virtual double orientation() const;
222 
225  virtual void setVertices(const DtList& pnt);
226  virtual void appendVertex(const DtVector&);
227  virtual void setVertex(int i, const DtVector&);
228  virtual void removeVertex(int i);
229 
231 
234  virtual DtForceType forceType() const;
235  virtual void setForceType(DtForceType i);
236 
238  virtual int color() const;
239  virtual void setColor(int);
240 
242  virtual const DtString& parent() const;
243  virtual void setParent(const DtString&);
244 
245  virtual const DtString& userData() const;
246  virtual void setUserData(const DtString&);
247 
248  virtual void setVrfObjectName(const DtString&);
249  virtual const DtString& vrfObjectName();
250 
251  virtual DtAppearance appearance() const;
252  virtual void setAppearance(const DtAppearance& app);
253 
254  virtual void setNumberOfSubordinates(int);
255  virtual void setSubordinate(int i, const DtGlobalObjectDesignator&);
256 
258  virtual const DtGlobalObjectDesignator& hostGlobalId() const;
259  virtual void setHostGlobalId(const DtGlobalObjectDesignator&);
260 
262  virtual void setObjectAttachMode(DtVrfObjectAttachMode);
263  virtual DtVrfObjectAttachMode objectAttachMode() const;
264 
266  virtual void clearHostGlobalId();
267 
276  virtual bool getFontInformation(DtString& font, int& fontSize) const;
277  virtual void setFontInformation(const DtString&, int fontSize);
278 
280  virtual bool getFontColor(unsigned int& color) const;
281  virtual void setFontColor(unsigned int color);
282 
283  virtual bool getArrowInformation(int& arrowHeadPlacement, int& arrowStyle, int& arrowSize) const;
284  virtual void setArrowInformation(int arrowHeadPlacement, int arrowStyle, int arrowSize);
285 
293 
296  virtual void setBoundingSphereRadius(double);
297  virtual double boundingSphereRadius() const;
298 
301  virtual void setBoundingSphereLocation(const DtVector&);
302  virtual const DtVector& boundingSphereLocation() const;
303 
304  bool hasBoundingSphereRecord() const;
305 
313 
314  bool hasBoundingRectRecord() const;
315 
316  virtual void setBoundingExtent(const DtVector&);
317  const DtVector& boundingExtent() const;
318 
319  virtual void setBoundingCornerLocation(const DtVector&);
320  virtual const DtVector& boundingCornerLocation() const;
321 
322  virtual void setBoundingOrientation(const DtTaitBryan&);
323  const DtTaitBryan& boundingOrientation() const;
324 
327  virtual void setProjected(bool);
328  virtual bool projected() const;
329 
330  virtual void setClosedFigure(bool);
331  virtual bool closedFigure() const;
332 
333  virtual void setBound2D(bool);
334  virtual bool bound2D() const;
335 
337  virtual void setFillStyle(int);
338  virtual int fillStyle() const;
339 
340  virtual void setLineStyle(int);
341  virtual int lineStyle() const;
342 
343  virtual void setLineWidth(int);
344  virtual int lineWidth() const;
345 
347  virtual void setPhysicalLineHeight(double);
348  virtual double physicalLineHeight() const;
349 
351  virtual void setPhysicalLineWidth(double);
352  virtual double physicalLineWidth() const;
353 
356  virtual void setRelativeLocation(const DtVector&);
357  virtual const DtVector& relativeLocation() const;
358 
361  virtual void setVelocity(const DtVector&);
362  virtual const DtVector& velocity() const;
363 
364  virtual void setAcceleration(const DtVector&);
365  virtual const DtVector& acceleration() const;
366 
367  virtual void setDRAlogrithm(DtDeadReckonTypes);
368  virtual const DtDeadReckonTypes& drAlgorithm() const;
370 
371  virtual void setOffsetPoints(const std::vector<DtVector>&);
372  virtual const std::vector<DtVector>& offsetPoints() const;
373 
377  virtual void setCachePoints(bool);
378  bool cachePoints() const;
379 
382  virtual DtString extendedData(const DtString &key) const override;
383 
385  {
386  return myExtendedRecordData;
387  }
388 
390  {
391  return myExtendedRecordData;
392  }
393 
394  int numberOfDatumRecords() const;
395  void setNumberOfDatumRecords(int);
396 
400  virtual void setSendVrfObjectDataRecord(bool shouldSend);
401  virtual bool shouldSendVrfObjectDataRecord() const;
403 
404 protected:
405 
406 #ifdef DtDIS
407  virtual void addUuidRecord();
409 #endif
410 
414  virtual bool createExtendedEnvironmentalStateRecord();
415 
419  virtual DtSimEnvironmentalObjectStateRecord* extendedEnvironmentalStateRecord();
420 
424  virtual bool createVrfObjectStateRecord();
425 
429  virtual DtVrfObjectDataEnvironmentalRecord* vrfObjectStateRecord();
430 
433  virtual bool createBoundingSphereRecord();
434 
438  virtual DtEnvironmentalBoundingSphereRecord* boundingSphereRecord();
439 
442  virtual bool createBoundingRectRecord();
443 
447  virtual DtEnvironmentalRectangularVolumeRecord* boundingRectRecord();
448 
450  virtual void setupKindFromType(const DtEntityType& type);
451  virtual void getBoundingVolume(EnvGeomSpheriod* rec);
452  virtual void clearGeometricRecords();
453 
455  virtual void extensionModified() override;
456 
457 public:
458  static DtEnvironmentProcessRepository* create();
459 
462 
466 
473  DtEnvironmentalBoundingSphereRecord* myBoundingSphereRecord;
476  DtEnvironmentalRectangularVolumeRecord* myBoundingRectRecord;
477 
479  DtVrlUuid myUuid;
480 
486 
489 
491 
493 };
494 
496 {
497  return myGeometricRecords;
498 }
499 
501 {
503 }
504 
506 {
508 }
509 
511 {
512  return (myBoundingSphereRecord != NULL);
513 }
514 
516 {
517  return (myBoundingRectRecord != NULL);
518 }
519 
521 {
522  return myCachePoints;
523 }
Definition: controlObjectBaseRepository.h:41
Definition: controlObjectBaseRepository.h:56
Definition: controlObjectBaseRepository.h:52
Definition: controlObjectBaseRepository.h:129
DtEnvironmentalProcessExtendedRecordData myExtendedRecordData
Definition: controlObjectBaseRepository.h:490
const DtGeometricDataList & geometricRecords() const
Definition: controlObjectBaseRepository.h:495
Definition: controlObjectBaseRepository.h:59
Definition: ittEnvironmentalProcessData.h:18
Definition: controlObjectBaseRepository.h:54
Definition: vrfExtensions.h:22
const char * myData
Definition: controlObjectBaseRepository.h:104
Environmental process version of this class.
Definition: controlObjectBaseRepository.h:110
bool myNeedVrfObjectDataUpdate
Definition: controlObjectBaseRepository.h:485
DtVrfExtensions & operator=(const DtVrfExtensions &orig)
Definition: controlObjectBaseRepository.h:57
Definition: vrfExtendedRecordData.h:18
bool cachePoints() const
Definition: controlObjectBaseRepository.h:520
int myDataSize
Definition: controlObjectBaseRepository.h:103
bool hasBoundingRectRecord() const
Routines that are used to set/get information about the bounding rectangle. If this information is se...
Definition: controlObjectBaseRepository.h:515
Definition: controlObjectBaseRepository.h:40
Definition: controlObjectBaseRepository.h:58
bool myGeometricRecordsChanged
Definition: controlObjectBaseRepository.h:484
std::map< int, DtIttSourceDataCreator > DtIttSourceDataMap
Definition: controlObjectBaseRepository.h:134
DtVrlUuid myUuid
Definition: controlObjectBaseRepository.h:479
const DtVrfExtendedRecordData & extendedRecordData() const
Definition: controlObjectBaseRepository.h:384
DtCOVertexList myVertexList
Keeps a list of all geometry point records to use to update internal model datas from.
Definition: controlObjectBaseRepository.h:465
Definition: controlObjectBaseRepository.h:48
Definition: controlObjectBaseRepository.h:38
std::vector< DtVector > DtCOVertexList
Definition: controlObjectBaseRepository.h:132
Definition: controlObjectBaseRepository.h:43
DtGeometricDataList myGeometricRecords
Definition: controlObjectBaseRepository.h:483
Definition: ittEnvironmentalProcessRecords.h:17
std::vector< DtIttEnvironmentalProcessData * > DtGeometricDataList
Definition: controlObjectBaseRepository.h:133
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:475
Definition: controlObjectBaseRepository.h:51
DtEnvironmentalRectangularVolumeRecord * myBoundingRectRecord
Definition: controlObjectBaseRepository.h:476
Definition: controlObjectBaseRepository.h:53
DtEnvironmentalBoundingSphereRecord * myBoundingSphereRecord
Definition: controlObjectBaseRepository.h:473
Definition: controlObjectBaseRepository.h:55
void clearGeometricRecordsChanged()
Definition: controlObjectBaseRepository.h:505
static DtIttSourceDataMap thePuffFactory
This information is needed for ITT puff clouds.
Definition: controlObjectBaseRepository.h:482
const char * source
Definition: lz4.h:442
DtEntityType objectType() const
Definition: controlObjectBaseRepository.h:154
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:389
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:510
DtVrfObjectAttachMode
Definition: vrfObjectAttachEnums.h:8
bool myGeneratedUuid
Definition: controlObjectBaseRepository.h:478
Definition: simEnvironmentalObjectStateRecord.h:143
Contains Extended DI-Guy Object net types.
DtIttSourceData *(* DtIttSourceDataCreator)(DtNetEnvironmentalRecord *)
Definition: ittEnvironmentalProcessData.h:133
int myPointsSet
Definition: controlObjectBaseRepository.h:488
DtControlObjectCategory myCategory
Definition: controlObjectBaseRepository.h:461
Definition: controlObjectBaseRepository.h:60
DtEntityType entityType() const
Definition: controlObjectBaseRepository.h:153
bool myCachePoints
Definition: controlObjectBaseRepository.h:487
DtControlObjectKind myKind
Definition: controlObjectBaseRepository.h:460
Definition: controlObjectBaseRepository.h:50
Definition: controlObjectBaseRepository.h:49
bool geometricRecordsChanged() const
Definition: controlObjectBaseRepository.h:500
DtSimEnvironmentalObjectStateRecord * myExtEnvStateRecord
DtSimEnvironmentalObjectStateRecord is a special form of DtEnvironmentalRecord, used to decode custom...
Definition: controlObjectBaseRepository.h:472
DtVrfObjectDataEnvironmentalRecord * myVrfObjectStateRecord
Definition: controlObjectBaseRepository.h:474
bool mySendVrfObjectDataRec
Definition: controlObjectBaseRepository.h:492
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 Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)