17 #include "geometry/tdbextent.h"
28 #include <vl/hostStructs.h>
29 #include <vlpi/appearance.h>
30 #include <vlutil/vlList.h>
36 class DtStateRepository;
51 class DtReflectedEntity;
52 class DtReflectedExtAggregate;
53 class DtReflectedEnvironmentProcess;
57 class Coordinate_System;
109 const DtObjectType & objectType,
111 bool createLocalObject =
true,
112 bool publishLocalObject =
true,
113 const DtEntityIdentifier& objectIdentifier = DtEntityIdentifier::nullId(),
114 const DtGlobalObjectDesignator* globalId = 0,
115 DtReflectedObject* reflectedObject = 0,
116 const DtString & objectName = DtString::nullString(),
117 const DtString & objectLabel = DtString::nullString(),
118 DtForceType forceType = DtForceOther,
119 const DtList* vertices = 0,
120 const DtTaitBryan* orientation = 0,
121 bool projection =
false,
122 bool closedFigure =
false,
123 const DtAppearance& appearance = DtAppearance::nullAppearance(),
124 const DtString & readerWriterName =
"vrf-object",
132 virtual bool create();
135 virtual void createCommunicationsInterface();
143 virtual void createSetDataManager();
160 virtual bool createTaskManager();
161 virtual bool createScriptInterfaceHandler();
162 virtual bool createComponentManager();
165 virtual bool createVrfObjectPlanManager();
166 virtual bool createRadio();
189 virtual DtExtent extent()
const;
195 virtual void expandExtent(DtExtent& extent)
const;
200 virtual void sendVrfObjectCreated(
unsigned long requestId = 0);
207 virtual bool isVrfSimulatedObject();
208 virtual void setIsVrfSimulatedObject(
bool b);
217 virtual bool isSimulatingComponents()
const;
220 virtual void putSelf(FILE* fp,
int indentLevel = 0,
bool writeUnspecified =
true,
224 virtual void getSelf(DtlObjPtr args,
const DtFilename& searchPath,
234 virtual bool setObjectName(
const DtString & name,
bool rename =
true);
238 virtual void addNameAlias(
const DtString& name);
242 virtual void unregisterAliases();
257 virtual void addVrfObjectChangedCallback(
259 virtual void removeVrfObjectChangedCallback(
268 virtual void addVerticesChangedCallback(
270 virtual void removeVerticesChangedCallback(
279 virtual void addRelativeVerticesChangedCallback(
281 virtual void removeRelativeVerticesChangedCallback(
287 virtual void addVrfObjectPredicateCallback(
291 virtual void removeVrfObjectPredicateCallback(
298 virtual int predicateCallbackCount()
const;
304 virtual void invokeVrfObjectPredicateCallbacks();
308 virtual void setCoordinateSystem(
const Coordinate_System* coordinateSystem);
314 virtual bool createNetInterface();
320 virtual void setGlobalId(
const DtGlobalObjectDesignator &
id);
321 virtual const DtGlobalObjectDesignator & globalId()
const;
327 virtual bool baseSetObjectName(
const DtString & name);
328 virtual const DtString & objectName()
const;
331 virtual const DtString & objectLabel()
const;
332 virtual void setObjectLabel(
const DtString & objectLabel);
335 virtual const DtString & overlayParent()
const;
336 virtual void setOverlayParent(
const DtString & overlayParent);
339 virtual DtStateRepository* netState();
340 virtual const DtStateRepository* netState()
const;
348 virtual void setObjectIdentifier(
const DtEntityIdentifier & objectId);
349 virtual const DtEntityIdentifier & objectIdentifier()
const;
353 virtual bool isLocal()
const;
359 virtual void setPublishObject(
bool publishObject);
360 virtual bool publishObject()
const;
366 virtual DtString objectClassType()
const;
367 virtual void setObjectClassType(
const DtString & objectClassType);
371 virtual void clearVerticesChangedCallbacks();
375 virtual void clearRelativeVerticesChangedCallbacks();
379 virtual void clearPredicateCallbacks();
381 static void addSimObjectCreatorFcn(
const DtString & type,
395 void setEntityType(
const DtEntityType & entityType);
396 const DtEntityType & entityType()
const;
398 void setDestroyed(
bool destroyed);
399 bool isDestroyed()
const;
412 virtual void place(
const DtVector& location,
bool* dataAvailable = 0,
413 bool requireAllData =
false);
426 virtual void place(
const DtReal heading,
bool* dataAvailable = 0,
427 bool requireAllData =
false);
441 virtual void place(
const DtVector& location,
const DtReal heading,
442 bool* dataAvailable = 0,
bool requireAllData =
false);
444 const DtString & echelonIdString()
const;
448 virtual const DtString& firstSubordinate()
const;
450 virtual const DtString& lastSubordinate()
const;
453 virtual const DtString& firstHealthySubordinate()
const;
457 virtual const DtObjectId & objectId()
const;
458 virtual const DtObjectType& objectType()
const;
461 virtual bool isEmbarked()
const;
465 virtual bool isEmbarkedOn(
const DtString& parent)
const;
474 void setAboutToBeRemoved(
bool);
475 bool aboutToBeRemoved()
const;
479 virtual DtOutputStream& objectConsoleDebug()
const;
480 virtual DtOutputStream& objectConsoleVerbose()
const;
481 virtual DtOutputStream& objectConsoleInfo()
const;
482 virtual DtOutputStream& objectConsoleWarn()
const;
483 virtual DtOutputStream& objectConsoleError()
const;
515 virtual bool hasPlan()
const;
518 virtual bool executingPlan()
const;
521 virtual bool isCurrentlyTasked()
const;
538 virtual DtU8 getNextEmitterSystemId();
541 static void setDefaultNotifyLevel(DtNotifyLevelType level);
543 static DtNotifyLevelType defaultNotifyLevel();
552 virtual const ScriptInterfaceExtensions& scriptExtensions()
const;
559 const DtObjectType& objectType,
561 bool createLocalObject =
true,
562 bool publishLocalObject =
true,
563 const DtEntityIdentifier& objectIdentifier = DtEntityIdentifier::nullId(),
564 const DtGlobalObjectDesignator* globalId = 0,
565 DtReflectedObject* reflectedObject = 0,
566 const DtString & objectName = DtString::nullString(),
567 const DtString & objectLabel = DtString::nullString(),
568 DtForceType forceType = DtForceOther,
569 const DtList* vertices = 0,
570 const DtTaitBryan* orientation = 0,
571 bool projection =
false,
572 bool closedFigure =
false,
573 const DtAppearance& appearance = DtAppearance::nullAppearance(),
574 const DtString & readerWriterName = DtString::nullString(),
579 const DtObjectType& objectType,
582 bool createLocalObject =
true,
583 bool publishLocalObject =
true,
584 const DtEntityIdentifier& objectIdentifier = DtEntityIdentifier::nullId(),
585 const DtGlobalObjectDesignator* globalId = 0,
586 DtReflectedObject* reflectedObject = 0,
587 const DtString & objectName = DtString::nullString(),
588 const DtString & objectLabel = DtString::nullString(),
589 DtForceType forceType = DtForceOther,
590 const DtList* vertices = 0,
591 const DtTaitBryan* orientation = 0,
592 bool projection =
false,
593 bool closedFigure =
false,
594 const DtAppearance& appearance = DtAppearance::nullAppearance(),
595 const DtString & readerWriterName = DtString::nullString(),
600 const DtObjectType & objectType,
603 bool createLocalObject =
true,
604 bool publishLocalObject =
true,
605 const DtEntityIdentifier& objectIdentifier = DtEntityIdentifier::nullId(),
606 const DtGlobalObjectDesignator* globalId = 0,
607 DtReflectedObject* reflectedObject = 0,
608 const DtString & objectName = DtString::nullString(),
609 const DtString & objectLabel = DtString::nullString(),
610 DtForceType forceType = DtForceOther,
611 const DtVector& location = DtVector::zero(),
612 const DtTaitBryan* orientation = 0,
613 bool projection =
false,
614 bool closedFigure =
false,
615 const DtAppearance& appearance = DtAppearance::nullAppearance(),
616 const DtString & readerWriterName = DtString::nullString(),
626 static void verticesChangedCallback(
DtVrfObject* obj,
630 static void relativeVerticesChangedCallback(
DtVrfObject* obj,
641 static void readDRThresholdSettingsCallback(
643 virtual void processReadDRThresholdSettings(
const DtSettingsObject* settings);
648 virtual void addObjectAboutToBeRemovedCallback(
650 virtual void removeObjectAboutToBeRemovedCallback(
652 virtual void invokeVrfObjectAboutToBeRemovedCallbacks();
657 virtual void addSetLocationCompleteCallback(
659 virtual void removeSetLocationCompleteCallback(
661 virtual void invokeSetLocationCompleteCallbacks();
677 virtual void setupStateRepository();
680 virtual void setupNetInterface();
683 void emptyVertexList();
686 void copyVertexList(
const DtList& orig);
690 virtual void validateObjectType();
697 virtual void initializeCommunicationInterfaceCallbacks();