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();
276 virtual void tickPublisherOnly();
283 virtual bool createTaskManager();
284 virtual bool createScriptInterfaceHandler();
285 virtual bool createComponentManager();
288 virtual bool createVrfObjectPlanManager();
289 virtual bool createRadio();
290 virtual bool createNavigationInterfaceManager();
298 virtual double illumination()
const;
307 virtual void updateIllumination();
310 virtual void updateWeather();
313 virtual void setRangeRingsParametersPublisherTickRange(
double d);
316 virtual void createAndInitializeRangeRingsParameterPublisher();
320 virtual bool needsIlluminationUpdate();
325 virtual bool isOnTopOf(
const DtVrfObject*,
double d)
const;
331 virtual bool hasHighFidelityObjectGeometryModel()
const;
334 virtual bool hasValidObjectGeometry()
const;
339 virtual bool needsWeatherAreaUpdate();
342 virtual bool isGlobalPlan()
const;
374 virtual void expandExtent(
DtExtent& extent)
const;
379 virtual void sendVrfObjectCreated(
unsigned long requestId = 0,
bool requestCreated =
true);
386 virtual bool isVrfSimulatedObject();
387 virtual void setIsVrfSimulatedObject(
bool b);
399 virtual bool isSimulatingComponents()
const;
402 virtual void save(std::string&);
405 virtual void putSelf(std::string& fp,
int indentLevel = 0,
bool writeUnspecified =
true,
412 virtual bool validNameLength(
const DtString& name)
const;
421 virtual bool setMarkingText(
const DtString & name,
bool rename =
true);
436 virtual void addVrfObjectChangedCallback(
438 virtual void removeVrfObjectChangedCallback(
447 virtual void addVerticesChangedCallback(
449 virtual void removeVerticesChangedCallback(
458 virtual void addRelativeVerticesChangedCallback(
460 virtual void removeRelativeVerticesChangedCallback(
466 virtual void addVrfObjectPredicateCallback(
470 virtual void removeVrfObjectPredicateCallback(
477 virtual int predicateCallbackCount()
const;
483 virtual void invokeVrfObjectPredicateCallbacks();
493 virtual bool createNetInterface();
499 virtual void setGlobalId(
const DtGlobalObjectDesignator &
id);
500 virtual const DtGlobalObjectDesignator & globalId()
const;
504 virtual const DtString & globalIdString()
const;
510 virtual bool baseSetMarkingText(
const DtString & name);
511 virtual const DtString& markingText()
const;
517 virtual const DtString& objectName()
const;
521 virtual void addNameAlias(
const DtString& name);
525 virtual void unregisterAliases();
528 virtual void setUUID(
const DtUUID&);
531 virtual const DtUUID& uuid()
const;
534 virtual const DtString & objectLabel()
const;
535 virtual void setObjectLabel(
const DtString & objectLabel);
538 virtual const DtString & overlayParent()
const;
539 virtual void setOverlayParent(
const DtString & overlayParent);
551 virtual void setObjectIdentifier(
const DtEntityIdentifier & objectId);
552 virtual const DtEntityIdentifier & objectIdentifier()
const;
556 virtual const DtString & objectIdentifierString()
const;
560 virtual bool isLocal()
const;
566 virtual void setPublishObject(
bool publishObject);
567 virtual bool publishObject()
const;
573 virtual DtString objectClassType()
const;
574 virtual void setObjectClassType(
const DtString & objectClassType);
578 virtual void clearVerticesChangedCallbacks();
582 virtual void clearRelativeVerticesChangedCallbacks();
586 virtual void clearPredicateCallbacks();
588 static void addSimObjectCreatorFcn(
const DtString & type,
591 static void objectAboutToBeRemoved(
DtVrfObject * msg,
void * usr);
592 virtual void processObjectAboutToBeRemoved(
DtVrfObject*);
605 void setEntityType(
const DtEntityType & entityType);
606 const DtEntityType & entityType()
const;
608 void setDestroyed(
bool destroyed);
609 bool isDestroyed()
const;
622 virtual void place(
const DtVector& location,
bool* dataAvailable = 0,
623 bool requireAllData =
false);
636 virtual void place(
const DtReal heading,
bool* dataAvailable = 0,
637 bool requireAllData =
false);
651 virtual void place(
const DtVector& location,
const DtReal heading,
652 bool* dataAvailable = 0,
bool requireAllData =
false);
654 const DtString & echelonIdString()
const;
667 virtual const DtObjectId & objectId()
const;
671 virtual bool isEmbarked()
const;
687 virtual DtTaitBryan orientationRelativeTo(
const DtTaitBryan&,
DtVrfObject* relativeTo)
const;
694 virtual bool isEmbarkedOn(
const DtUUID& parent)
const;
703 void setAboutToBeRemoved(
bool);
704 bool aboutToBeRemoved()
const;
708 virtual DtOutputStream& objectConsoleDebug(
const DtString& channel =
"")
const;
709 virtual DtOutputStream& objectConsoleVerbose(
const DtString& channel =
"")
const;
710 virtual DtOutputStream& objectConsoleInfo(
const DtString& channel =
"")
const;
711 virtual DtOutputStream& objectConsoleWarn(
const DtString& channel =
"")
const;
712 virtual DtOutputStream& objectConsoleError(
const DtString& channel =
"")
const;
750 virtual bool hasPlan()
const;
753 virtual bool executingPlan()
const;
756 virtual bool isCurrentlyTasked()
const;
773 virtual DtU8 getNextEmitterSystemId();
776 static void setDefaultNotifyLevel(DtNotifyLevelType
level);
778 static DtNotifyLevelType defaultNotifyLevel();
787 virtual const ScriptInterfaceExtensions& scriptExtensions()
const;
791 virtual void regenerateUUIDForImport();
800 bool createLocalObject =
true,
801 bool publishLocalObject =
true,
802 const DtEntityIdentifier& objectIdentifier = DtEntityIdentifier::nullId(),
803 const DtGlobalObjectDesignator* globalId = 0,
805 const DtString & objectName = DtString::nullString(),
806 const DtString & objectLabel = DtString::nullString(),
807 DtForceType forceType = DtForceOther,
808 const DtList* vertices = 0,
809 const DtTaitBryan* orientation = 0,
810 bool projection =
false,
811 bool closedFigure =
false,
812 const DtAppearance& appearance = DtAppearance::nullAppearance(),
813 const DtString & readerWriterName = DtString::nullString(),
816 bool connectToRadioNetowrk =
true);
823 bool createLocalObject =
true,
824 bool publishLocalObject =
true,
825 const DtEntityIdentifier& objectIdentifier = DtEntityIdentifier::nullId(),
826 const DtGlobalObjectDesignator* globalId = 0,
828 const DtString & objectName = DtString::nullString(),
829 const DtString & objectLabel = DtString::nullString(),
830 DtForceType forceType = DtForceOther,
831 const DtList* vertices = 0,
832 const DtTaitBryan* orientation = 0,
833 bool projection =
false,
834 bool closedFigure =
false,
835 const DtAppearance& appearance = DtAppearance::nullAppearance(),
836 const DtString & readerWriterName = DtString::nullString(),
839 bool connectToRadioNetowrk =
true);
846 bool createLocalObject =
true,
847 bool publishLocalObject =
true,
848 const DtEntityIdentifier& objectIdentifier = DtEntityIdentifier::nullId(),
849 const DtGlobalObjectDesignator* globalId = 0,
851 const DtString & objectName = DtString::nullString(),
852 const DtString & objectLabel = DtString::nullString(),
853 DtForceType forceType = DtForceOther,
854 const DtVector& location = DtVector::zero(),
855 const DtTaitBryan* orientation = 0,
856 bool projection =
false,
857 bool closedFigure =
false,
858 const DtAppearance& appearance = DtAppearance::nullAppearance(),
859 const DtString & readerWriterName = DtString::nullString(),
862 bool connectToRadioNetowrk =
true);
871 static DtVrfObject* createAndInitForSimulationObjectGroup(
873 double offsetRotation = 0.);
878 static void verticesChangedCallback(
DtVrfObject* obj,
882 static void relativeVerticesChangedCallback(
DtVrfObject* obj,
893 static void readDRThresholdSettingsCallback(
895 virtual void processReadDRThresholdSettings(
const DtSettingsObject* settings);
899 virtual void addedToObjectManager();
903 virtual void addObjectAboutToBeRemovedCallback(
905 virtual void removeObjectAboutToBeRemovedCallback(
907 virtual void invokeVrfObjectAboutToBeRemovedCallbacks();
913 virtual void addNewSensorContactCallback(
915 virtual void removeNewSensorContactCallback(
917 virtual void invokeNewSensorContactCallbacks();
922 virtual void addSetLocationCompleteCallback(
924 virtual void removeSetLocationCompleteCallback(
926 virtual void invokeSetLocationCompleteCallbacks();
943 virtual bool initializeNetInterface();
946 virtual void setupStateRepository();
949 virtual void setupNetInterface();
952 void emptyVertexList();
955 void copyVertexList(
const DtList& orig);
959 virtual void validateObjectType();
966 virtual void initializeCommunicationInterfaceCallbacks();
972 virtual void updateBoundingVolumeBasedOnPosture();
975 virtual DtExtent computeExtent()
const;
978 virtual void initializeObjectGeometryModel();