27 #include <vlpi/appearance.h>
28 #include <vlpi/apSpec.h>
29 #include <vlutil/vlString.h>
30 #include <vlpi/thresholder.h>
33 #include <vlutil/vlConfig.h>
88 const DtString& rwName = DtString::nullString(),
93 const DtString& rwName = DtString::nullString(),
105 const DtString& rwName = DtString::nullString(),
114 virtual const int vrfObjectStateRepositorySubType()
const;
118 virtual bool createParameters();
119 virtual void initializeFromParameters();
130 virtual void restoreEntity();
171 virtual void restoreResourcesFromParameters();
176 virtual void setSOR(DtReal center, DtReal size);
178 virtual DtReal SORSize()
const;
179 virtual DtReal SORCenter()
const;
186 virtual bool inSOR(
const DtVrfObject* entity)
const;
188 virtual const DtString& engagementRules()
const;
189 virtual void setEngagementRules(
const DtString& engagementRules);
193 virtual void setRequestTaskNeeded(
bool value);
194 virtual bool requestTaskNeeded()
const;
199 virtual void setTasked(
const DtString& componentName,
bool tasked);
200 virtual bool tasked(
const DtString& componentName)
const;
205 virtual bool isTasked()
const;
208 virtual void clearCurrentTaskMsg(
const DtString& componentName);
211 virtual void clearCurrentTaskMsg(
const DtString& componentName,
int taskId);
215 virtual void setCurrentTaskMsg(
const DtString& componentName,
218 virtual void setCurrentTaskMsg(
const DtString& componentName,
233 virtual std::list<DtTaskMessage*> allCurrentTaskMsg(
const DtString& componentName)
const;
237 bool writeUnspecified =
false,
253 std::vector<DtGroundInteractionPt*> groundInteractionPts,
254 bool* terrainDataAvailable = 0);
259 virtual void updateSupportPoints(
const DtVector& newPosition,
260 const DtReal newHeading);
265 virtual void setIndependentlyTasked(
bool value);
266 virtual bool independentlyTasked()
const;
284 static void addSimObjectStateRepositoryCreatorFcn(
const DtString & type,
310 virtual void setupParameterInheritance();
315 virtual DtForceType forceType()
const;
316 virtual void setForceType(DtForceType force);
328 DtArtPartType childType);
334 virtual bool createAppearance();
335 virtual const DtAppearance* appearance()
const;
336 virtual DtAppearance* appearance();
343 virtual void setCapabilities(
int cap);
344 virtual int capabilities()
const;
350 void setDestroyed(
bool isDestroyed);
351 bool isDestroyed()
const;
362 DtReal healthPct()
const;
363 void setHealthPct(DtReal pct);
369 bool firePowerKilled()
const;
370 void setFirePowerKilled(
const bool firePowerKilled);
372 bool mobilityKilled()
const;
373 void setMobilityKilled(
const bool mobilityKilled);
375 bool flaming()
const;
376 void setFlaming(
const bool flaming);
378 bool smoking()
const;
379 void setSmoking(
const bool smoking);
385 bool isEntity()
const;
390 bool isLocal()
const;
396 bool isAggregate()
const;
410 void addSubordinate(
DtVrfObject* subordinateEntity);
413 void removeSubordinate(
DtVrfObject* subordinateEntity);
419 virtual const DtString& firstSubordinate()
const;
422 virtual const DtString& lastSubordinate()
const;
425 virtual const DtString& firstHealthySubordinate()
const;
449 virtual void timedTick();
453 virtual void setMinTickPeriod(
double minTickPeriod);
456 virtual double minTickPeriod()
const;
459 virtual void setMinTickPeriodVariance(
double minTickPeriodVariance);
462 virtual double minTickPeriodVariance()
const;
467 virtual void setNextTickTime(
double nextTickTime);
470 virtual double nextTickTime()
const;
477 virtual double calculateNextTickTime()
const;
479 virtual bool createSubordinates();
483 virtual bool createProcessStateRepositoryManager();
490 systemProcessStateRepositoryManager()
const;
496 virtual const DtTaitBryan& localOrientationWrtDatabase()
const;
497 virtual void setLocalOrientationWrtDatabase(
498 const DtTaitBryan& localOrientation);
510 virtual void processObjectGeometry(
const DtList& vertices);
519 virtual void processObjectGeometry();
526 virtual const DtVector& getPartAttachPoint(
const int partType)
const;
542 virtual void place(
const DtVector& location,
bool* dataAvailable = 0,
543 bool requireAllData =
false);
559 virtual void place(
const DtReal heading,
bool* dataAvailable = 0,
560 bool requireAllData =
false);
574 virtual void place(
const DtVector& location,
const DtReal heading,
575 bool clampToGroundFlag =
true,
bool* dataAvailable = 0,
576 bool requireAllData =
false);
584 virtual DtReal mass()
const;
585 virtual void setMass(
const DtReal mass);
588 virtual const DtArticulatedPartCollection* artPartList()
const;
593 virtual void createParts();
595 virtual DtTime lastTimeFiredUpon()
const;
596 virtual void setLastTimeFiredUpon(
const DtTime time);
598 virtual bool underFire()
const;
599 virtual void setUnderFire(
bool underFire);
601 virtual DtDeadReckonTypes deadReckoningAlgorithm()
const;
602 virtual void setDeadReckoningAlgorithm(
603 DtDeadReckonTypes deadReckoningAlgorithm);
607 virtual const DtThresholder& deadReckoningThresholder()
const;
608 virtual void setDeadReckoningThresholder(
609 const DtThresholder& thresholder);
615 virtual const DtEntityIdentifier & occupyingObjectId()
const;
616 virtual void setOccupyingObjectId(
const DtEntityIdentifier & objId);
622 virtual void setEchelonId(
const DtEchelonId& echelonId);
629 virtual void setIsSubordinateOfForceLevel(
bool yesNo);
630 virtual bool isSubordinateOfForceLevel()
const;
635 virtual void putData(FILE *fp,
int indentLevel = 0);
641 virtual void getSelf(DtlObjPtr args,
const DtFilename& searchPath,
645 virtual int nextTaskId();
653 virtual void addPendingSubtaskId(
const DtString& componentName,
int subtaskId);
654 virtual void addPendingSubtaskId(
const DtString& componentName,
int taskId,
int subtaskId);
655 virtual bool findPendingSubtaskId(
const DtString& componentName,
int subtaskId);
656 virtual bool findPendingSubtaskId(
const DtString& componentName,
int taskId,
int subtaskId);
657 virtual void removePendingSubtaskId(
const DtString& componentName,
int subtaskId);
658 virtual void removePendingSubtaskId(
const DtString& componentName,
int taskId,
int subtaskId);
659 virtual void removeAllPendingSubtaskIds(
const DtString& componentName);
660 virtual void removeAllPendingSubtaskIds(
const DtString& componentName,
int taskId);
661 virtual void printPendingSubtaskIds(
const DtString& componentName)
const;
662 virtual std::vector<int> currentPendingSubstaskIds(
const DtString& componentName)
const;
663 virtual std::vector<int> currentPendingSubstaskIds(
const DtString& componentName,
int taskId)
const;
675 virtual bool taskedBySuperiorUponTaskComplete()
const;
677 virtual void setParentWasDestroyedWhenEmbarked(
bool);
678 virtual bool parentWasDestroyedWhenEmbarked()
const;
691 virtual void addAttachedTerrain(
const DtString& parent);
695 virtual void removeAttachedTerrain(
const DtString& parent);
699 Dt3dBoundingVolume* boundingVolume()
const;
706 DtReal currentSpeed()
const;
713 DtReal forwardSpeed()
const;
717 DtReal currentHeading()
const;
718 void setCurrentHeading(
const DtReal heading);
734 virtual void initializeNextTaskId();
746 const DtString& rwName = DtString::nullString());
753 virtual void removeRangeItem(
int index);
757 virtual void clearRangeItems();
766 virtual double sensorSignature(
const DtSymbolString& sensorDomain)
const;
770 virtual std::list<DtSymbolString> sensorSignatureDomains()
const;
786 virtual double baseSensorSignature(
const DtSymbolString& sensorDomain)
const;
791 virtual double modifySensorSignature(
const DtSymbolString& sensorDomain,
792 double baseSignature)
const;
796 virtual bool initSignatureEvaluators();
800 void clearSignatureEvaluators();
803 virtual bool createObjectResourceManager();
806 virtual void invokePostInitFromParamsCallbacks();
832 static bool visibilityFilter(
const DtVrfObject *
object,
void * usr);