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(),
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);
231 static void enableSingleObjectMode();
233 static bool singleObjectModeActive();
239 virtual bool create(
bool createNetworkInterface =
true);
243 virtual bool finalizeObjectCreation();
246 virtual void finalizeObjectRead();
250 virtual void setSimulationCapable(
bool);
251 virtual bool simulationCapable()
const;
255 virtual void createCommunicationsInterface();
263 virtual void createSetDataManager();
267 virtual int vrfSessionId()
const;
280 virtual void startTick();
281 virtual void tickComponents();
282 virtual void endTick();
285 virtual void tickPublisherOnly();
292 virtual bool createTaskManager();
293 virtual bool createScriptInterfaceHandler();
294 virtual bool createComponentManager();
297 virtual bool createVrfObjectPlanManager();
298 virtual bool createRadio();
299 virtual bool createNavigationInterfaceManager();
302 virtual int scenarioRunId()
const;
305 virtual double timeOfDay()
const;
308 virtual double dateAndTimeOfDay()
const;
316 virtual double illumination()
const;
325 virtual void updateIllumination();
328 virtual void updateWeather();
331 virtual void setRangeRingsParametersPublisherTickRange(
double d);
334 virtual void createAndInitializeRangeRingsParameterPublisher();
338 virtual bool needsIlluminationUpdate();
343 virtual bool isOnTopOf(
const DtVrfObject*,
double d)
const;
346 virtual bool isSimulationObject()
const;
347 virtual bool isEntity()
const;
348 virtual bool isUnit()
const;
354 virtual bool checkAndDisembarkIfEmbarked(
const DtVector& localPosition);
358 virtual bool checkIfMoveOntoEmbarked(
const DtVector& localPosition,
DtVrfObject*& hit,
const std::list<DtUUID>& additionalIgnore = std::list<DtUUID>());
361 virtual bool hasHighFidelityObjectGeometryModel()
const;
364 virtual bool hasValidObjectGeometry()
const;
369 virtual bool needsWeatherAreaUpdate();
372 virtual bool isGlobalPlan()
const;
404 virtual void expandExtent(
DtExtent& extent)
const;
409 virtual void sendVrfObjectCreated(
unsigned long requestId = 0,
bool requestCreated =
true);
416 virtual bool isVrfSimulatedObject();
417 virtual void setIsVrfSimulatedObject(
bool b);
429 virtual bool isSimulatingComponents()
const;
432 virtual void save(std::string&);
435 virtual void putSelf(std::string& fp,
int indentLevel = 0,
bool writeUnspecified =
true,
442 virtual bool validNameLength(
const DtString& name)
const;
451 virtual bool setMarkingText(
const DtString & name,
bool rename =
true);
466 virtual void addVrfObjectChangedCallback(
468 virtual void removeVrfObjectChangedCallback(
477 virtual void addVerticesChangedCallback(
479 virtual void removeVerticesChangedCallback(
488 virtual void addRelativeVerticesChangedCallback(
490 virtual void removeRelativeVerticesChangedCallback(
496 virtual void addVrfObjectPredicateCallback(
500 virtual void removeVrfObjectPredicateCallback(
507 virtual int predicateCallbackCount()
const;
513 virtual void invokeVrfObjectPredicateCallbacks();
523 virtual bool createNetInterface();
534 virtual const DtString & globalIdString()
const;
540 virtual bool baseSetMarkingText(
const DtString & name);
541 virtual const DtString& markingText()
const;
547 virtual const DtString& objectName()
const;
551 virtual void addNameAlias(
const DtString& name);
555 virtual void unregisterAliases();
558 virtual void setUUID(
const DtUUID&);
561 virtual const DtUUID& uuid()
const;
564 virtual const DtString & objectLabel()
const;
565 virtual void setObjectLabel(
const DtString & objectLabel);
568 virtual const DtString & overlayParent()
const;
569 virtual void setOverlayParent(
const DtString & overlayParent);
581 virtual void setObjectIdentifier(
const DtEntityIdentifier & objectId);
582 virtual const DtEntityIdentifier & objectIdentifier()
const;
586 virtual const DtString & objectIdentifierString()
const;
590 virtual bool isLocal()
const;
596 virtual void setPublishObject(
bool publishObject);
597 virtual bool publishObject()
const;
603 virtual DtString objectClassType()
const;
604 virtual void setObjectClassType(
const DtString & objectClassType);
608 virtual void clearVerticesChangedCallbacks();
612 virtual void clearRelativeVerticesChangedCallbacks();
616 virtual void clearPredicateCallbacks();
618 static void addSimObjectCreatorFcn(
const DtString & type,
621 static void objectAboutToBeRemoved(
DtVrfObject * msg,
void * usr);
622 virtual void processObjectAboutToBeRemoved(
DtVrfObject*);
635 void setEntityType(
const DtEntityType & entityType);
636 const DtEntityType & entityType()
const;
638 void setDestroyed(
bool destroyed);
639 bool isDestroyed()
const;
652 virtual void place(
const DtVector& location,
bool* dataAvailable = 0,
653 bool requireAllData =
false);
666 virtual void place(
const DtReal heading,
bool* dataAvailable = 0,
667 bool requireAllData =
false);
681 virtual void place(
const DtVector& location,
const DtReal heading,
682 bool* dataAvailable = 0,
bool requireAllData =
false);
684 const DtString & echelonIdString()
const;
697 virtual const DtObjectId & objectId()
const;
701 virtual bool isEmbarked()
const;
717 virtual DtTaitBryan orientationRelativeTo(
const DtTaitBryan&,
DtVrfObject* relativeTo)
const;
724 virtual bool isEmbarkedOn(
const DtUUID& parent)
const;
733 void setAboutToBeRemoved(
bool);
734 bool aboutToBeRemoved()
const;
738 virtual DtOutputStream& objectConsoleDebug(
const DtString& channel =
"")
const;
739 virtual DtOutputStream& objectConsoleVerbose(
const DtString& channel =
"")
const;
740 virtual DtOutputStream& objectConsoleInfo(
const DtString& channel =
"")
const;
741 virtual DtOutputStream& objectConsoleWarn(
const DtString& channel =
"")
const;
742 virtual DtOutputStream& objectConsoleError(
const DtString& channel =
"")
const;
780 virtual void duplicateVrfSubComponentTypes();
783 virtual void restoreDuplicatedVrfSubComponentTypes();
787 virtual bool hasPlan()
const;
790 virtual bool executingPlan()
const;
793 virtual bool isCurrentlyTasked()
const;
796 virtual bool isEllipsoid()
const;
813 virtual DtU8 getNextEmitterSystemId();
816 static void setDefaultNotifyLevel(DtNotifyLevelType
level);
818 static DtNotifyLevelType defaultNotifyLevel();
827 virtual const ScriptInterfaceExtensions& scriptExtensions()
const;
831 virtual void regenerateUUIDForImport();
840 bool createLocalObject =
true,
841 bool publishLocalObject =
true,
842 const DtEntityIdentifier& objectIdentifier = DtEntityIdentifier::nullId(),
845 const DtString & objectName = DtString::nullString(),
846 const DtString & objectLabel = DtString::nullString(),
847 DtForceType forceType = DtForceOther,
848 const DtList* vertices = 0,
849 const DtTaitBryan* orientation = 0,
850 bool projection =
false,
851 bool closedFigure =
false,
852 const DtAppearance& appearance = DtAppearance::nullAppearance(),
853 const DtString & readerWriterName = DtString::nullString(),
856 bool connectToRadioNetowrk =
true);
863 bool createLocalObject =
true,
864 bool publishLocalObject =
true,
865 const DtEntityIdentifier& objectIdentifier = DtEntityIdentifier::nullId(),
868 const DtString & objectName = DtString::nullString(),
869 const DtString & objectLabel = DtString::nullString(),
870 DtForceType forceType = DtForceOther,
871 const DtList* vertices = 0,
872 const DtTaitBryan* orientation = 0,
873 bool projection =
false,
874 bool closedFigure =
false,
875 const DtAppearance& appearance = DtAppearance::nullAppearance(),
876 const DtString & readerWriterName = DtString::nullString(),
879 bool connectToRadioNetowrk =
true);
886 bool createLocalObject =
true,
887 bool publishLocalObject =
true,
888 const DtEntityIdentifier& objectIdentifier = DtEntityIdentifier::nullId(),
891 const DtString & objectName = DtString::nullString(),
892 const DtString & objectLabel = DtString::nullString(),
893 DtForceType forceType = DtForceOther,
894 const DtVector& location = DtVector::zero(),
895 const DtTaitBryan* orientation = 0,
896 bool projection =
false,
897 bool closedFigure =
false,
898 const DtAppearance& appearance = DtAppearance::nullAppearance(),
899 const DtString & readerWriterName = DtString::nullString(),
902 bool connectToRadioNetowrk =
true);
911 static DtVrfObject* createAndInitForSimulationObjectGroup(
913 double offsetRotation = 0.);
918 static void verticesChangedCallback(
DtVrfObject* obj,
922 static void relativeVerticesChangedCallback(
DtVrfObject* obj,
933 static void readDRThresholdSettingsCallback(
935 virtual void processReadDRThresholdSettings(
const DtSettingsObject* settings);
939 virtual void addedToObjectManager();
943 virtual void addObjectAboutToBeRemovedCallback(
945 virtual void removeObjectAboutToBeRemovedCallback(
947 virtual void invokeVrfObjectAboutToBeRemovedCallbacks();
953 virtual void addNewSensorContactCallback(
955 virtual void removeNewSensorContactCallback(
957 virtual void invokeNewSensorContactCallbacks();
962 virtual void addSetLocationCompleteCallback(
964 virtual void removeSetLocationCompleteCallback(
966 virtual void invokeSetLocationCompleteCallbacks();
983 virtual bool initializeNetInterface();
986 virtual void setupStateRepository();
989 virtual void setupNetInterface();
992 void emptyVertexList();
995 void copyVertexList(
const DtList& orig);
999 virtual void validateObjectType();
1006 virtual void initializeCommunicationInterfaceCallbacks();
1012 virtual void updateBoundingVolumeBasedOnPosture();
1015 virtual DtExtent computeExtent()
const;
1018 virtual void initializeObjectGeometryModel();