VR-Forces 4.6.1 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 
20 #include "geometry/extent.h"
22 
23 #include "vrfutil/readerWriter.h"
24 #include "vrfutil/rwString.h"
26 #include "vrfutil/rwUUID.h"
27 #include "vrfutil/rwObjectType.h"
28 #include "vrfutil/rwBoolean.h"
30 #include "vrfutil/rwVector.h"
32 #include "vl/globalObjectDesignator.h"
33 #include <vlpi/entityIdentifier.h>
34 
36 #include <vl/hostStructs.h>
37 #include <vlpi/appearance.h>
38 #include <vlutil/vlList.h>
39 #include <matrix/geodeticCoord.h>
40 
41 #include <boost/smart_ptr/shared_ptr.hpp>
42 #include <tbb/spin_rw_mutex.h>
43 
49 class DtStateRepository;
53 class DtVrfObjectMessage;
54 class DtVrfObjectManager;
55 class DtSimManager;
57 class DtSimTaskManager;
58 class DtSimRadio;
64 class DtReflectedEntity;
67 class DtVrfObject;
70 class Coordinate_System;
71 class DtAttachedTerrain;
72 class DtReflectedObject;
73 class DtPhysicalWorld;
74 class DtObjectConsole;
75 class DtSetDataManager;
78 class DtSettingsObject;
85 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 
268  virtual void createCommunicationsInterface();
269 
272  virtual void createCommunicationsInterface(const DtRadioDescriptorList& descList);
273 
276  virtual void createSetDataManager();
277 
280  virtual int vrfSessionId() const;
281 
284  virtual bool init();
285 
287 
291  virtual void tick();
292 
293  virtual void startTick();
294  virtual void tickComponents();
295  virtual void endTick();
296 
298  virtual void tickPublisherOnly();
299 
304  virtual bool createRepository(DtVrfObjectParameters* parameterEntry);
305  virtual bool createTaskManager();
306  virtual bool createScriptInterfaceHandler();
307  virtual bool createComponentManager();
310  virtual bool createVrfObjectPlanManager();
311  virtual bool createRadio();
312  virtual bool createNavigationInterfaceManager();
313 
316  virtual void setNavigationEnabled(bool);
317  virtual bool navigationEnabled() const;
318 
322  virtual void addToPotentialLuaScripts(int);
323  virtual int potentialLuaScripts() const;
324 
326  virtual int scenarioRunId() const;
327 
329  virtual double timeOfDay() const;
330 
332  virtual double dateAndTimeOfDay() const;
333 
335  virtual DtSharedVrfObjectReference sharedReference();
336  virtual DtSharedVrfObjectReference sharedReference() const;
337 
340  virtual double illumination() const;
341 
343  virtual DtVrfObject* weather() const;
344 
346  virtual MAKVRinTerra::DtFeatureGeometry featureGeometry() const;
347 
349  virtual void updateIllumination() const;
350 
352  virtual void updateWeather();
353 
355  virtual void setRangeRingsParametersPublisherTickRange(double d);
356 
358  virtual void createAndInitializeRangeRingsParameterPublisher();
359 
362  virtual bool needsIlluminationUpdate() const;
363 
366  virtual bool isOnTopOf(const DtVrfObject*) const;
367  virtual bool isOnTopOf(const DtVrfObject*, double d) const;
368 
370  virtual bool isSimulationObject() const;
371  virtual bool isEntity() const;
372  virtual bool isUnit() const;
373 
375  virtual bool intersect(const DtChord&, DtVrfChordIntersectionRecord* record = 0) const;
376 
378  virtual bool checkAndDisembarkIfEmbarked(const DtVector& localPosition);
379 
382  virtual bool checkIfMoveOntoEmbarked(const DtVector& localPosition, DtVrfObject*& hit, const std::list<DtUUID>& additionalIgnore = std::list<DtUUID>());
383 
385  virtual bool hasHighFidelityObjectGeometryModel() const;
386 
388  virtual bool isEmbeddedInTerrain() const;
389 
393  virtual bool needsWeatherAreaUpdate() const;
394 
396  virtual bool isGlobalPlan() const;
397 
399  virtual const DtSimManager* simManager() const;
400  virtual DtSimManager* simManager();
401 
403  virtual DtSimTaskManager* taskManager() const;
404  virtual DtScriptInterfaceHandler* scriptInterfaceHandler() const;
405  virtual DtSimComponentManager* componentManager() const;
406  virtual DtVrfObjectPlanManager* vrfObjectPlanManager() const;
407  virtual DtSimRadio* radio() const;
408 
409  virtual DtVrfObjectStateRepository* vrfState() const;
410 
421  virtual DtExtent extent() const;
422 
427  virtual DtExtent roughExtent() const;
428 
430  const DtVrfObjectParameters* parameterEntry() const;
431 
434  const DtMovingObjectParameters* movingObjectParameterEntry() const;
435 
440  virtual void expandExtent(DtExtent& extent) const;
441 
445  virtual void sendVrfObjectCreated(unsigned long requestId = 0, bool requestCreated = true);
446 
448  virtual void setupFromMessageContent(DtIfModifyVrfObject* ifModVrfObject);
449 
452  virtual void setIsVrfSimulatedObject(bool b);
453 
454  virtual bool isVrfSimulatedObject() const;
455  virtual bool isVrfSimulated() const
456  {
457  return isVrfSimulatedObject();
458  }
459 
467  virtual bool isSimulatingComponents() const;
468 
470  virtual void save(std::string&);
471 
473  virtual void putSelf(std::string& fp, int indentLevel = 0, bool writeUnspecified = true,
474  const DtFilename& path = DtReaderWriter::appPath());
475 
477  virtual void getSelf(DtlObjPtr args, const DtReaderWriter::SearchPaths& searchPaths,
478  const DtVariableBindingsList& variableBindings);
479 
480  virtual bool validNameLength(const DtString& name) const;
481 
489  virtual bool setMarkingText(const DtString & name, bool rename = true);
490 
504  virtual void addVrfObjectChangedCallback(
505  DtVrfObjectCallbackFunction function, void* userData);
506  virtual void removeVrfObjectChangedCallback(
507  DtVrfObjectCallbackFunction function, void* userData);
508 
510  virtual void addNavigationInterfaceChangedCallback(
511  DtVrfObjectCallbackFunction function, void* userData);
512  virtual void removeNavigationInterfaceChangedCallback(
513  DtVrfObjectCallbackFunction function, void* userData);
514 
521  virtual void addVerticesChangedCallback(
522  DtVrfObjectCallbackFunction function, void* userData);
523  virtual void removeVerticesChangedCallback(
524  DtVrfObjectCallbackFunction function, void* userData);
526 
530  virtual void addObjectDataChangedCallback(DtObjectDataChangedCallbackFunction, void*);
531  virtual void removeObjectDataChangedCallback(DtObjectDataChangedCallbackFunction, void*);
532  virtual void invokeObjectDataChangedCallbacks(ChangeFlag);
534 
540  virtual void addRelativeVerticesChangedCallback(
541  DtVrfObjectCallbackFunction function, void* userData);
542  virtual void removeRelativeVerticesChangedCallback(
543  DtVrfObjectCallbackFunction function, void* userData);
545 
548  virtual void addVrfObjectPredicateCallback(
550  const DtVrfObjectPredicate& predicate, DtTime evaluationPeriod = 0,
551  void* userData = 0);
552  virtual void removeVrfObjectPredicateCallback(
554  const DtVrfObjectPredicate& predicate, DtTime evaluationPeriod = 0,
555  void* userData = 0);
556 
559  virtual int predicateCallbackCount() const;
560 
565  virtual void invokeVrfObjectPredicateCallbacks();
566 
569  virtual void setCoordinateSystem(const Coordinate_System* coordinateSystem);
570 
571  virtual const DtVrfObjectManager* simObjectManager() const;
572  virtual DtVrfObjectManager* simObjectManager();
573  virtual void setSimObjectManager(DtVrfObjectManager* simObjectManager);
574 
575  virtual bool createNetInterface();
576 
581  virtual void setGlobalId(const DtGlobalObjectDesignator & id);
582  virtual const DtGlobalObjectDesignator & globalId() const;
583 
586  virtual const DtString & globalIdString() const;
587 
592  virtual bool baseSetMarkingText(const DtString & name);
593  virtual const DtString& markingText() const;
594 
599  virtual const DtString& objectName() const;
600 
603  virtual void addNameAlias(const DtString& name);
604 
607  virtual void unregisterAliases();
608 
610  virtual void setUUID(const DtUUID&);
611 
613  virtual const DtUUID& uuid() const;
614 
616  virtual const DtString & objectLabel() const;
617  virtual void setObjectLabel(const DtString & objectLabel);
618 
620  virtual DtForceType forceType() const;
621  virtual void setForceType(DtForceType f);
622 
624  virtual void setIsSubordinateOfForceLevel(bool);
625  virtual bool isSubordinateOfForceLevel() const;
626 
628  virtual const DtString & overlayParent() const;
629  virtual void setOverlayParent(const DtString & overlayParent);
630 
632  virtual DtStateRepository* netState();
633  virtual const DtStateRepository* netState() const;
634 
636  virtual DtSimObjectNetInterface* netInterface();
637  virtual const DtSimObjectNetInterface* netInterface() const;
638  virtual void setNetInterface(DtSimObjectNetInterface* netInterface);
639 
641  virtual void setObjectIdentifier(const DtEntityIdentifier & objectId);
642  virtual const DtEntityIdentifier & objectIdentifier() const;
643 
646  virtual const DtString & objectIdentifierString() const;
647 
650  virtual bool isLocal() const;
651 
655 
656  virtual void setPublishObject(bool publishObject);
657  virtual bool publishObject() const;
659 
661  virtual DtString type() const;
662 
663  virtual DtString objectClassType() const;
664  virtual void setObjectClassType(const DtString & objectClassType);
665 
668  virtual void clearVerticesChangedCallbacks();
669 
672  virtual void clearRelativeVerticesChangedCallbacks();
673 
676  virtual void clearPredicateCallbacks();
677 
678  static void addSimObjectCreatorFcn(const DtString & type,
680 
681  static void objectAboutToBeRemoved(DtVrfObject * msg, void * usr);
682  virtual void processObjectAboutToBeRemoved(DtVrfObject*);
683 
688  static DtSimObjectFactory* factory();
689  static void setFactory(DtSimObjectFactory* factory);
690 
691  virtual DtSimObjectStateRepository* simState();
692  virtual const DtSimObjectStateRepository* simState() const;
693  virtual void setSimState(DtVrfObjectStateRepository* simState);
694 
695  void setEntityType(const DtEntityType & entityType);
696  const DtEntityType & entityType() const;
697 
698  void setDestroyed(bool destroyed);
699  bool isDestroyed() const;
700 
712  virtual void place(const DtVector& location, bool* dataAvailable = 0,
713  bool requireAllData = false);
714 
726  virtual void place(const DtReal heading, bool* dataAvailable = 0,
727  bool requireAllData = false);
728 
741  virtual void place(const DtVector& location, const DtReal heading,
742  bool* dataAvailable = 0, bool requireAllData = false);
743 
744  const DtString & echelonIdString() const;
745 
746  virtual DtSharedVrfObjectReference leadEntity() const;
747 
748  virtual DtSharedVrfObjectReference firstSubordinate() const;
749 
750  virtual DtSharedVrfObjectReference lastSubordinate() const;
751 
753  virtual DtSharedVrfObjectReference firstHealthySubordinate() const;
754 
755  virtual void echelonIdChanged() {}
756 
757  virtual const DtObjectId & objectId() const;
758  virtual const DtObjectType& objectType() const;
759 
761  virtual bool isEmbarked() const;
762 
765  virtual DtVector locationRelativeTo(const DtVector&, DtVrfObject* relativeTo) const;
766 
769  virtual DtVector velocityRelativeTo(const DtVector&, DtVrfObject* relativeTo) const;
770 
773  virtual DtVector accelerationRelativeTo(const DtVector&, DtVrfObject* relativeTo) const;
774 
777  virtual DtTaitBryan orientationRelativeTo(const DtTaitBryan&, DtVrfObject* relativeTo) const;
778 
780  virtual DtVrfObject* embarkedOn() const;
781 
784  virtual bool isEmbarkedOn(const DtUUID& parent) const;
785 
786  DtAttachedTerrain* terrainAttachedTo();
787  const DtAttachedTerrain* terrainAttachedTo() const;
788 
789  virtual const DtPhysicalWorld* physicalWorld() const;
790  virtual DtPhysicalWorld* physicalWorld();
791 
793  void setAboutToBeRemoved(bool);
794  bool aboutToBeRemoved() const;
795 
798  virtual DtOutputStream& objectConsoleDebug(const DtString& channel = "") const;
799  virtual DtOutputStream& objectConsoleVerbose(const DtString& channel = "") const;
800  virtual DtOutputStream& objectConsoleInfo(const DtString& channel = "") const;
801  virtual DtOutputStream& objectConsoleWarn(const DtString& channel = "") const;
802  virtual DtOutputStream& objectConsoleError(const DtString& channel = "") const;
804 
807  virtual DtObjectConsole* objectConsole();
808  virtual const DtObjectConsole* objectConsole() const;
810 
815  virtual DtSetDataManager* setDataManager();
816  virtual const DtSetDataManager* setDataManager() const;
817 
822  virtual DtVrfObjectCommunicationInterface* communicationInterface();
823 
827  virtual DtVrfObjectNavInterface* navInterface();
828 
832  virtual DtVrfObjectTerrainPreloadManager* terrainPreloadManager();
833 
836  DtVrfObjectSubComponentTypes* vrfSubComponentTypes() const;
837 
840  virtual void duplicateVrfSubComponentTypes();
841 
843  virtual void restoreDuplicatedVrfSubComponentTypes();
844 
847  virtual bool hasPlan() const;
848 
850  virtual bool executingPlan() const;
851 
853  virtual bool isCurrentlyTasked() const;
854 
856  virtual bool isEllipsoid() const;
857 
863  virtual void addPostInitFromParamsCallback(DtVrfObjectCallbackFunction fcn,
864  void* usr);
865  virtual void removePostInitFromParamsCallback(DtVrfObjectCallbackFunction fcn,
866  void* usr);
868 
873  virtual DtU8 getNextEmitterSystemId();
874 
876  static void setDefaultNotifyLevel(DtNotifyLevelType level);
878  static DtNotifyLevelType defaultNotifyLevel();
879 
883  virtual void addScriptExtension(DtLuaScriptInterfaceExtension::CreatorFcn extension, void* usr);
885  virtual void removeScriptExtension(DtLuaScriptInterfaceExtension::CreatorFcn extension, void* usr);
887  virtual const ScriptInterfaceExtensions& scriptExtensions() const;
888 
891  virtual void regenerateUUIDForImport();
892 
893 public:
894 
897  static DtVrfObject* creator(
898  const DtObjectType& objectType,
899  DtVrfObjectManager* simObjectManager,
900  bool createLocalObject = true,
901  bool publishLocalObject = true,
902  const DtEntityIdentifier& objectIdentifier = DtEntityIdentifier::nullId(),
903  const DtGlobalObjectDesignator* globalId = 0,
904  DtReflectedObject* reflectedObject = 0,
905  const DtString & objectName = DtString::nullString(),
906  const DtString & objectLabel = DtString::nullString(),
907  DtForceType forceType = DtForceOther,
908  const DtList* vertices = 0,
909  const DtTaitBryan* orientation = 0,
910  bool projection = false,
911  bool closedFigure = false,
912  const DtAppearance& appearance = DtAppearance::nullAppearance(),
913  const DtString & readerWriterName = DtString::nullString(),
914  DtReaderWriterRegistry* parentRegistry = 0,
915  const DtUUID& uuid = DtUUID::nullUUID(),
916  bool connectToRadioNetowrk = true);
917 
919  static DtVrfObject* createObject(
920  const DtObjectType& objectType,
921  DtVrfObjectManager* vrfObjectManager,
922  const DtString & classType,
923  bool createLocalObject = true,
924  bool publishLocalObject = true,
925  const DtEntityIdentifier& objectIdentifier = DtEntityIdentifier::nullId(),
926  const DtGlobalObjectDesignator* globalId = 0,
927  DtReflectedObject* reflectedObject = 0,
928  const DtString & objectName = DtString::nullString(),
929  const DtString & objectLabel = DtString::nullString(),
930  DtForceType forceType = DtForceOther,
931  const DtList* vertices = 0,
932  const DtTaitBryan* orientation = 0,
933  bool projection = false,
934  bool closedFigure = false,
935  const DtAppearance& appearance = DtAppearance::nullAppearance(),
936  const DtString & readerWriterName = DtString::nullString(),
937  DtReaderWriterRegistry* parentRegistry = 0,
938  const DtUUID& initialUUID = DtUUID::nullUUID(),
939  bool connectToRadioNetowrk = true);
940 
942  static DtVrfObject* createObject(
943  const DtObjectType & objectType,
944  DtVrfObjectManager* vrfObjectManager,
945  const DtString & classType,
946  bool createLocalObject = true,
947  bool publishLocalObject = true,
948  const DtEntityIdentifier& objectIdentifier = DtEntityIdentifier::nullId(),
949  const DtGlobalObjectDesignator* globalId = 0,
950  DtReflectedObject* reflectedObject = 0,
951  const DtString & objectName = DtString::nullString(),
952  const DtString & objectLabel = DtString::nullString(),
953  DtForceType forceType = DtForceOther,
954  const DtVector& location = DtVector::zero(),
955  const DtTaitBryan* orientation = 0,
956  bool projection = false,
957  bool closedFigure = false,
958  const DtAppearance& appearance = DtAppearance::nullAppearance(),
959  const DtString & readerWriterName = DtString::nullString(),
960  DtReaderWriterRegistry* parentRegistry = 0,
961  const DtUUID& uuid = DtUUID::nullUUID(),
962  bool connectToRadioNetowrk = true);
963 
965  static DtVrfObject* createAndInit(
966  DtVrfObjectManager* vrfObjectManager, DtlObjPtr mtlStream);
967 
971  static DtVrfObject* createAndInitForSimulationObjectGroup(
972  DtVrfObjectManager* vrfObjectManager, DtlObjPtr mtlStream, int flags, int force, const DtVector& geocentricOffsetLocation,
973  double offsetRotation = 0.);
974 
978  static void verticesChangedCallback(DtVrfObject* obj,
979  DtVrfObjectPredicateEvaluator* predicateEval, void* userData);
980 
982  static void relativeVerticesChangedCallback(DtVrfObject* obj,
983  DtVrfObjectPredicateEvaluator* predicateEval, void* userData);
984 
988  static void postInitFromParamsCallback(DtVrfObjectStateRepository& stateRepository, void* usr);
989 
992 
993  static void readDRThresholdSettingsCallback(
994  const DtSettingsObject* settings, void* usr);
995  virtual void processReadDRThresholdSettings(const DtSettingsObject* settings);
997 
999  virtual void addedToObjectManager();
1000 
1002 
1003  virtual void addObjectAboutToBeRemovedCallback(
1005  virtual void removeObjectAboutToBeRemovedCallback(
1007  virtual void invokeVrfObjectAboutToBeRemovedCallbacks();
1009 
1011 
1012  virtual void addObjectModifiedViaMessageCallback(
1014  virtual void removeObjectModifiedViaMessageCallback(
1016  virtual void invokeObjectModifiedViaMessageCallback();
1018 
1021 
1022  virtual void addNewSensorContactCallback(
1024  virtual void removeNewSensorContactCallback(
1026  virtual void invokeNewSensorContactCallbacks();
1028 
1030 
1031  virtual void addSetLocationCompleteCallback(
1033  virtual void removeSetLocationCompleteCallback(
1035  virtual void invokeSetLocationCompleteCallbacks();
1037 
1039  virtual DtVrfUnderwaterAcoustics* underwaterAcoustics();
1040 
1041  virtual DtVrfObjectDeletionHandle objectDeletionHandle();
1042 
1044  virtual void updateTerrainEmbeddedGeometry(bool force = false);
1045 
1046 protected:
1047 
1049  DtVrfObject(const DtVrfObject& orig);
1050 
1052  DtVrfObject& operator=(const DtVrfObject& orig);
1053 
1055  virtual bool initializeNetInterface();
1056 
1058  virtual void setupStateRepository();
1059 
1061  virtual void setupNetInterface();
1062 
1064  void emptyVertexList();
1065 
1067  void copyVertexList(const DtList& orig);
1068 
1071  virtual void validateObjectType();
1072 
1074  virtual void processPostInitFromParamsCallback(DtVrfObjectCallbackFunction fcn, void* usr);
1075 
1078  virtual void initializeCommunicationInterfaceCallbacks();
1079  static void setOverlayLayerTaskCallback(const DtVrfObjectMessage* msg, void* usr);
1080  virtual void processSetOverlayLayerTask(const DtVrfObjectMessage* msg);
1081 
1084  virtual void updateBoundingVolumeBasedOnPosture();
1085 
1087  virtual DtExtent computeExtent() const;
1088 
1090  virtual void initializeObjectGeometryModel();
1091 
1092 protected:
1093  mutable DtExtent myExtent;
1094  mutable bool myExtentInvalid;
1095 
1097 
1099 
1102 
1105 
1109 
1112 
1114 
1116 
1118 
1120 
1125 
1129 
1133  DtForceType myForceType;
1134  DtList myVertices;
1135  DtTaitBryan myOrientation;
1138  DtAppearance myAppearance;
1139 
1142 
1144 
1150 
1160 
1167 
1171 
1174 
1176 
1180 
1182  std::map<DtObjectDataChangedCallbackFunction, std::set<void*> > myObjectDataChangedCallbackList;
1183 
1188 
1190 
1193 
1195 
1197 
1199 
1201 
1203 
1205 
1207 
1212 
1214 
1216 
1217  mutable double myIlluminationValue;
1223  mutable tbb::spin_rw_mutex myIlluminationMutex;
1224 
1228  mutable bool myWeatherIsGlobal;
1230  mutable tbb::spin_rw_mutex myWeatherMutex;
1231 
1234 
1236  std::set<DtString> myNameAliasList;
1238  mutable bool myWarnedObjectName;
1241 
1245 
1249 
1252 
1253 };
1254 
1256 {
1257  myAboutToBeRemoved = b;
1258 }
1259 
1261 {
1262  return myAboutToBeRemoved;
1263 }
1264 

Document ID: Generated on Wed Jul 25 16:57:45 EDT 2018 from SVN revision 190790
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)