29 #include "tbb/concurrent_hash_map.h"
30 #include "tbb/mutex.h"
34 #include <vlpi/appearance.h>
35 #include <vlpi/artPartSpec.h>
36 #include <vlutil/vlString.h>
37 #include <vlpi/thresholder.h>
40 #include <vlutil/vlConfig.h>
44 #include "boost/logic/tribool.hpp"
102 const DtString& rwName = DtString::nullString(),
107 const DtString& rwName = DtString::nullString(),
119 const DtString& rwName = DtString::nullString(),
128 virtual const int vrfObjectStateRepositorySubType()
const;
132 virtual bool createParameters();
133 virtual void initializeFromParameters();
137 virtual void setJoystickMovementControlled(
bool);
138 virtual bool joystickMovementControlled()
const;
148 virtual void restoreEntity();
155 virtual void clearExtendedData();
156 virtual void removeExtendedData(
const DtString& key);
160 return myExtendedData;
162 virtual void setExtendedDataMap(
const ExtendedData&);
163 virtual void setExtendedDataMap(
const std::map<std::string, std::string>&);
166 virtual void setupExtendedDataFromParameterData();
172 virtual void setExtendedLabel(
int,
const DtString& value);
173 virtual void clearExtendedLabels();
174 virtual DtString extendedLabel(
int index)
const;
175 virtual ExtendedLabels extendedLabels()
const;
176 virtual void setExtendedLabels(
const ExtendedLabels&);
182 virtual const JoystickControls& joystickControls()
const;
187 virtual void setActivity(
const DtString&);
229 virtual void restoreResourcesFromParameters();
234 virtual void setSOR(DtReal center, DtReal size);
236 virtual DtReal SORSize()
const;
237 virtual DtReal SORCenter()
const;
244 virtual bool inSOR(
const DtVrfObject* entity)
const;
246 virtual const DtString& engagementRules()
const;
247 virtual void setEngagementRules(
const DtString& engagementRules);
251 virtual void setRequestTaskNeeded(
bool value);
252 virtual bool requestTaskNeeded()
const;
257 virtual void setTasked(
const DtSymbolString& componentName,
bool tasked);
258 virtual void setTasked(
const DtSymbolString& componentName,
int taskID,
bool tasked);
264 virtual bool isTasked()
const;
267 virtual void clearCurrentTaskMsg(
const DtSymbolString& componentName);
270 virtual void clearCurrentTaskMsg(
const DtSymbolString& componentName,
int taskId);
274 virtual void setCurrentTaskMsg(
const DtSymbolString& componentName,
277 virtual void setCurrentTaskMsg(
const DtSymbolString& componentName,
294 virtual std::list<DtTaskMessage*> allCurrentTaskMsg(
const DtSymbolString& componentName)
const;
296 virtual void putSelf(std::string& fp,
298 bool writeUnspecified =
false,
314 std::vector<DtGroundInteractionPt*> groundInteractionPts,
315 bool* terrainDataAvailable = 0);
320 virtual void updateSupportPoints(
const DtVector& newPosition,
321 const DtReal newHeading);
326 virtual void setIndependentlyTasked(
bool value);
327 virtual bool independentlyTasked()
const;
344 static void addSimObjectStateRepositoryCreatorFcn(
const DtString & type,
370 virtual void setupParameterInheritance();
375 virtual DtForceType forceType()
const;
376 virtual void setForceType(DtForceType force);
388 DtArtPartType childType);
394 virtual bool createAppearance();
395 virtual const DtAppearance* appearance()
const;
396 virtual DtAppearance* appearance();
403 virtual void setCapabilities(
int cap);
404 virtual int capabilities()
const;
410 void setDestroyed(
bool isDestroyed);
411 bool isDestroyed()
const;
422 DtReal healthPct()
const;
423 void setHealthPct(DtReal pct);
429 bool firePowerKilled()
const;
430 void setFirePowerKilled(
const bool firePowerKilled);
432 bool mobilityKilled()
const;
433 void setMobilityKilled(
const bool mobilityKilled);
435 bool flaming()
const;
436 void setFlaming(
const bool flaming);
438 bool smoking()
const;
439 void setSmoking(
const bool smoking);
445 bool isEntity()
const;
451 bool isLocal()
const;
457 bool isAggregate()
const;
471 void addSubordinate(
DtVrfObject* subordinateEntity);
474 void removeSubordinate(
DtVrfObject* subordinateEntity);
510 virtual void timedTick();
514 virtual void setMinTickPeriod(
double minTickPeriod);
517 virtual double minTickPeriod()
const;
520 virtual void setMinTickPeriodVariance(
double minTickPeriodVariance);
523 virtual double minTickPeriodVariance()
const;
528 virtual void setNextTickTime(
double nextTickTime);
531 virtual double nextTickTime()
const;
538 virtual double calculateNextTickTime()
const;
540 virtual bool createSubordinates();
544 virtual bool createProcessStateRepositoryManager();
551 systemProcessStateRepositoryManager()
const;
557 virtual const DtTaitBryan& localOrientationWrtDatabase()
const;
558 virtual void setLocalOrientationWrtDatabase(
559 const DtTaitBryan& localOrientation);
571 virtual void processObjectGeometry(
const DtList& vertices);
580 virtual void processObjectGeometry();
587 virtual const DtVector& getPartAttachPoint(
const int partType)
const;
603 virtual void place(
const DtVector& location,
bool* dataAvailable = 0,
604 bool requireAllData =
false);
620 virtual void place(
const DtReal heading,
bool* dataAvailable = 0,
621 bool requireAllData =
false);
635 virtual void place(
const DtVector& location,
const DtReal heading,
636 bool clampToGroundFlag =
true,
bool* dataAvailable = 0,
637 bool requireAllData =
false);
645 virtual DtReal mass()
const;
646 virtual void setMass(
const DtReal mass);
649 virtual const DtArticulatedPartCollection* artPartList()
const;
654 virtual void createParts();
656 virtual DtTime lastTimeFiredUpon()
const;
657 virtual void setLastTimeFiredUpon(
const DtTime time);
659 virtual bool underFire()
const;
660 virtual void setUnderFire(
bool underFire);
672 virtual suppressionLevels suppressionLevel()
const;
673 virtual void setSuppressionLevel(
const suppressionLevels l);
674 virtual bool isSuppressed()
const;
677 virtual DtDeadReckonTypes deadReckoningAlgorithm()
const;
678 virtual void setDeadReckoningAlgorithm(
679 DtDeadReckonTypes deadReckoningAlgorithm);
683 virtual const DtThresholder& deadReckoningThresholder()
const;
684 virtual void setDeadReckoningThresholder(
685 const DtThresholder& thresholder);
691 virtual const DtEntityIdentifier & occupyingObjectId()
const;
692 virtual void setOccupyingObjectId(
const DtEntityIdentifier & objId);
698 virtual void setEchelonId(
const DtEchelonId& echelonId);
705 virtual void setIsSubordinateOfForceLevel(
bool yesNo);
706 virtual bool isSubordinateOfForceLevel()
const;
711 virtual void putData(std::string& fp,
int indentLevel = 0);
721 virtual int nextTaskId();
724 virtual int nextSuspendId();
735 virtual int spawningTaskId(
int subtaskId)
const;
737 virtual void addPendingSubtaskId(
const DtSymbolString& componentName,
int subtaskId);
738 virtual void addPendingSubtaskId(
const DtSymbolString& componentName,
int taskId,
int subtaskId);
739 virtual bool findPendingSubtaskId(
const DtSymbolString& componentName,
int subtaskId);
740 virtual bool isSubtasked(
const DtSymbolString& componentName)
const;
741 virtual bool findPendingSubtaskId(
const DtSymbolString& componentName,
int taskId,
int subtaskId);
742 virtual void removePendingSubtaskId(
const DtSymbolString& componentName,
int subtaskId);
743 virtual void removePendingSubtaskId(
const DtSymbolString& componentName,
int taskId,
int subtaskId);
744 virtual void removeAllPendingSubtaskIds(
const DtSymbolString& componentName);
745 virtual void removeAllPendingSubtaskIds(
const DtSymbolString& componentName,
int taskId);
746 virtual void printPendingSubtaskIds(
const DtSymbolString& componentName)
const;
747 virtual std::vector<int> currentPendingSubstaskIds(
const DtSymbolString& componentName)
const;
748 virtual std::vector<int> currentPendingSubstaskIds(
const DtSymbolString& componentName,
int taskId)
const;
760 virtual bool taskedBySuperiorUponTaskComplete()
const;
762 virtual void setParentWasDestroyedWhenEmbarked(
bool);
763 virtual bool parentWasDestroyedWhenEmbarked()
const;
776 virtual void addAttachedTerrain(
const DtUUID& parent);
780 virtual void removeAttachedTerrain(
const DtUUID& parent);
784 Dt3dBoundingVolume* boundingVolume()
const;
789 DtVector localBoundingVolumeCenterPosition()
const;
796 DtReal currentSpeed()
const;
803 DtReal forwardSpeed()
const;
807 DtReal currentHeading()
const;
808 void setCurrentHeading(
const DtReal heading);
821 virtual void restoreStateProperties();
824 virtual void initStatePropertiesNotToBeRestored();
842 virtual void initializeNextTaskId();
854 const DtString& rwName = DtString::nullString());
861 virtual void removeRangeItem(
int index);
865 virtual void clearRangeItems();
870 virtual boost::tribool onTerrainSurface()
const;
876 virtual double sensorSignature(
const DtSymbolString& sensorDomain)
const;
880 virtual std::list<DtSymbolString> sensorSignatureDomains()
const;
900 virtual double baseSensorSignature(
const DtSymbolString& sensorDomain)
const;
905 virtual double modifySensorSignature(
const DtSymbolString& sensorDomain,
906 double baseSignature)
const;
910 virtual bool initSignatureEvaluators();
914 void clearSignatureEvaluators();
917 virtual bool createObjectResourceManager();
920 virtual void invokePostInitFromParamsCallbacks();
946 static bool visibilityFilter(
const DtVrfObject *
object,
void * usr);