VR-Forces 4.7 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfObject.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
11 
19 #include "geometry/extent.h"
21 
23 #include <readerWriter/rwString.h>
25 #include "vrfutil/rwUUID.h"
27 #include <readerWriter/rwBoolean.h>
29 #include "readerWriter/rwVector.h"
31 #include "vl/globalObjectDesignator.h"
32 #include <vlpi/entityIdentifier.h>
33 
35 #include <vl/hostStructs.h>
36 #include <vlpi/appearance.h>
37 #include <vlutil/vlList.h>
38 #include <matrix/geodeticCoord.h>
39 
40 #include <boost/smart_ptr/shared_ptr.hpp>
41 #include <tbb/spin_mutex.h>
42 #include <tbb/spin_rw_mutex.h>
43 
49 class DtStateRepository;
52 class DtVrfObjectMessage;
53 class DtVrfObjectManager;
54 class DtSimManager;
56 class DtSimTaskManager;
57 class DtSimRadio;
63 class DtReflectedEntity;
66 class DtVrfObject;
69 class Coordinate_System;
70 class DtAttachedTerrain;
71 class DtReflectedObject;
72 class DtPhysicalWorld;
73 class DtObjectConsole;
74 class DtSetDataManager;
77 class DtSettingsObject;
84 class DtCriticalSection;
87 
90 typedef void (*DtVrfObjectCallbackFunction)(DtVrfObject* obj, void* userData);
91 typedef void (*DtObjectDataChangedCallbackFunction)(DtVrfObject* obj, int changeFlag, void* userData);
92 
94 
95 class DtVrfObject;
97 
101 {
102 public:
103 
105  : mySimObject(simObject)
106  {
107 
108  }
109 
110  virtual DtVrfObject* object() { return mySimObject; }
111  virtual bool objectValid() { return mySimObject != NULL; }
112  virtual void invalidateObject() { mySimObject = NULL; }
113 
114 protected:
115 
117 };
118 
119 typedef boost::shared_ptr<DtVrfObjectDeletionTracker> DtVrfObjectDeletionHandle;
120 
126 {
127 public:
129  DtRwVrfObjectName(const DtString& name, DtReaderWriterRegistry* const parentRegistry);
130  DtRwVrfObjectName(const DtSymbolString& name, DtReaderWriterRegistry* const parentRegistry);
131 
133 
134  virtual void setVrfObject(DtVrfObject*);
135 
136  virtual DtlObjPtr getData(DtlObjPtr args, const SearchPaths& searchPaths,
137  const DtVariableBindingsList& variableBindings);
138 
139 protected:
141 };
142 
146 {
147 public:
148  DtVrfObjectUUID(const DtString& name, DtReaderWriterRegistry* const parentRegistry);
149  DtVrfObjectUUID(const DtSymbolString& name, DtReaderWriterRegistry* const parentRegistry);
150 
152 
153  virtual void setVrfObject(DtVrfObject*);
154 
156  virtual void setRecreateUUIDOnLoad(bool);
157 
159  virtual void setResolved(bool);
160 
161  virtual DtlObjPtr getData(DtlObjPtr args, const SearchPaths& searchPaths,
162  const DtVariableBindingsList& variableBindings);
163 
164 protected:
166  virtual void noRwValueSpecified();
167 
168 protected:
172 };
173 
189  , public DtObjectDebugger<DtVrfObject>
190 {
191 public:
193  {
194  MarkingText = 1,
199  SubordinateOfForceLevel
200  };
201 
205  typedef std::pair<DtVrfObjectCallbackFunction, void*> DtVrfObjectCallbackDataPair;
206  typedef std::pair<DtVrfObject*, DtVrfObjectCallbackDataPair> DtVrfObjectCallbackDataPair2;
207  typedef std::pair<DtObjectDataChangedCallbackFunction, void*> DtVrfObjectDataChangedCallbackDataPair;
209  typedef std::list<DtLuaScriptInterfaceExtension::CreatorUserPair> ScriptInterfaceExtensions;
210 
211 protected:
212 
214  DtVrfObject();
215 
216 public:
217 
218  DtVrfObject(
219  const DtObjectType & objectType,
220  DtVrfObjectManager* vrfObjectManager,
221  bool createLocalObject = true,
222  bool publishLocalObject = true,
223  const DtEntityIdentifier& objectIdentifier = DtEntityIdentifier::nullId(),
224  const DtGlobalObjectDesignator* globalId = 0,
225  DtReflectedObject* reflectedObject = 0,
226  const DtString & objectName = DtString::nullString(),
227  const DtString & objectLabel = DtString::nullString(),
228  DtForceType forceType = DtForceOther,
229  const DtList* vertices = 0,
230  const DtTaitBryan* orientation = 0,
231  bool projection = false,
232  bool closedFigure = false,
233  const DtAppearance& appearance = DtAppearance::nullAppearance(),
234  const DtString & readerWriterName = "vrf-object",
235  DtReaderWriterRegistry* parentRegistry = 0,
236  const DtUUID& uuid = DtUUID::nullUUID(),
237  bool connectToRadioNetowrk = true);
238 
240  virtual ~DtVrfObject();
241 
244  static void enableSingleObjectMode();
246  static bool singleObjectModeActive();
247 
252  virtual bool create(bool createNetworkInterface = true);
253 
256  virtual bool finalizeObjectCreation();
257 
259  virtual void finalizeObjectRead();
260 
263  virtual void setSimulationCapable(bool);
264  virtual bool simulationCapable() const;
265 
269  virtual void prepareForReinitialization();
270 
273  virtual void createCommunicationsInterface();
274 
277  virtual void createCommunicationsInterface(const DtRadioDescriptorList& descList);
278 
281  virtual void createSetDataManager();
282 
285  virtual int vrfSessionId() const;
286 
289  virtual bool init();
290 
292 
296  virtual void tick();
297 
298  virtual void startTick();
299  virtual void tickComponents();
300  virtual void endTick();
301 
303  virtual void tickPublisherOnly();
304 
309  virtual bool createRepository(DtVrfObjectParameters* parameterEntry);
310  virtual bool createTaskManager();
311  virtual bool createScriptInterfaceHandler();
312  virtual bool createComponentManager();
315  virtual bool createVrfObjectPlanManager();
316  virtual bool createRadio();
317  virtual bool createNavigationInterfaceManager();
318 
321  virtual void setNavigationEnabled(bool);
322  virtual bool navigationEnabled() const;
323 
327  virtual void addToPotentialLuaScripts(int);
328  virtual int potentialLuaScripts() const;
329 
331  virtual int scenarioRunId() const;
332 
334  virtual double timeOfDay() const;
335 
337  virtual double dateAndTimeOfDay() const;
338 
340  virtual DtSharedVrfObjectReference sharedReference();
341  virtual DtSharedVrfObjectReference sharedReference() const;
342 
345  virtual double illumination() const;
346 
349  virtual double expectedIllumination(double dateAndTimeOfDay) const;
350 
352  virtual DtVrfObject* weather() const;
353 
355  virtual MAKVRinTerra::DtFeatureGeometry featureGeometry() const;
356 
358  virtual void updateIllumination() const;
359 
361  virtual void updateWeather();
362 
364  virtual void setRangeRingsParametersPublisherTickRange(double d);
365 
367  virtual void createAndInitializeRangeRingsParameterPublisher();
368 
371  virtual bool needsIlluminationUpdate() const;
372 
376  virtual bool isOnTopOf(const DtVrfObject*, bool checkSupportPoints = false) const;
377  virtual bool isOnTopOf(const DtVrfObject*, double d, bool checkSupportPoints = false) const;
378 
380  virtual bool isSimulationObject() const;
381  virtual bool isEntity() const;
382  virtual bool isUnit() const;
383 
385  virtual bool intersect(const DtChord&, DtVrfChordIntersectionRecord* record = 0) const;
386 
388  virtual bool checkAndDisembarkIfEmbarked(const DtVector& localPosition);
389 
392  virtual bool checkIfMoveOntoEmbarked(const DtVector& localPosition, DtVrfObject*& hit, const std::list<DtUUID>& additionalIgnore = std::list<DtUUID>());
393 
395  virtual bool hasHighFidelityObjectGeometryModel() const;
396 
398  virtual bool isEmbeddedInTerrain() const;
399 
403  virtual bool needsWeatherAreaUpdate() const;
404 
406  virtual bool isGlobalPlan() const;
407 
409  virtual const DtSimManager* simManager() const;
410  virtual DtSimManager* simManager();
411 
413  virtual DtSimTaskManager* taskManager() const;
414  virtual DtScriptInterfaceHandler* scriptInterfaceHandler() const;
415  virtual DtSimComponentManager* componentManager() const;
416  virtual DtVrfObjectPlanManager* vrfObjectPlanManager() const;
417  virtual DtSimRadio* radio() const;
418 
419  virtual DtVrfObjectStateRepository* vrfState() const;
420 
431  virtual DtExtent extent() const;
432 
437  virtual DtExtent roughExtent() const;
438 
440  const DtVrfObjectParameters* parameterEntry() const;
441 
444  const DtMovingObjectParameters* movingObjectParameterEntry() const;
445 
450  virtual void expandExtent(DtExtent& extent) const;
451 
455  virtual void sendVrfObjectCreated(unsigned long requestId = 0, bool requestCreated = true);
456 
458  virtual void setupFromMessageContent(DtIfModifyVrfObject* ifModVrfObject);
459 
462  virtual void setIsVrfSimulatedObject(bool b);
463 
464  virtual bool isVrfSimulatedObject() const;
465  virtual bool isVrfSimulated() const
466  {
467  return isVrfSimulatedObject();
468  }
469 
477  virtual bool isSimulatingComponents() const;
478 
480  virtual void save(std::string&);
481 
483  virtual void putSelf(std::string& fp, int indentLevel = 0, bool writeUnspecified = true,
484  const DtFilename& path = DtReaderWriter::appPath());
485 
487  virtual void getSelf(DtlObjPtr args, const DtReaderWriter::SearchPaths& searchPaths,
488  const DtVariableBindingsList& variableBindings);
489 
490  virtual bool validNameLength(const DtString& name) const;
491 
499  virtual bool setMarkingText(const DtString & name, bool rename = true);
500 
514  virtual void addVrfObjectChangedCallback(
515  DtVrfObjectCallbackFunction function, void* userData);
516  virtual void removeVrfObjectChangedCallback(
517  DtVrfObjectCallbackFunction function, void* userData);
518 
520  virtual void addNavigationInterfaceChangedCallback(
521  DtVrfObjectCallbackFunction function, void* userData);
522  virtual void removeNavigationInterfaceChangedCallback(
523  DtVrfObjectCallbackFunction function, void* userData);
524 
531  virtual void addVerticesChangedCallback(
532  DtVrfObjectCallbackFunction function, void* userData);
533  virtual void removeVerticesChangedCallback(
534  DtVrfObjectCallbackFunction function, void* userData);
536 
540  virtual void addObjectDataChangedCallback(DtObjectDataChangedCallbackFunction, void*);
541  virtual void removeObjectDataChangedCallback(DtObjectDataChangedCallbackFunction, void*);
542  virtual void invokeObjectDataChangedCallbacks(ChangeFlag);
544 
550  virtual void addRelativeVerticesChangedCallback(
551  DtVrfObjectCallbackFunction function, void* userData);
552  virtual void removeRelativeVerticesChangedCallback(
553  DtVrfObjectCallbackFunction function, void* userData);
555 
558  virtual void addVrfObjectPredicateCallback(
560  const DtVrfObjectPredicate& predicate, DtTime evaluationPeriod = 0,
561  void* userData = 0);
562  virtual void removeVrfObjectPredicateCallback(
564  const DtVrfObjectPredicate& predicate, DtTime evaluationPeriod = 0,
565  void* userData = 0);
566 
569  virtual int predicateCallbackCount() const;
570 
575  virtual void invokeVrfObjectPredicateCallbacks();
576 
579  virtual void setCoordinateSystem(const Coordinate_System* coordinateSystem);
580 
581  virtual const DtVrfObjectManager* simObjectManager() const;
582  virtual DtVrfObjectManager* simObjectManager();
583  virtual void setSimObjectManager(DtVrfObjectManager* simObjectManager);
584 
585  virtual bool createNetInterface();
586 
591  virtual void setGlobalId(const DtGlobalObjectDesignator & id);
592  virtual const DtGlobalObjectDesignator & globalId() const;
593 
596  virtual const DtString & globalIdString() const;
597 
602  virtual bool baseSetMarkingText(const DtString & name);
603  virtual const DtString& markingText() const;
604 
609  virtual const DtString& objectName() const;
610 
613  virtual void addNameAlias(const DtString& name);
614 
617  virtual void unregisterAliases();
618 
620  virtual void setUUID(const DtUUID&);
621 
623  virtual const DtUUID& uuid() const;
624 
626  virtual const DtString & objectLabel() const;
627  virtual void setObjectLabel(const DtString & objectLabel);
628 
630  virtual DtForceType forceType() const;
631  virtual void setForceType(DtForceType f);
632 
634  virtual void setIsSubordinateOfForceLevel(bool);
635  virtual bool isSubordinateOfForceLevel() const;
636 
638  virtual const DtString & overlayParent() const;
639  virtual void setOverlayParent(const DtString & overlayParent);
640 
642  virtual DtStateRepository* netState();
643  virtual const DtStateRepository* netState() const;
644 
646  virtual DtSimObjectNetInterface* netInterface();
647  virtual const DtSimObjectNetInterface* netInterface() const;
648  virtual void setNetInterface(DtSimObjectNetInterface* netInterface);
649 
651  virtual void setObjectIdentifier(const DtEntityIdentifier & objectId);
652  virtual const DtEntityIdentifier & objectIdentifier() const;
653 
656  virtual const DtString & objectIdentifierString() const;
657 
660  virtual bool isLocal() const;
661 
665 
666  virtual void setPublishObject(bool publishObject);
667  virtual bool publishObject() const;
669 
671  virtual DtString type() const;
672 
673  virtual DtString objectClassType() const;
674  virtual void setObjectClassType(const DtString & objectClassType);
675 
678  virtual void clearVerticesChangedCallbacks();
679 
682  virtual void clearRelativeVerticesChangedCallbacks();
683 
686  virtual void clearPredicateCallbacks();
687 
688  static void addSimObjectCreatorFcn(const DtString & type,
690 
691  static void objectAboutToBeRemoved(DtVrfObject * msg, void * usr);
692  virtual void processObjectAboutToBeRemoved(DtVrfObject*);
693 
698  static DtSimObjectFactory* factory();
699  static void setFactory(DtSimObjectFactory* factory);
700 
701  virtual DtSimObjectStateRepository* simState();
702  virtual const DtSimObjectStateRepository* simState() const;
703  virtual void setSimState(DtVrfObjectStateRepository* simState);
704 
705  void setEntityType(const DtEntityType & entityType);
706  const DtEntityType & entityType() const;
707 
708  void setDestroyed(bool destroyed);
709  bool isDestroyed() const;
710 
722  virtual void place(const DtVector& location, bool* dataAvailable = 0,
723  bool requireAllData = false);
724 
736  virtual void place(const DtReal heading, bool* dataAvailable = 0,
737  bool requireAllData = false);
738 
751  virtual void place(const DtVector& location, const DtReal heading,
752  bool* dataAvailable = 0, bool requireAllData = false);
753 
754  const DtString & echelonIdString() const;
755 
756  virtual DtSharedVrfObjectReference leadEntity() const;
757 
758  virtual DtSharedVrfObjectReference firstSubordinate() const;
759 
760  virtual DtSharedVrfObjectReference lastSubordinate() const;
761 
763  virtual DtSharedVrfObjectReference firstHealthySubordinate() const;
764 
765  virtual void echelonIdChanged() {}
766 
767  virtual const DtObjectId & objectId() const;
768  virtual const DtObjectType& objectType() const;
769 
771  virtual bool isEmbarked() const;
772 
775  virtual DtVector locationRelativeTo(const DtVector&, DtVrfObject* relativeTo) const;
776 
779  virtual DtVector velocityRelativeTo(const DtVector&, DtVrfObject* relativeTo) const;
780 
783  virtual DtVector accelerationRelativeTo(const DtVector&, DtVrfObject* relativeTo) const;
784 
787  virtual DtTaitBryan orientationRelativeTo(const DtTaitBryan&, DtVrfObject* relativeTo) const;
788 
790  virtual DtVrfObject* embarkedOn() const;
791 
794  virtual bool isEmbarkedOn(const DtUUID& parent) const;
795 
796  DtAttachedTerrain* terrainAttachedTo();
797  const DtAttachedTerrain* terrainAttachedTo() const;
798 
799  virtual const DtPhysicalWorld* physicalWorld() const;
800  virtual DtPhysicalWorld* physicalWorld();
801 
803  void setAboutToBeRemoved(bool);
804  bool aboutToBeRemoved() const;
805 
808  virtual DtOutputStream& objectConsoleDebug(const DtString& channel = "") const;
809  virtual DtOutputStream& objectConsoleVerbose(const DtString& channel = "") const;
810  virtual DtOutputStream& objectConsoleInfo(const DtString& channel = "") const;
811  virtual DtOutputStream& objectConsoleWarn(const DtString& channel = "") const;
812  virtual DtOutputStream& objectConsoleError(const DtString& channel = "") const;
814 
817  virtual DtObjectConsole* objectConsole();
818  virtual const DtObjectConsole* objectConsole() const;
820 
825  virtual DtSetDataManager* setDataManager();
826  virtual const DtSetDataManager* setDataManager() const;
827 
832  virtual DtVrfObjectCommunicationInterface* communicationInterface();
833 
837  virtual DtVrfObjectNavInterface* navInterface();
838 
842  virtual DtVrfObjectTerrainPreloadManager* terrainPreloadManager();
843 
846  DtVrfObjectSubComponentTypes* vrfSubComponentTypes() const;
847 
850  virtual void duplicateVrfSubComponentTypes();
851 
853  virtual void restoreDuplicatedVrfSubComponentTypes();
854 
857  virtual bool hasPlan() const;
858 
860  virtual bool executingPlan() const;
861 
863  virtual bool isCurrentlyTasked() const;
864 
866  virtual bool isEllipsoid() const;
867 
873  virtual void addPostInitFromParamsCallback(DtVrfObjectCallbackFunction fcn,
874  void* usr);
875  virtual void removePostInitFromParamsCallback(DtVrfObjectCallbackFunction fcn,
876  void* usr);
878 
883  virtual DtU8 getNextEmitterSystemId();
884 
886  static void setDefaultNotifyLevel(DtNotifyLevelType level);
888  static DtNotifyLevelType defaultNotifyLevel();
889 
893  virtual void addScriptExtension(DtLuaScriptInterfaceExtension::CreatorFcn extension, void* usr);
895  virtual void removeScriptExtension(DtLuaScriptInterfaceExtension::CreatorFcn extension, void* usr);
897  virtual const ScriptInterfaceExtensions& scriptExtensions() const;
898 
901  virtual void regenerateUUIDForImport();
902 
903 public:
904 
907  static DtVrfObject* creator(
908  const DtObjectType& objectType,
909  DtVrfObjectManager* simObjectManager,
910  bool createLocalObject = true,
911  bool publishLocalObject = true,
912  const DtEntityIdentifier& objectIdentifier = DtEntityIdentifier::nullId(),
913  const DtGlobalObjectDesignator* globalId = 0,
914  DtReflectedObject* reflectedObject = 0,
915  const DtString & objectName = DtString::nullString(),
916  const DtString & objectLabel = DtString::nullString(),
917  DtForceType forceType = DtForceOther,
918  const DtList* vertices = 0,
919  const DtTaitBryan* orientation = 0,
920  bool projection = false,
921  bool closedFigure = false,
922  const DtAppearance& appearance = DtAppearance::nullAppearance(),
923  const DtString & readerWriterName = DtString::nullString(),
924  DtReaderWriterRegistry* parentRegistry = 0,
925  const DtUUID& uuid = DtUUID::nullUUID(),
926  bool connectToRadioNetowrk = true);
927 
929  static DtVrfObject* createObject(
930  const DtObjectType& objectType,
931  DtVrfObjectManager* vrfObjectManager,
932  const DtString & classType,
933  bool createLocalObject = true,
934  bool publishLocalObject = true,
935  const DtEntityIdentifier& objectIdentifier = DtEntityIdentifier::nullId(),
936  const DtGlobalObjectDesignator* globalId = 0,
937  DtReflectedObject* reflectedObject = 0,
938  const DtString & objectName = DtString::nullString(),
939  const DtString & objectLabel = DtString::nullString(),
940  DtForceType forceType = DtForceOther,
941  const DtList* vertices = 0,
942  const DtTaitBryan* orientation = 0,
943  bool projection = false,
944  bool closedFigure = false,
945  const DtAppearance& appearance = DtAppearance::nullAppearance(),
946  const DtString & readerWriterName = DtString::nullString(),
947  DtReaderWriterRegistry* parentRegistry = 0,
948  const DtUUID& initialUUID = DtUUID::nullUUID(),
949  bool connectToRadioNetowrk = true);
950 
952  static DtVrfObject* createObject(
953  const DtObjectType & objectType,
954  DtVrfObjectManager* vrfObjectManager,
955  const DtString & classType,
956  bool createLocalObject = true,
957  bool publishLocalObject = true,
958  const DtEntityIdentifier& objectIdentifier = DtEntityIdentifier::nullId(),
959  const DtGlobalObjectDesignator* globalId = 0,
960  DtReflectedObject* reflectedObject = 0,
961  const DtString & objectName = DtString::nullString(),
962  const DtString & objectLabel = DtString::nullString(),
963  DtForceType forceType = DtForceOther,
964  const DtVector& location = DtVector::zero(),
965  const DtTaitBryan* orientation = 0,
966  bool projection = false,
967  bool closedFigure = false,
968  const DtAppearance& appearance = DtAppearance::nullAppearance(),
969  const DtString & readerWriterName = DtString::nullString(),
970  DtReaderWriterRegistry* parentRegistry = 0,
971  const DtUUID& uuid = DtUUID::nullUUID(),
972  bool connectToRadioNetowrk = true);
973 
975  static DtVrfObject* createAndInit(
976  DtVrfObjectManager* vrfObjectManager, DtlObjPtr mtlStream);
977 
981  static DtVrfObject* createAndInitForSimulationObjectGroup(
982  DtVrfObjectManager* vrfObjectManager, DtlObjPtr mtlStream, int flags, int force, const DtVector& geocentricOffsetLocation,
983  double offsetRotation = 0.);
984 
988  static void verticesChangedCallback(DtVrfObject* obj,
989  DtVrfObjectPredicateEvaluator* predicateEval, void* userData);
990 
992  static void relativeVerticesChangedCallback(DtVrfObject* obj,
993  DtVrfObjectPredicateEvaluator* predicateEval, void* userData);
994 
998  static void postInitFromParamsCallback(DtVrfObjectStateRepository& stateRepository, void* usr);
999 
1002 
1003  static void readDRThresholdSettingsCallback(
1004  const DtSettingsObject* settings, void* usr);
1005  virtual void processReadDRThresholdSettings(const DtSettingsObject* settings);
1007 
1009  virtual void addedToObjectManager();
1010 
1012 
1013  virtual void addObjectAboutToBeRemovedCallback(
1015  virtual void removeObjectAboutToBeRemovedCallback(
1017  virtual void invokeVrfObjectAboutToBeRemovedCallbacks();
1019 
1021 
1022  virtual void addObjectModifiedViaMessageCallback(
1024  virtual void removeObjectModifiedViaMessageCallback(
1026  virtual void invokeObjectModifiedViaMessageCallback();
1028 
1031 
1032  virtual void addNewSensorContactCallback(
1034  virtual void removeNewSensorContactCallback(
1036  virtual void invokeNewSensorContactCallbacks();
1038 
1040 
1041  virtual void addSetLocationCompleteCallback(
1043  virtual void removeSetLocationCompleteCallback(
1045  virtual void invokeSetLocationCompleteCallbacks();
1047 
1049  virtual DtVrfUnderwaterAcoustics* underwaterAcoustics();
1050 
1051  virtual DtVrfObjectDeletionHandle objectDeletionHandle();
1052 
1054  virtual void updateTerrainEmbeddedGeometry(bool force = false);
1055 
1056 protected:
1057 
1059  DtVrfObject(const DtVrfObject& orig);
1060 
1062  DtVrfObject& operator=(const DtVrfObject& orig);
1063 
1065  virtual bool initializeNetInterface();
1066 
1068  virtual void setupStateRepository();
1069 
1071  virtual bool setupNetInterface();
1072 
1074  void emptyVertexList();
1075 
1077  void copyVertexList(const DtList& orig);
1078 
1081  virtual void validateObjectType();
1082 
1084  virtual void processPostInitFromParamsCallback(DtVrfObjectCallbackFunction fcn, void* usr);
1085 
1088  virtual void initializeCommunicationInterfaceCallbacks();
1089  static void setOverlayLayerTaskCallback(const DtVrfObjectMessage* msg, void* usr);
1090  virtual void processSetOverlayLayerTask(const DtVrfObjectMessage* msg);
1091 
1094  virtual void updateBoundingVolumeBasedOnPosture();
1095 
1097  virtual DtExtent computeExtent() const;
1098 
1100  virtual void initializeObjectGeometryModel();
1101 
1102 protected:
1103  mutable DtExtent myExtent;
1104  mutable bool myExtentInvalid;
1105 
1107 
1109 
1112 
1115 
1119 
1122 
1124 
1126 
1128 
1130 
1135 
1139 
1143  DtForceType myForceType;
1144  DtList myVertices;
1145  DtTaitBryan myOrientation;
1148  DtAppearance myAppearance;
1149 
1152 
1154 
1160 
1170 
1176  std::list< boost::shared_ptr<DtVrfObjectPredicateCallbackInfo> > myPredicateCallbackList;
1177  mutable tbb::spin_mutex myPredicateCallbackListMutex;
1178 
1182 
1185 
1187 
1191 
1193  std::map<DtObjectDataChangedCallbackFunction, std::set<void*> > myObjectDataChangedCallbackList;
1194  mutable tbb::spin_mutex myObjectDataChangedCallbackListMutex;
1195 
1200 
1202 
1205 
1207 
1209 
1211 
1213 
1215 
1217 
1219 
1224 
1226 
1228 
1229  mutable double myIlluminationValue;
1235  mutable tbb::spin_rw_mutex myIlluminationMutex;
1236 
1240  mutable bool myWeatherIsGlobal;
1242  mutable tbb::spin_rw_mutex myWeatherMutex;
1243 
1246 
1248  std::set<DtString> myNameAliasList;
1250  mutable bool myWarnedObjectName;
1253 
1257 
1261 
1264 };
1265 
1267 {
1268  myAboutToBeRemoved = b;
1269 }
1270 
1272 {
1273  return myAboutToBeRemoved;
1274 }
1275 

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)