VR-Forces 5.0.2 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>
17 #include <vlpi/appearance.h>
18 
21 
22 class Dt3dBoundingVolume;
23 
24 #include <vector>
25 #include <map>
26 
29 class DtEnvironmentalBoundingSphereRecord;
30 class DtEnvironmentalRectangularVolumeRecord;
32 class DtGlobalObjectDesignatorList;
33 
35 {
43 };
44 
46 {
60 };
61 
62 class DtEnvironmentalPointRecord;
63 
65 
68 {
69 public:
70 
72  DtExtendedEnvironmentalDataRecord(const char* data, int length);
74 
78 
81 
83 
85  virtual DtEnvironmentalRecord * clone() const;
86 
89  virtual const char* networkData() const;
90  virtual const char* setNetworkData(const DtNetEnvironmentalRecord*);
91 
93  virtual int netRepSize() const;
94  virtual void setFromNet(const DtNetEnvironmentalRecord& buffer, int protocolVersion);
95 
96 protected:
97  virtual bool createNetworkRepresentation();
98  virtual bool resizeNetRep(int newSize);
99 
100 protected:
102  const char* myData;
103 };
104 
106 
109 {
110 public:
113 
116 
118  virtual void updateDataRecords(DtControlObjectBaseRepository*);
119 
121  virtual void decodeDataRecords(DtControlObjectBaseRepository*);
122 
124  virtual bool readFromRecord(const DtNetEnvironmentalRecord*);
125 };
126 
128 {
129 public:
130  typedef std::vector<DtVector> DtCOVertexList;
131  typedef std::vector<DtIttEnvironmentalProcessData*> DtGeometricDataList;
132  typedef std::map<int, DtIttSourceDataCreator> DtIttSourceDataMap;
133 
134 public:
135 
138 
141 
144 
147 
149  virtual DtStateRepository* clone(bool copy = false) const;
150 
151  virtual const DtControlObjectKind& kind() const;
152  virtual void setKind(const DtControlObjectKind& k);
153 
154  virtual const DtControlObjectCategory& category() const;
155  virtual void setCategory(const DtControlObjectCategory& c);
156 
157  const std::vector<DtVector>& vertexList() const;
158 
162  virtual void updateExtensions();
163 
167  virtual int compare(const DtControlObjectBaseRepository* rhs);
168 
170  virtual int compareToMostRecent();
171 
174  virtual bool locationsDifferent(bool updateIfDifferent);
175  virtual void emptyVertexList();
176 
180  static void initializePuffFactory();
181  static void addToPuffFactory(int iRecordType, DtIttSourceDataCreator fcn);
182  static DtIttSourceData* createPuffRecord(DtNetEnvironmentalRecord* geometric,
183  DtNetEnvironmentalRecord* source);
184  static DtIttSourceData* createPuffRecord(DtNetEnvironmentalRecord* rec);
185 
186  virtual void getBoundingVolume(DtVector& location, double& radius) const;
187 
188  const DtGeometricDataList& geometricRecords() const;
189  bool geometricRecordsChanged() const;
190  void clearGeometricRecordsChanged();
191 
194  virtual void updateDataRecords();
195 
197  virtual int numberOfSubordinates() const;
198  virtual bool getSubordinate(int i, DtGlobalObjectDesignator& d);
199  virtual const DtGlobalObjectDesignatorList& subordinates() const;
200  virtual DtGlobalObjectDesignatorList& subordinates();
201 
203  virtual void setExtendedData(const std::map<DtString, DtString>& ed);
204  virtual void setExtendedData(const DtString& key, const DtString& value);
205 
208  virtual double orientation() const;
209 
214  virtual DtString uuidString() const;
215 
216 public:
219  virtual void setVertices(const DtList& pnt);
220  virtual void appendVertex(const DtVector&);
221  virtual void setVertex(int i, const DtVector&);
222  virtual void removeVertex(int i);
223 
224 public:
226 
228  virtual void setObjectType(const DtObjectType&);
229 
230 
233  virtual DtForceType forceType() const;
234  virtual void setForceType(DtForceType i);
235 
237  virtual int color() const;
238  virtual void setColor(int);
239 
241  virtual const DtString& parent() const;
242  virtual void setParent(const DtString&);
243 
244  virtual const DtString& userData() const;
245  virtual void setUserData(const DtString&);
246 
247  virtual void setVrfObjectName(const DtString&);
248  virtual const DtString& vrfObjectName();
249 
250  virtual DtAppearance appearance() const;
251  virtual void setAppearance(const DtAppearance& app);
252 
253  virtual void setNumberOfSubordinates(int);
254  virtual void setSubordinate(int i, const DtGlobalObjectDesignator&);
255 
257  virtual const DtGlobalObjectDesignator& hostGlobalId() const;
258  virtual void setHostGlobalId(const DtGlobalObjectDesignator&);
259 
261  virtual void clearHostGlobalId();
262 
271  virtual bool getFontInformation(DtString& font, int& fontSize) const;
272  virtual void setFontInformation(const DtString&, int fontSize);
273 
275  virtual bool getFontColor(unsigned int& color) const;
276  virtual void setFontColor(unsigned int color);
277 
278  virtual bool getArrowInformation(int& arrowHeadPlacement, int& arrowStyle, int& arrowSize) const;
279  virtual void setArrowInformation(int arrowHeadPlacement, int arrowStyle, int arrowSize);
280 
281 public:
289 
292  virtual void setBoundingSphereRadius(double);
293  virtual double boundingSphereRadius() const;
294 
297  virtual void setBoundingSphereLocation(const DtVector&);
298  virtual const DtVector& boundingSphereLocation() const;
299 
300  bool hasBoundingSphereRecord() const;
301 
302 public:
310 
311  bool hasBoundingRectRecord() const;
312 
313  virtual void setBoundingExtent(const DtVector&);
314  const DtVector& boundingExtent() const;
315 
316  virtual void setBoundingCornerLocation(const DtVector&);
317  virtual const DtVector& boundingCornerLocation() const;
318 
319  virtual void setBoundingOrientation(const DtTaitBryan&);
320  const DtTaitBryan& boundingOrientation() const;
321 
322 public:
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 
372 public:
376  virtual void setCachePoints(bool);
377  bool cachePoints() const;
378 
381  virtual DtString extendedData(const DtString& key) const;
382 
384  {
385  return myExtendedRecordData;
386  }
387 
389  {
390  return myExtendedRecordData;
391  }
392 
393  int numberOfDatumRecords() const;
394  void setNumberOfDatumRecords(int);
395 
399  virtual void setSendVrfObjectDataRecord(bool shouldSend);
400  virtual bool shouldSendVrfObjectDataRecord() const;
402 
403 protected:
407  virtual bool createExtendedEnvironmentalStateRecord();
408 
412  virtual DtSimEnvironmentalObjectStateRecord* extendedEnvironmentalStateRecord();
413 
417  virtual bool createVrfObjectStateRecord();
418 
422  virtual DtVrfObjectDataEnvironmentalRecord* vrfObjectStateRecord();
423 
426  virtual bool createBoundingSphereRecord();
427 
431  virtual DtEnvironmentalBoundingSphereRecord* boundingSphereRecord();
432 
435  virtual bool createBoundingRectRecord();
436 
440  virtual DtEnvironmentalRectangularVolumeRecord* boundingRectRecord();
441 
442 protected:
444  virtual void setupKindFromType(const DtEntityType& type);
445  virtual void getBoundingVolume(EnvGeomSpheriod* rec);
446  virtual void clearGeometricRecords();
447 
448 protected:
450  virtual void extensionModified();
451 
452 public:
453  static DtEnvironmentProcessRepository* create();
454 
457 
461 
468  DtEnvironmentalBoundingSphereRecord* myBoundingSphereRecord;
471  DtEnvironmentalRectangularVolumeRecord* myBoundingRectRecord;
472 
478 
481 
483 
485 };
486 
488 {
489  return myGeometricRecords;
490 }
491 
493 {
495 }
496 
498 {
500 }
501 
503 {
504  return (myBoundingSphereRecord != NULL);
505 }
506 
508 {
509  return (myBoundingRectRecord != NULL);
510 }
511 
513 {
514  return myCachePoints;
515 }
Definition: controlObjectBaseRepository.h:40
Definition: controlObjectBaseRepository.h:55
Definition: controlObjectBaseRepository.h:51
Definition: controlObjectBaseRepository.h:127
DtEnvironmentalProcessExtendedRecordData myExtendedRecordData
Definition: controlObjectBaseRepository.h:482
const DtGeometricDataList & geometricRecords() const
Definition: controlObjectBaseRepository.h:487
Definition: controlObjectBaseRepository.h:58
Definition: ittEnvironmentalProcessData.h:18
Definition: controlObjectBaseRepository.h:53
Definition: vrfExtensions.h:22
const char * myData
Definition: controlObjectBaseRepository.h:102
Environmental process version of this class.
Definition: controlObjectBaseRepository.h:108
virtual void setObjectType(const DtObjectType &)
bool myNeedVrfObjectDataUpdate
Definition: controlObjectBaseRepository.h:477
DtVrfExtensions & operator=(const DtVrfExtensions &orig)
Definition: controlObjectBaseRepository.h:56
Definition: vrfExtendedRecordData.h:18
bool cachePoints() const
Definition: controlObjectBaseRepository.h:512
int myDataSize
Definition: controlObjectBaseRepository.h:101
bool hasBoundingRectRecord() const
Routines that are used to set/get information about the bounding rectangle. If this information is se...
Definition: controlObjectBaseRepository.h:507
Definition: controlObjectBaseRepository.h:39
Definition: controlObjectBaseRepository.h:57
bool myGeometricRecordsChanged
Definition: controlObjectBaseRepository.h:476
std::map< int, DtIttSourceDataCreator > DtIttSourceDataMap
Definition: controlObjectBaseRepository.h:132
const DtVrfExtendedRecordData & extendedRecordData() const
Definition: controlObjectBaseRepository.h:383
DtCOVertexList myVertexList
Keeps a list of all geometry point records to use to update internal model datas from.
Definition: controlObjectBaseRepository.h:460
Definition: controlObjectBaseRepository.h:47
Definition: controlObjectBaseRepository.h:37
Definition: objectType.h:27
std::vector< DtVector > DtCOVertexList
Definition: controlObjectBaseRepository.h:130
Definition: controlObjectBaseRepository.h:42
DtGeometricDataList myGeometricRecords
Definition: controlObjectBaseRepository.h:475
Definition: ittEnvironmentalProcessRecords.h:17
std::vector< DtIttEnvironmentalProcessData * > DtGeometricDataList
Definition: controlObjectBaseRepository.h:131
virtual const std::map< DtString, DtString > & extendedData() const
Gets/sets extended data.
Definition: controlObjectBaseRepository.h:38
Contains the DtVrfExtensions class declaration.
DtControlObjectBaseRepository * myLastCopy
Definition: controlObjectBaseRepository.h:470
Definition: controlObjectBaseRepository.h:50
DtEnvironmentalRectangularVolumeRecord * myBoundingRectRecord
Definition: controlObjectBaseRepository.h:471
Definition: controlObjectBaseRepository.h:52
DtEnvironmentalBoundingSphereRecord * myBoundingSphereRecord
Definition: controlObjectBaseRepository.h:468
Definition: controlObjectBaseRepository.h:54
void clearGeometricRecordsChanged()
Definition: controlObjectBaseRepository.h:497
static DtIttSourceDataMap thePuffFactory
This information is needed for ITT puff clouds.
Definition: controlObjectBaseRepository.h:474
const char * source
Definition: lz4.h:442
Network representation class for extended environmental data.
Definition: controlObjectBaseRepository.h:67
Wraps a DtIfVrfObjectData message into this structure so it can be sent as an environmental record...
Definition: vrfObjectDataEnvironmentalRecord.h:25
Definition: controlObjectBaseRepository.h:41
Definition: simEnvironmentalModelType.h:20
DtVrfExtendedRecordData & extendedRecordData()
Definition: controlObjectBaseRepository.h:388
virtual void extensionModified()
DtControlObjectKind
Definition: controlObjectBaseRepository.h:34
bool hasBoundingSphereRecord() const
Definition: controlObjectBaseRepository.h:502
Definition: simEnvironmentalObjectStateRecord.h:138
Contains Extended DI-Guy Object net types.
DtIttSourceData *(* DtIttSourceDataCreator)(DtNetEnvironmentalRecord *)
Definition: ittEnvironmentalProcessData.h:132
int myPointsSet
Definition: controlObjectBaseRepository.h:480
DtControlObjectCategory myCategory
Definition: controlObjectBaseRepository.h:456
Definition: controlObjectBaseRepository.h:59
bool myCachePoints
Definition: controlObjectBaseRepository.h:479
DtControlObjectKind myKind
Definition: controlObjectBaseRepository.h:455
Definition: controlObjectBaseRepository.h:49
Definition: controlObjectBaseRepository.h:48
bool geometricRecordsChanged() const
Definition: controlObjectBaseRepository.h:492
DtSimEnvironmentalObjectStateRecord * myExtEnvStateRecord
DtSimEnvironmentalObjectStateRecord is a special form of DtEnvironmentalRecord, used to decode custom...
Definition: controlObjectBaseRepository.h:467
DtVrfObjectDataEnvironmentalRecord * myVrfObjectStateRecord
Definition: controlObjectBaseRepository.h:469
bool mySendVrfObjectDataRec
Definition: controlObjectBaseRepository.h:484
Definition: controlObjectBaseRepository.h:36
#define DT_DLL_vrfExtObjects
Definition: dllExport.h:23
virtual void setExtendedData(const std::map< DtString, DtString > &)
Gets/sets extended data.
DtControlObjectCategory
Definition: controlObjectBaseRepository.h:45

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)