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 void setTasked(
const DtString& componentName,
int taskID,
bool tasked);
201 virtual bool tasked(
const DtString& componentName)
const;
206 virtual bool isTasked()
const;
209 virtual void clearCurrentTaskMsg(
const DtString& componentName);
212 virtual void clearCurrentTaskMsg(
const DtString& componentName,
int taskId);
216 virtual void setCurrentTaskMsg(
const DtString& componentName,
219 virtual void setCurrentTaskMsg(
const DtString& componentName,
234 virtual std::list<DtTaskMessage*> allCurrentTaskMsg(
const DtString& componentName)
const;
238 bool writeUnspecified =
false,
254 std::vector<DtGroundInteractionPt*> groundInteractionPts,
255 bool* terrainDataAvailable = 0);
260 virtual void updateSupportPoints(
const DtVector& newPosition,
261 const DtReal newHeading);
266 virtual void setIndependentlyTasked(
bool value);
267 virtual bool independentlyTasked()
const;
285 static void addSimObjectStateRepositoryCreatorFcn(
const DtString & type,
311 virtual void setupParameterInheritance();
316 virtual DtForceType forceType()
const;
317 virtual void setForceType(DtForceType force);
329 DtArtPartType childType);
335 virtual bool createAppearance();
336 virtual const DtAppearance* appearance()
const;
337 virtual DtAppearance* appearance();
344 virtual void setCapabilities(
int cap);
345 virtual int capabilities()
const;
351 void setDestroyed(
bool isDestroyed);
352 bool isDestroyed()
const;
363 DtReal healthPct()
const;
364 void setHealthPct(DtReal pct);
370 bool firePowerKilled()
const;
371 void setFirePowerKilled(
const bool firePowerKilled);
373 bool mobilityKilled()
const;
374 void setMobilityKilled(
const bool mobilityKilled);
376 bool flaming()
const;
377 void setFlaming(
const bool flaming);
379 bool smoking()
const;
380 void setSmoking(
const bool smoking);
386 bool isEntity()
const;
392 bool isLocal()
const;
398 bool isAggregate()
const;
412 void addSubordinate(
DtVrfObject* subordinateEntity);
415 void removeSubordinate(
DtVrfObject* subordinateEntity);
421 virtual const DtString& firstSubordinate()
const;
424 virtual const DtString& lastSubordinate()
const;
427 virtual const DtString& firstHealthySubordinate()
const;
451 virtual void timedTick();
455 virtual void setMinTickPeriod(
double minTickPeriod);
458 virtual double minTickPeriod()
const;
461 virtual void setMinTickPeriodVariance(
double minTickPeriodVariance);
464 virtual double minTickPeriodVariance()
const;
469 virtual void setNextTickTime(
double nextTickTime);
472 virtual double nextTickTime()
const;
479 virtual double calculateNextTickTime()
const;
481 virtual bool createSubordinates();
485 virtual bool createProcessStateRepositoryManager();
492 systemProcessStateRepositoryManager()
const;
498 virtual const DtTaitBryan& localOrientationWrtDatabase()
const;
499 virtual void setLocalOrientationWrtDatabase(
500 const DtTaitBryan& localOrientation);
512 virtual void processObjectGeometry(
const DtList& vertices);
521 virtual void processObjectGeometry();
528 virtual const DtVector& getPartAttachPoint(
const int partType)
const;
544 virtual void place(
const DtVector& location,
bool* dataAvailable = 0,
545 bool requireAllData =
false);
561 virtual void place(
const DtReal heading,
bool* dataAvailable = 0,
562 bool requireAllData =
false);
576 virtual void place(
const DtVector& location,
const DtReal heading,
577 bool clampToGroundFlag =
true,
bool* dataAvailable = 0,
578 bool requireAllData =
false);
586 virtual DtReal mass()
const;
587 virtual void setMass(
const DtReal mass);
590 virtual const DtArticulatedPartCollection* artPartList()
const;
595 virtual void createParts();
597 virtual DtTime lastTimeFiredUpon()
const;
598 virtual void setLastTimeFiredUpon(
const DtTime time);
600 virtual bool underFire()
const;
601 virtual void setUnderFire(
bool underFire);
603 virtual DtDeadReckonTypes deadReckoningAlgorithm()
const;
604 virtual void setDeadReckoningAlgorithm(
605 DtDeadReckonTypes deadReckoningAlgorithm);
609 virtual const DtThresholder& deadReckoningThresholder()
const;
610 virtual void setDeadReckoningThresholder(
611 const DtThresholder& thresholder);
617 virtual const DtEntityIdentifier & occupyingObjectId()
const;
618 virtual void setOccupyingObjectId(
const DtEntityIdentifier & objId);
624 virtual void setEchelonId(
const DtEchelonId& echelonId);
631 virtual void setIsSubordinateOfForceLevel(
bool yesNo);
632 virtual bool isSubordinateOfForceLevel()
const;
637 virtual void putData(FILE *fp,
int indentLevel = 0);
643 virtual void getSelf(DtlObjPtr args,
const DtFilename& searchPath,
647 virtual int nextTaskId();
655 virtual void addPendingSubtaskId(
const DtString& componentName,
int subtaskId);
656 virtual void addPendingSubtaskId(
const DtString& componentName,
int taskId,
int subtaskId);
657 virtual bool findPendingSubtaskId(
const DtString& componentName,
int subtaskId);
658 virtual bool findPendingSubtaskId(
const DtString& componentName,
int taskId,
int subtaskId);
659 virtual void removePendingSubtaskId(
const DtString& componentName,
int subtaskId);
660 virtual void removePendingSubtaskId(
const DtString& componentName,
int taskId,
int subtaskId);
661 virtual void removeAllPendingSubtaskIds(
const DtString& componentName);
662 virtual void removeAllPendingSubtaskIds(
const DtString& componentName,
int taskId);
663 virtual void printPendingSubtaskIds(
const DtString& componentName)
const;
664 virtual std::vector<int> currentPendingSubstaskIds(
const DtString& componentName)
const;
665 virtual std::vector<int> currentPendingSubstaskIds(
const DtString& componentName,
int taskId)
const;
677 virtual bool taskedBySuperiorUponTaskComplete()
const;
679 virtual void setParentWasDestroyedWhenEmbarked(
bool);
680 virtual bool parentWasDestroyedWhenEmbarked()
const;
693 virtual void addAttachedTerrain(
const DtString& parent);
697 virtual void removeAttachedTerrain(
const DtString& parent);
701 Dt3dBoundingVolume* boundingVolume()
const;
708 DtReal currentSpeed()
const;
715 DtReal forwardSpeed()
const;
719 DtReal currentHeading()
const;
720 void setCurrentHeading(
const DtReal heading);
736 virtual void initializeNextTaskId();
748 const DtString& rwName = DtString::nullString());
755 virtual void removeRangeItem(
int index);
759 virtual void clearRangeItems();
768 virtual double sensorSignature(
const DtSymbolString& sensorDomain)
const;
772 virtual std::list<DtSymbolString> sensorSignatureDomains()
const;
788 virtual double baseSensorSignature(
const DtSymbolString& sensorDomain)
const;
793 virtual double modifySensorSignature(
const DtSymbolString& sensorDomain,
794 double baseSignature)
const;
798 virtual bool initSignatureEvaluators();
802 void clearSignatureEvaluators();
805 virtual bool createObjectResourceManager();
808 virtual void invokePostInitFromParamsCallbacks();
834 static bool visibilityFilter(
const DtVrfObject *
object,
void * usr);