16 #include <vrfExtProtocol/objType.h>
24 #include "vrfExtProtocol/rangeItem.h"
28 #include <vlpi/appearance.h>
29 #include <vlpi/apSpec.h>
30 #include <vlutil/vlString.h>
31 #include <vlpi/thresholder.h>
34 #include <vlutil/vlConfig.h>
89 const DtString& rwName = DtString::nullString(),
94 const DtString& rwName = DtString::nullString(),
106 const DtString& rwName = DtString::nullString(),
115 virtual const int vrfObjectStateRepositorySubType()
const;
119 virtual bool createParameters();
120 virtual void initializeFromParameters();
131 virtual void restoreEntity();
172 virtual void restoreResourcesFromParameters();
177 virtual void setSOR(DtReal center, DtReal size);
179 virtual DtReal SORSize()
const;
180 virtual DtReal SORCenter()
const;
187 virtual bool inSOR(
const DtVrfObject* entity)
const;
189 virtual const DtString& engagementRules()
const;
190 virtual void setEngagementRules(
const DtString& engagementRules);
194 virtual void setRequestTaskNeeded(
bool value);
195 virtual bool requestTaskNeeded()
const;
200 virtual void setTasked(
const DtString& componentName,
bool tasked);
201 virtual void setTasked(
const DtString& componentName,
int taskID,
bool tasked);
202 virtual bool tasked(
const DtString& componentName)
const;
207 virtual bool isTasked()
const;
210 virtual void clearCurrentTaskMsg(
const DtString& componentName);
213 virtual void clearCurrentTaskMsg(
const DtString& componentName,
int taskId);
217 virtual void setCurrentTaskMsg(
const DtString& componentName,
220 virtual void setCurrentTaskMsg(
const DtString& componentName,
237 virtual std::list<DtTaskMessage*> allCurrentTaskMsg(
const DtString& componentName)
const;
241 bool writeUnspecified =
false,
257 std::vector<DtGroundInteractionPt*> groundInteractionPts,
258 bool* terrainDataAvailable = 0);
263 virtual void updateSupportPoints(
const DtVector& newPosition,
264 const DtReal newHeading);
269 virtual void setIndependentlyTasked(
bool value);
270 virtual bool independentlyTasked()
const;
288 static void addSimObjectStateRepositoryCreatorFcn(
const DtString & type,
314 virtual void setupParameterInheritance();
319 virtual DtForceType forceType()
const;
320 virtual void setForceType(DtForceType force);
332 DtArtPartType childType);
338 virtual bool createAppearance();
339 virtual const DtAppearance* appearance()
const;
340 virtual DtAppearance* appearance();
347 virtual void setCapabilities(
int cap);
348 virtual int capabilities()
const;
354 void setDestroyed(
bool isDestroyed);
355 bool isDestroyed()
const;
366 DtReal healthPct()
const;
367 void setHealthPct(DtReal pct);
373 bool firePowerKilled()
const;
374 void setFirePowerKilled(
const bool firePowerKilled);
376 bool mobilityKilled()
const;
377 void setMobilityKilled(
const bool mobilityKilled);
379 bool flaming()
const;
380 void setFlaming(
const bool flaming);
382 bool smoking()
const;
383 void setSmoking(
const bool smoking);
389 bool isEntity()
const;
395 bool isLocal()
const;
401 bool isAggregate()
const;
415 void addSubordinate(
DtVrfObject* subordinateEntity);
418 void removeSubordinate(
DtVrfObject* subordinateEntity);
424 virtual const DtString& firstSubordinate()
const;
427 virtual const DtString& lastSubordinate()
const;
430 virtual const DtString& firstHealthySubordinate()
const;
454 virtual void timedTick();
458 virtual void setMinTickPeriod(
double minTickPeriod);
461 virtual double minTickPeriod()
const;
464 virtual void setMinTickPeriodVariance(
double minTickPeriodVariance);
467 virtual double minTickPeriodVariance()
const;
472 virtual void setNextTickTime(
double nextTickTime);
475 virtual double nextTickTime()
const;
482 virtual double calculateNextTickTime()
const;
484 virtual bool createSubordinates();
488 virtual bool createProcessStateRepositoryManager();
495 systemProcessStateRepositoryManager()
const;
501 virtual const DtTaitBryan& localOrientationWrtDatabase()
const;
502 virtual void setLocalOrientationWrtDatabase(
503 const DtTaitBryan& localOrientation);
515 virtual void processObjectGeometry(
const DtList& vertices);
524 virtual void processObjectGeometry();
531 virtual const DtVector& getPartAttachPoint(
const int partType)
const;
547 virtual void place(
const DtVector& location,
bool* dataAvailable = 0,
548 bool requireAllData =
false);
564 virtual void place(
const DtReal heading,
bool* dataAvailable = 0,
565 bool requireAllData =
false);
579 virtual void place(
const DtVector& location,
const DtReal heading,
580 bool clampToGroundFlag =
true,
bool* dataAvailable = 0,
581 bool requireAllData =
false);
589 virtual DtReal mass()
const;
590 virtual void setMass(
const DtReal mass);
593 virtual const DtArticulatedPartCollection* artPartList()
const;
598 virtual void createParts();
600 virtual DtTime lastTimeFiredUpon()
const;
601 virtual void setLastTimeFiredUpon(
const DtTime time);
603 virtual bool underFire()
const;
604 virtual void setUnderFire(
bool underFire);
606 virtual DtDeadReckonTypes deadReckoningAlgorithm()
const;
607 virtual void setDeadReckoningAlgorithm(
608 DtDeadReckonTypes deadReckoningAlgorithm);
612 virtual const DtThresholder& deadReckoningThresholder()
const;
613 virtual void setDeadReckoningThresholder(
614 const DtThresholder& thresholder);
620 virtual const DtEntityIdentifier & occupyingObjectId()
const;
621 virtual void setOccupyingObjectId(
const DtEntityIdentifier & objId);
627 virtual void setEchelonId(
const DtEchelonId& echelonId);
634 virtual void setIsSubordinateOfForceLevel(
bool yesNo);
635 virtual bool isSubordinateOfForceLevel()
const;
640 virtual void putData(FILE *fp,
int indentLevel = 0);
646 virtual void getSelf(DtlObjPtr args,
const DtFilename& searchPath,
650 virtual int nextTaskId();
653 virtual int nextSuspendId();
664 virtual int spawningTaskId(
int subtaskId)
const;
666 virtual void addPendingSubtaskId(
const DtString& componentName,
int subtaskId);
667 virtual void addPendingSubtaskId(
const DtString& componentName,
int taskId,
int subtaskId);
668 virtual bool findPendingSubtaskId(
const DtString& componentName,
int subtaskId);
669 virtual bool findPendingSubtaskId(
const DtString& componentName,
int taskId,
int subtaskId);
670 virtual void removePendingSubtaskId(
const DtString& componentName,
int subtaskId);
671 virtual void removePendingSubtaskId(
const DtString& componentName,
int taskId,
int subtaskId);
672 virtual void removeAllPendingSubtaskIds(
const DtString& componentName);
673 virtual void removeAllPendingSubtaskIds(
const DtString& componentName,
int taskId);
674 virtual void printPendingSubtaskIds(
const DtString& componentName)
const;
675 virtual std::vector<int> currentPendingSubstaskIds(
const DtString& componentName)
const;
676 virtual std::vector<int> currentPendingSubstaskIds(
const DtString& componentName,
int taskId)
const;
688 virtual bool taskedBySuperiorUponTaskComplete()
const;
690 virtual void setParentWasDestroyedWhenEmbarked(
bool);
691 virtual bool parentWasDestroyedWhenEmbarked()
const;
704 virtual void addAttachedTerrain(
const DtString& parent);
708 virtual void removeAttachedTerrain(
const DtString& parent);
712 Dt3dBoundingVolume* boundingVolume()
const;
719 DtReal currentSpeed()
const;
726 DtReal forwardSpeed()
const;
730 DtReal currentHeading()
const;
731 void setCurrentHeading(
const DtReal heading);
747 virtual void initializeNextTaskId();
758 DtVrfObject* vrfObject,
const DtObjectType& objectType,
759 const DtString& rwName = DtString::nullString());
765 virtual void addRangeItem(
const DtRangeItem&);
766 virtual void removeRangeItem(
int index);
767 virtual void setRangeItems(
const DtRangeItems&);
768 const DtRangeItems& rangeItems()
const;
769 DtRangeItems& rangeItems();
770 virtual void clearRangeItems();
779 virtual double sensorSignature(
const DtSymbolString& sensorDomain)
const;
783 virtual std::list<DtSymbolString> sensorSignatureDomains()
const;
799 virtual double baseSensorSignature(
const DtSymbolString& sensorDomain)
const;
804 virtual double modifySensorSignature(
const DtSymbolString& sensorDomain,
805 double baseSignature)
const;
809 virtual bool initSignatureEvaluators();
813 void clearSignatureEvaluators();
816 virtual bool createObjectResourceManager();
819 virtual void invokePostInitFromParamsCallbacks();
829 DtVrfObject* simObject,
const DtObjectType& objectType,
845 static bool visibilityFilter(
const DtVrfObject *
object,
void * usr);