32 #include "vl/globalObjectDesignator.h"
33 #include <vlpi/entityIdentifier.h>
36 #include <vl/hostStructs.h>
37 #include <vlpi/appearance.h>
38 #include <vlutil/vlList.h>
39 #include <matrix/geodeticCoord.h>
41 #include <boost/smart_ptr/shared_ptr.hpp>
63 class DtReflectedEntity;
102 : mySimObject(simObject)
153 virtual void setRecreateUUIDOnLoad(
bool);
156 virtual void setResolved(
bool);
208 bool createLocalObject =
true,
209 bool publishLocalObject =
true,
210 const DtEntityIdentifier& objectIdentifier = DtEntityIdentifier::nullId(),
211 const DtGlobalObjectDesignator* globalId = 0,
213 const DtString & objectName = DtString::nullString(),
214 const DtString & objectLabel = DtString::nullString(),
215 DtForceType forceType = DtForceOther,
216 const DtList* vertices = 0,
217 const DtTaitBryan* orientation = 0,
218 bool projection =
false,
219 bool closedFigure =
false,
220 const DtAppearance& appearance = DtAppearance::nullAppearance(),
221 const DtString & readerWriterName =
"vrf-object",
224 bool connectToRadioNetowrk =
true);
233 virtual bool create(
bool createNetworkInterface =
true);
237 virtual bool finalizeObjectCreation();
241 virtual void setSimulationCapable(
bool);
242 virtual bool simulationCapable()
const;
246 virtual void createCommunicationsInterface();
254 virtual void createSetDataManager();
258 virtual int vrfSessionId()
const;
271 virtual void startTick();
272 virtual void tickComponents();
273 virtual void endTick();
280 virtual bool createTaskManager();
281 virtual bool createScriptInterfaceHandler();
282 virtual bool createComponentManager();
285 virtual bool createVrfObjectPlanManager();
286 virtual bool createRadio();
287 virtual bool createNavigationInterfaceManager();
295 virtual double illumination()
const;
304 virtual void updateIllumination();
307 virtual void updateWeather();
310 virtual void setRangeRingsParametersPublisherTickRange(
double d);
313 virtual void createAndInitializeRangeRingsParameterPublisher();
317 virtual bool needsIlluminationUpdate();
322 virtual bool isOnTopOf(
const DtVrfObject*,
double d)
const;
328 virtual bool hasHighFidelityObjectGeometryModel()
const;
331 virtual bool hasValidObjectGeometry()
const;
336 virtual bool needsWeatherAreaUpdate();
339 virtual bool isGlobalPlan()
const;
371 virtual void expandExtent(
DtExtent& extent)
const;
376 virtual void sendVrfObjectCreated(
unsigned long requestId = 0,
bool requestCreated =
true);
383 virtual bool isVrfSimulatedObject();
384 virtual void setIsVrfSimulatedObject(
bool b);
396 virtual bool isSimulatingComponents()
const;
399 virtual void putSelf(FILE* fp,
int indentLevel = 0,
bool writeUnspecified =
true,
406 virtual bool validNameLength(
const DtString& name)
const;
415 virtual bool setMarkingText(
const DtString & name,
bool rename =
true);
430 virtual void addVrfObjectChangedCallback(
432 virtual void removeVrfObjectChangedCallback(
441 virtual void addVerticesChangedCallback(
443 virtual void removeVerticesChangedCallback(
452 virtual void addRelativeVerticesChangedCallback(
454 virtual void removeRelativeVerticesChangedCallback(
460 virtual void addVrfObjectPredicateCallback(
464 virtual void removeVrfObjectPredicateCallback(
471 virtual int predicateCallbackCount()
const;
477 virtual void invokeVrfObjectPredicateCallbacks();
487 virtual bool createNetInterface();
493 virtual void setGlobalId(
const DtGlobalObjectDesignator &
id);
494 virtual const DtGlobalObjectDesignator & globalId()
const;
500 virtual bool baseSetMarkingText(
const DtString & name);
501 virtual const DtString& markingText()
const;
507 virtual const DtString& objectName()
const;
511 virtual void addNameAlias(
const DtString& name);
515 virtual void unregisterAliases();
518 virtual void setUUID(
const DtUUID&);
521 virtual const DtUUID& uuid()
const;
524 virtual const DtString & objectLabel()
const;
525 virtual void setObjectLabel(
const DtString & objectLabel);
528 virtual const DtString & overlayParent()
const;
529 virtual void setOverlayParent(
const DtString & overlayParent);
541 virtual void setObjectIdentifier(
const DtEntityIdentifier & objectId);
542 virtual const DtEntityIdentifier & objectIdentifier()
const;
546 virtual bool isLocal()
const;
552 virtual void setPublishObject(
bool publishObject);
553 virtual bool publishObject()
const;
559 virtual DtString objectClassType()
const;
560 virtual void setObjectClassType(
const DtString & objectClassType);
564 virtual void clearVerticesChangedCallbacks();
568 virtual void clearRelativeVerticesChangedCallbacks();
572 virtual void clearPredicateCallbacks();
574 static void addSimObjectCreatorFcn(
const DtString & type,
577 static void objectAboutToBeRemoved(
DtVrfObject * msg,
void * usr);
578 virtual void processObjectAboutToBeRemoved(
DtVrfObject*);
591 void setEntityType(
const DtEntityType & entityType);
592 const DtEntityType & entityType()
const;
594 void setDestroyed(
bool destroyed);
595 bool isDestroyed()
const;
608 virtual void place(
const DtVector& location,
bool* dataAvailable = 0,
609 bool requireAllData =
false);
622 virtual void place(
const DtReal heading,
bool* dataAvailable = 0,
623 bool requireAllData =
false);
637 virtual void place(
const DtVector& location,
const DtReal heading,
638 bool* dataAvailable = 0,
bool requireAllData =
false);
640 const DtString & echelonIdString()
const;
653 virtual const DtObjectId & objectId()
const;
657 virtual bool isEmbarked()
const;
673 virtual DtTaitBryan orientationRelativeTo(
const DtTaitBryan&,
DtVrfObject* relativeTo)
const;
680 virtual bool isEmbarkedOn(
const DtUUID& parent)
const;
689 void setAboutToBeRemoved(
bool);
690 bool aboutToBeRemoved()
const;
694 virtual DtOutputStream& objectConsoleDebug(
const DtString& channel =
"")
const;
695 virtual DtOutputStream& objectConsoleVerbose(
const DtString& channel =
"")
const;
696 virtual DtOutputStream& objectConsoleInfo(
const DtString& channel =
"")
const;
697 virtual DtOutputStream& objectConsoleWarn(
const DtString& channel =
"")
const;
698 virtual DtOutputStream& objectConsoleError(
const DtString& channel =
"")
const;
736 virtual bool hasPlan()
const;
739 virtual bool executingPlan()
const;
742 virtual bool isCurrentlyTasked()
const;
759 virtual DtU8 getNextEmitterSystemId();
762 static void setDefaultNotifyLevel(DtNotifyLevelType
level);
764 static DtNotifyLevelType defaultNotifyLevel();
773 virtual const ScriptInterfaceExtensions& scriptExtensions()
const;
777 virtual void regenerateUUIDForImport();
786 bool createLocalObject =
true,
787 bool publishLocalObject =
true,
788 const DtEntityIdentifier& objectIdentifier = DtEntityIdentifier::nullId(),
789 const DtGlobalObjectDesignator* globalId = 0,
791 const DtString & objectName = DtString::nullString(),
792 const DtString & objectLabel = DtString::nullString(),
793 DtForceType forceType = DtForceOther,
794 const DtList* vertices = 0,
795 const DtTaitBryan* orientation = 0,
796 bool projection =
false,
797 bool closedFigure =
false,
798 const DtAppearance& appearance = DtAppearance::nullAppearance(),
799 const DtString & readerWriterName = DtString::nullString(),
802 bool connectToRadioNetowrk =
true);
809 bool createLocalObject =
true,
810 bool publishLocalObject =
true,
811 const DtEntityIdentifier& objectIdentifier = DtEntityIdentifier::nullId(),
812 const DtGlobalObjectDesignator* globalId = 0,
814 const DtString & objectName = DtString::nullString(),
815 const DtString & objectLabel = DtString::nullString(),
816 DtForceType forceType = DtForceOther,
817 const DtList* vertices = 0,
818 const DtTaitBryan* orientation = 0,
819 bool projection =
false,
820 bool closedFigure =
false,
821 const DtAppearance& appearance = DtAppearance::nullAppearance(),
822 const DtString & readerWriterName = DtString::nullString(),
825 bool connectToRadioNetowrk =
true);
832 bool createLocalObject =
true,
833 bool publishLocalObject =
true,
834 const DtEntityIdentifier& objectIdentifier = DtEntityIdentifier::nullId(),
835 const DtGlobalObjectDesignator* globalId = 0,
837 const DtString & objectName = DtString::nullString(),
838 const DtString & objectLabel = DtString::nullString(),
839 DtForceType forceType = DtForceOther,
840 const DtVector& location = DtVector::zero(),
841 const DtTaitBryan* orientation = 0,
842 bool projection =
false,
843 bool closedFigure =
false,
844 const DtAppearance& appearance = DtAppearance::nullAppearance(),
845 const DtString & readerWriterName = DtString::nullString(),
848 bool connectToRadioNetowrk =
true);
857 static DtVrfObject* createAndInitForSimulationObjectGroup(
859 double offsetRotation = 0.);
864 static void verticesChangedCallback(
DtVrfObject* obj,
868 static void relativeVerticesChangedCallback(
DtVrfObject* obj,
879 static void readDRThresholdSettingsCallback(
881 virtual void processReadDRThresholdSettings(
const DtSettingsObject* settings);
885 virtual void addedToObjectManager();
889 virtual void addObjectAboutToBeRemovedCallback(
891 virtual void removeObjectAboutToBeRemovedCallback(
893 virtual void invokeVrfObjectAboutToBeRemovedCallbacks();
899 virtual void addNewSensorContactCallback(
901 virtual void removeNewSensorContactCallback(
903 virtual void invokeNewSensorContactCallbacks();
908 virtual void addSetLocationCompleteCallback(
910 virtual void removeSetLocationCompleteCallback(
912 virtual void invokeSetLocationCompleteCallbacks();
929 virtual bool initializeNetInterface();
932 virtual void setupStateRepository();
935 virtual void setupNetInterface();
938 void emptyVertexList();
941 void copyVertexList(
const DtList& orig);
945 virtual void validateObjectType();
952 virtual void initializeCommunicationInterfaceCallbacks();
958 virtual void updateBoundingVolumeBasedOnPosture();
961 virtual DtExtent computeExtent()
const;
964 virtual void initializeObjectGeometryModel();