28 #include "tbb/concurrent_hash_map.h"
29 #include "tbb/mutex.h"
33 #include <vlpi/appearance.h>
34 #include <vlpi/artPartSpec.h>
35 #include <vlutil/vlString.h>
36 #include <vlpi/thresholder.h>
39 #include <vlutil/vlConfig.h>
43 #include "boost/logic/tribool.hpp"
101 const DtString& rwName = DtString::nullString(),
106 const DtString& rwName = DtString::nullString(),
118 const DtString& rwName = DtString::nullString(),
127 virtual const int vrfObjectStateRepositorySubType()
const;
131 virtual bool createParameters();
132 virtual void initializeFromParameters();
136 virtual void setJoystickMovementControlled(
bool);
137 virtual bool joystickMovementControlled()
const;
147 virtual void restoreEntity();
154 virtual void clearExtendedData();
155 virtual void removeExtendedData(
const DtString& key);
159 return myExtendedData;
161 virtual void setExtendedDataMap(
const ExtendedData&);
162 virtual void setExtendedDataMap(
const std::map<std::string, std::string>&);
165 virtual void setupExtendedDataFromParameterData();
171 virtual void setExtendedLabel(
int,
const DtString& value);
172 virtual void clearExtendedLabels();
173 virtual DtString extendedLabel(
int index)
const;
174 virtual ExtendedLabels extendedLabels()
const;
175 virtual void setExtendedLabels(
const ExtendedLabels&);
181 virtual const JoystickControls& joystickControls()
const;
186 virtual void setActivity(
const DtString&);
228 virtual void restoreResourcesFromParameters();
233 virtual void setSOR(DtReal center, DtReal size);
235 virtual DtReal SORSize()
const;
236 virtual DtReal SORCenter()
const;
243 virtual bool inSOR(
const DtVrfObject* entity)
const;
245 virtual const DtString& engagementRules()
const;
246 virtual void setEngagementRules(
const DtString& engagementRules);
250 virtual void setRequestTaskNeeded(
bool value);
251 virtual bool requestTaskNeeded()
const;
256 virtual void setTasked(
const DtSymbolString& componentName,
bool tasked);
257 virtual void setTasked(
const DtSymbolString& componentName,
int taskID,
bool tasked);
263 virtual bool isTasked()
const;
266 virtual void clearCurrentTaskMsg(
const DtSymbolString& componentName);
269 virtual void clearCurrentTaskMsg(
const DtSymbolString& componentName,
int taskId);
273 virtual void setCurrentTaskMsg(
const DtSymbolString& componentName,
276 virtual void setCurrentTaskMsg(
const DtSymbolString& componentName,
293 virtual std::list<DtTaskMessage*> allCurrentTaskMsg(
const DtSymbolString& componentName)
const;
297 bool writeUnspecified =
false,
313 std::vector<DtGroundInteractionPt*> groundInteractionPts,
314 bool* terrainDataAvailable = 0);
319 virtual void updateSupportPoints(
const DtVector& newPosition,
320 const DtReal newHeading);
325 virtual void setIndependentlyTasked(
bool value);
326 virtual bool independentlyTasked()
const;
343 static void addSimObjectStateRepositoryCreatorFcn(
const DtString & type,
369 virtual void setupParameterInheritance();
374 virtual DtForceType forceType()
const;
375 virtual void setForceType(DtForceType force);
387 DtArtPartType childType);
393 virtual bool createAppearance();
394 virtual const DtAppearance* appearance()
const;
395 virtual DtAppearance* appearance();
402 virtual void setCapabilities(
int cap);
403 virtual int capabilities()
const;
409 void setDestroyed(
bool isDestroyed);
410 bool isDestroyed()
const;
421 DtReal healthPct()
const;
422 void setHealthPct(DtReal pct);
428 bool firePowerKilled()
const;
429 void setFirePowerKilled(
const bool firePowerKilled);
431 bool mobilityKilled()
const;
432 void setMobilityKilled(
const bool mobilityKilled);
434 bool flaming()
const;
435 void setFlaming(
const bool flaming);
437 bool smoking()
const;
438 void setSmoking(
const bool smoking);
444 bool isEntity()
const;
450 bool isLocal()
const;
456 bool isAggregate()
const;
470 void addSubordinate(
DtVrfObject* subordinateEntity);
473 void removeSubordinate(
DtVrfObject* subordinateEntity);
509 virtual void timedTick();
513 virtual void setMinTickPeriod(
double minTickPeriod);
516 virtual double minTickPeriod()
const;
519 virtual void setMinTickPeriodVariance(
double minTickPeriodVariance);
522 virtual double minTickPeriodVariance()
const;
527 virtual void setNextTickTime(
double nextTickTime);
530 virtual double nextTickTime()
const;
537 virtual double calculateNextTickTime()
const;
539 virtual bool createSubordinates();
543 virtual bool createProcessStateRepositoryManager();
550 systemProcessStateRepositoryManager()
const;
556 virtual const DtTaitBryan& localOrientationWrtDatabase()
const;
557 virtual void setLocalOrientationWrtDatabase(
558 const DtTaitBryan& localOrientation);
570 virtual void processObjectGeometry(
const DtList& vertices);
579 virtual void processObjectGeometry();
586 virtual const DtVector& getPartAttachPoint(
const int partType)
const;
602 virtual void place(
const DtVector& location,
bool* dataAvailable = 0,
603 bool requireAllData =
false);
619 virtual void place(
const DtReal heading,
bool* dataAvailable = 0,
620 bool requireAllData =
false);
634 virtual void place(
const DtVector& location,
const DtReal heading,
635 bool clampToGroundFlag =
true,
bool* dataAvailable = 0,
636 bool requireAllData =
false);
644 virtual DtReal mass()
const;
645 virtual void setMass(
const DtReal mass);
648 virtual const DtArticulatedPartCollection* artPartList()
const;
653 virtual void createParts();
655 virtual DtTime lastTimeFiredUpon()
const;
656 virtual void setLastTimeFiredUpon(
const DtTime time);
658 virtual bool underFire()
const;
659 virtual void setUnderFire(
bool underFire);
671 virtual suppressionLevels suppressionLevel()
const;
672 virtual void setSuppressionLevel(
const suppressionLevels l);
673 virtual bool isSuppressed()
const;
676 virtual DtDeadReckonTypes deadReckoningAlgorithm()
const;
677 virtual void setDeadReckoningAlgorithm(
678 DtDeadReckonTypes deadReckoningAlgorithm);
682 virtual const DtThresholder& deadReckoningThresholder()
const;
683 virtual void setDeadReckoningThresholder(
684 const DtThresholder& thresholder);
690 virtual const DtEntityIdentifier & occupyingObjectId()
const;
691 virtual void setOccupyingObjectId(
const DtEntityIdentifier & objId);
697 virtual void setEchelonId(
const DtEchelonId& echelonId);
704 virtual void setIsSubordinateOfForceLevel(
bool yesNo);
705 virtual bool isSubordinateOfForceLevel()
const;
710 virtual void putData(FILE *fp,
int indentLevel = 0);
720 virtual int nextTaskId();
723 virtual int nextSuspendId();
734 virtual int spawningTaskId(
int subtaskId)
const;
736 virtual void addPendingSubtaskId(
const DtSymbolString& componentName,
int subtaskId);
737 virtual void addPendingSubtaskId(
const DtSymbolString& componentName,
int taskId,
int subtaskId);
738 virtual bool findPendingSubtaskId(
const DtSymbolString& componentName,
int subtaskId);
739 virtual bool isSubtasked(
const DtSymbolString& componentName)
const;
740 virtual bool findPendingSubtaskId(
const DtSymbolString& componentName,
int taskId,
int subtaskId);
741 virtual void removePendingSubtaskId(
const DtSymbolString& componentName,
int subtaskId);
742 virtual void removePendingSubtaskId(
const DtSymbolString& componentName,
int taskId,
int subtaskId);
743 virtual void removeAllPendingSubtaskIds(
const DtSymbolString& componentName);
744 virtual void removeAllPendingSubtaskIds(
const DtSymbolString& componentName,
int taskId);
745 virtual void printPendingSubtaskIds(
const DtSymbolString& componentName)
const;
746 virtual std::vector<int> currentPendingSubstaskIds(
const DtSymbolString& componentName)
const;
747 virtual std::vector<int> currentPendingSubstaskIds(
const DtSymbolString& componentName,
int taskId)
const;
759 virtual bool taskedBySuperiorUponTaskComplete()
const;
761 virtual void setParentWasDestroyedWhenEmbarked(
bool);
762 virtual bool parentWasDestroyedWhenEmbarked()
const;
775 virtual void addAttachedTerrain(
const DtUUID& parent);
779 virtual void removeAttachedTerrain(
const DtUUID& parent);
783 Dt3dBoundingVolume* boundingVolume()
const;
788 DtVector localBoundingVolumeCenterPosition()
const;
795 DtReal currentSpeed()
const;
802 DtReal forwardSpeed()
const;
806 DtReal currentHeading()
const;
807 void setCurrentHeading(
const DtReal heading);
820 virtual void restoreStateProperties();
823 virtual void initStatePropertiesNotToBeRestored();
841 virtual void initializeNextTaskId();
853 const DtString& rwName = DtString::nullString());
860 virtual void removeRangeItem(
int index);
864 virtual void clearRangeItems();
869 virtual boost::tribool onTerrainSurface()
const;
875 virtual double sensorSignature(
const DtSymbolString& sensorDomain)
const;
879 virtual std::list<DtSymbolString> sensorSignatureDomains()
const;
895 virtual double baseSensorSignature(
const DtSymbolString& sensorDomain)
const;
900 virtual double modifySensorSignature(
const DtSymbolString& sensorDomain,
901 double baseSignature)
const;
905 virtual bool initSignatureEvaluators();
909 void clearSignatureEvaluators();
912 virtual bool createObjectResourceManager();
915 virtual void invokePostInitFromParamsCallbacks();
941 static bool visibilityFilter(
const DtVrfObject *
object,
void * usr);