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"
100 const DtString& rwName = DtString::nullString(),
105 const DtString& rwName = DtString::nullString(),
117 const DtString& rwName = DtString::nullString(),
126 virtual const int vrfObjectStateRepositorySubType()
const;
130 virtual bool createParameters();
131 virtual void initializeFromParameters();
136 virtual void setConcealed(
bool);
139 virtual void setJoystickMovementControlled(
bool);
140 virtual bool joystickMovementControlled()
const;
150 virtual void restoreEntity();
157 virtual void clearExtendedData();
158 virtual void removeExtendedData(
const DtString& key);
162 return myExtendedData;
164 virtual void setExtendedDataMap(
const ExtendedData&);
165 virtual void setExtendedDataMap(
const std::map<std::string, std::string>&);
168 virtual void setupExtendedDataFromParameterData();
174 virtual void setExtendedLabel(
int,
const DtString& value);
175 virtual void clearExtendedLabels();
176 virtual DtString extendedLabel(
int index)
const;
177 virtual ExtendedLabels extendedLabels()
const;
178 virtual void setExtendedLabels(
const ExtendedLabels&);
184 virtual const JoystickControls& joystickControls()
const;
189 virtual void setActivity(
const DtString&);
231 virtual void restoreResourcesFromParameters();
236 virtual void setSOR(DtReal center, DtReal
size);
238 virtual DtReal SORSize()
const;
239 virtual DtReal SORCenter()
const;
246 virtual bool inSOR(
const DtVrfObject* entity)
const;
248 virtual const DtString& engagementRules()
const;
249 virtual void setEngagementRules(
const DtString& engagementRules);
253 virtual void setRequestTaskNeeded(
bool value);
254 virtual bool requestTaskNeeded()
const;
259 virtual void setTasked(
const DtSymbolString& componentName,
bool tasked);
260 virtual void setTasked(
const DtSymbolString& componentName,
int taskID,
bool tasked);
266 virtual bool isTasked()
const;
269 virtual void clearCurrentTaskMsg(
const DtSymbolString& componentName);
272 virtual void clearCurrentTaskMsg(
const DtSymbolString& componentName,
int taskId);
276 virtual void setCurrentTaskMsg(
const DtSymbolString& componentName,
279 virtual void setCurrentTaskMsg(
const DtSymbolString& componentName,
296 virtual std::list<DtTaskMessage*> allCurrentTaskMsg(
const DtSymbolString& componentName)
const;
299 static bool shouldArchiveExtendedAttribute(
const DtString&);
300 static void doNotArchiveAttribute(
const DtString&,
bool);
302 virtual void putSelf(std::string& fp,
304 bool writeUnspecified =
false,
320 std::vector<DtGroundInteractionPt*> groundInteractionPts,
321 bool* terrainDataAvailable = 0);
326 virtual void updateSupportPoints(
const DtVector& newPosition,
327 const DtReal newHeading);
332 virtual void setIndependentlyTasked(
bool value);
333 virtual bool independentlyTasked()
const;
350 static void addSimObjectStateRepositoryCreatorFcn(
const DtString & type,
376 virtual void setupParameterInheritance();
381 virtual DtForceType forceType()
const;
382 virtual void setForceType(DtForceType force);
394 DtArtPartType childType);
400 virtual bool createAppearance();
401 virtual const DtAppearance* appearance()
const;
402 virtual DtAppearance* appearance();
409 virtual void setCapabilities(
int cap);
410 virtual int capabilities()
const;
416 void setDestroyed(
bool isDestroyed);
417 bool isDestroyed()
const;
422 virtual void setInvisible(
bool);
423 virtual bool invisible()
const;
426 virtual void setInvulnerable(
bool);
427 virtual bool invulnerable()
const;
431 virtual void setInvisibleSetByUser(
bool);
432 virtual bool invisibleSetByUser()
const;
442 DtReal healthPct()
const;
443 void setHealthPct(DtReal pct);
449 bool firePowerKilled()
const;
450 void setFirePowerKilled(
const bool firePowerKilled);
452 bool mobilityKilled()
const;
453 void setMobilityKilled(
const bool mobilityKilled);
455 bool flaming()
const;
456 void setFlaming(
const bool flaming);
458 bool smoking()
const;
459 void setSmoking(
const bool smoking);
465 bool isEntity()
const;
471 bool isLocal()
const;
477 bool isAggregate()
const;
491 void addSubordinate(
DtVrfObject* subordinateEntity);
494 void removeSubordinate(
DtVrfObject* subordinateEntity);
530 virtual void timedTick();
534 virtual void setMinTickPeriod(
double minTickPeriod);
537 virtual double minTickPeriod()
const;
540 virtual void setMinTickPeriodVariance(
double minTickPeriodVariance);
543 virtual double minTickPeriodVariance()
const;
548 virtual void setNextTickTime(
double nextTickTime);
551 virtual double nextTickTime()
const;
558 virtual double calculateNextTickTime()
const;
560 virtual bool createSubordinates();
564 virtual bool createProcessStateRepositoryManager();
571 systemProcessStateRepositoryManager()
const;
577 virtual const DtTaitBryan& localOrientationWrtDatabase()
const;
578 virtual void setLocalOrientationWrtDatabase(
579 const DtTaitBryan& localOrientation);
591 virtual void processObjectGeometry(
const DtList& vertices);
600 virtual void processObjectGeometry();
607 virtual const DtVector& getPartAttachPoint(
const int partType)
const;
623 virtual void place(
const DtVector& location,
bool* dataAvailable = 0,
624 bool requireAllData =
false);
640 virtual void place(
const DtReal heading,
bool* dataAvailable = 0,
641 bool requireAllData =
false);
655 virtual void place(
const DtVector& location,
const DtReal heading,
656 bool clampToGroundFlag =
true,
bool* dataAvailable = 0,
657 bool requireAllData =
false);
665 virtual DtReal mass()
const;
666 virtual void setMass(
const DtReal mass);
669 virtual const DtArticulatedPartCollection* artPartList()
const;
674 virtual void createParts();
676 virtual DtTime lastTimeFiredUpon()
const;
677 virtual void setLastTimeFiredUpon(
const DtTime time);
679 virtual bool underFire()
const;
680 virtual void setUnderFire(
bool underFire);
692 virtual suppressionLevels suppressionLevel()
const;
693 virtual void setSuppressionLevel(
const suppressionLevels l);
694 virtual bool isSuppressed()
const;
697 virtual DtDeadReckonTypes deadReckoningAlgorithm()
const;
698 virtual void setDeadReckoningAlgorithm(
699 DtDeadReckonTypes deadReckoningAlgorithm);
703 virtual const DtThresholder& deadReckoningThresholder()
const;
704 virtual void setDeadReckoningThresholder(
705 const DtThresholder& thresholder);
711 virtual const DtEntityIdentifier & occupyingObjectId()
const;
712 virtual void setOccupyingObjectId(
const DtEntityIdentifier & objId);
718 virtual void setEchelonId(
const DtEchelonId& echelonId);
725 virtual void setIsSubordinateOfForceLevel(
bool yesNo);
726 virtual bool isSubordinateOfForceLevel()
const;
731 virtual void putData(std::string& fp,
int indentLevel = 0);
741 virtual int nextTaskId();
744 virtual int nextSuspendId();
755 virtual int spawningTaskId(
int subtaskId)
const;
757 virtual void addPendingSubtaskId(
const DtSymbolString& componentName,
int subtaskId);
758 virtual void addPendingSubtaskId(
const DtSymbolString& componentName,
int taskId,
int subtaskId);
759 virtual bool findPendingSubtaskId(
const DtSymbolString& componentName,
int subtaskId);
760 virtual bool isSubtasked(
const DtSymbolString& componentName)
const;
761 virtual bool findPendingSubtaskId(
const DtSymbolString& componentName,
int taskId,
int subtaskId);
762 virtual void removePendingSubtaskId(
const DtSymbolString& componentName,
int subtaskId);
763 virtual void removePendingSubtaskId(
const DtSymbolString& componentName,
int taskId,
int subtaskId);
764 virtual void removeAllPendingSubtaskIds(
const DtSymbolString& componentName);
765 virtual void removeAllPendingSubtaskIds(
const DtSymbolString& componentName,
int taskId);
766 virtual void removeInactiveSubtaskStatus(
const DtSymbolString& componentName);
767 virtual void removeInactiveSubtaskStatus(
const DtSymbolString& componentName,
int taskId);
768 virtual void printPendingSubtaskIds(
const DtSymbolString& componentName)
const;
769 virtual std::vector<int> currentPendingSubstaskIds(
const DtSymbolString& componentName)
const;
770 virtual std::vector<int> currentPendingSubstaskIds(
const DtSymbolString& componentName,
int taskId)
const;
782 virtual bool taskedBySuperiorUponTaskComplete()
const;
784 virtual void setParentWasDestroyedWhenEmbarked(
bool);
785 virtual bool parentWasDestroyedWhenEmbarked()
const;
798 virtual void addAttachedTerrain(
const DtUUID& parent);
802 virtual void removeAttachedTerrain(
const DtUUID& parent);
806 Dt3dBoundingVolume* boundingVolume()
const;
811 DtVector localBoundingVolumeCenterPosition()
const;
818 DtReal currentSpeed()
const;
825 DtReal forwardSpeed()
const;
829 DtReal currentHeading()
const;
830 void setCurrentHeading(
const DtReal heading);
843 virtual void restoreStateProperties();
846 virtual void initStatePropertiesNotToBeRestored();
864 virtual void initializeNextTaskId();
876 const DtString& rwName = DtString::nullString());
883 virtual void removeRangeItem(
int index);
887 virtual void clearRangeItems();
892 virtual boost::tribool onTerrainSurface()
const;
898 virtual double sensorSignature(
const DtSymbolString& sensorDomain)
const;
902 virtual std::list<DtSymbolString> sensorSignatureDomains()
const;
920 virtual std::map<DtString, DtString> unarchivedData()
const;
923 virtual void appendExtendedData(
const std::map<DtString, DtString>&);
928 virtual double baseSensorSignature(
const DtSymbolString& sensorDomain)
const;
933 virtual double modifySensorSignature(
const DtSymbolString& sensorDomain,
934 double baseSignature)
const;
938 virtual bool initSignatureEvaluators();
942 void clearSignatureEvaluators();
945 virtual bool createObjectResourceManager();
948 virtual void invokePostInitFromParamsCallbacks();
974 static bool visibilityFilter(
const DtVrfObject *
object,
void * usr);