30 #include "tbb/concurrent_hash_map.h"
31 #include "tbb/mutex.h"
35 #include <vlpi/appearance.h>
36 #include <vlpi/artPartSpec.h>
37 #include <vlutil/vlString.h>
38 #include <vlpi/thresholder.h>
41 #include <vlutil/vlConfig.h>
45 #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();
137 virtual void setConcealed(
bool);
140 virtual void setJoystickMovementControlled(
bool);
141 virtual bool joystickMovementControlled()
const;
151 virtual void restoreEntity();
155 virtual void addRestoredCallback(
157 virtual void removeRestoredCallback(
159 virtual void invokeRestoredCallbacks();
164 virtual void updateCachedStateProperties();
171 virtual void clearExtendedData();
172 virtual void removeExtendedData(
const DtString& key);
176 return myExtendedData;
178 virtual void setExtendedDataMap(
const ExtendedData&);
179 virtual void setExtendedDataMap(
const std::map<std::string, std::string>&);
182 virtual void setupExtendedDataFromParameterData();
188 virtual void setExtendedLabel(
int,
const DtString& value);
189 virtual void clearExtendedLabels();
190 virtual DtString extendedLabel(
int index)
const;
191 virtual ExtendedLabels extendedLabels()
const;
192 virtual void setExtendedLabels(
const ExtendedLabels&);
198 virtual const JoystickControls& joystickControls()
const;
203 virtual void setActivity(
const DtString&);
247 virtual void setNavigationEnabled(
bool);
248 virtual bool navigationEnabled()
const;
254 virtual void restoreResourcesFromParameters();
259 virtual void setSOR(DtReal center, DtReal
size);
261 virtual DtReal SORSize()
const;
262 virtual DtReal SORCenter()
const;
276 virtual bool isContactHostile(
const DtVector& location,
int perceivedForce)
const;
280 virtual bool inSOR(
const DtVrfObject* entity)
const;
284 virtual bool canFireAt(
const DtVector& location)
const;
286 virtual const DtString& engagementRules()
const;
287 virtual void setEngagementRules(
const DtString& engagementRules);
291 virtual void setRequestTaskNeeded(
bool value);
292 virtual bool requestTaskNeeded()
const;
297 virtual void setTasked(
const DtSymbolString& componentName,
bool tasked);
298 virtual void setTasked(
const DtSymbolString& componentName,
int taskID,
bool tasked);
304 virtual bool isTasked()
const;
307 virtual void clearCurrentTaskMsg(
const DtSymbolString& componentName);
310 virtual void clearCurrentTaskMsg(
const DtSymbolString& componentName,
int taskId);
314 virtual void setCurrentTaskMsg(
const DtSymbolString& componentName,
317 virtual void setCurrentTaskMsg(
const DtSymbolString& componentName,
334 virtual std::list<DtTaskMessage*> allCurrentTaskMsg(
const DtSymbolString& componentName)
const;
337 static bool shouldArchiveExtendedAttribute(
const DtString&);
338 static void doNotArchiveAttribute(
const DtString&,
bool);
340 virtual void putSelf(std::string& fp,
342 bool writeUnspecified =
false,
358 std::vector<DtGroundInteractionPt*> groundInteractionPts,
359 bool* terrainDataAvailable = 0);
364 virtual void updateSupportPoints(
const DtVector& newPosition,
365 const DtReal newHeading);
370 virtual void setIndependentlyTasked(
bool value);
371 virtual bool independentlyTasked()
const;
388 static void addSimObjectStateRepositoryCreatorFcn(
const DtString & type,
414 virtual void setupParameterInheritance();
419 virtual DtForceType forceType()
const;
420 virtual void setForceType(DtForceType force);
432 DtArtPartType childType);
438 virtual bool createAppearance();
439 virtual const DtAppearance* appearance()
const;
440 virtual DtAppearance* appearance();
447 virtual void setCapabilities(
int cap);
448 virtual int capabilities()
const;
454 virtual void setDestroyed(
bool isDestroyed);
455 virtual bool isDestroyed()
const;
460 virtual void setInvisible(
bool);
461 virtual bool invisible()
const;
468 virtual void setOccupantsHidden(
bool v);
469 virtual bool occupantsHidden()
const;
473 virtual void setInvulnerable(
bool);
474 virtual bool invulnerable()
const;
478 virtual void setInvisibleSetByUser(
bool);
479 virtual bool invisibleSetByUser()
const;
489 DtReal healthPct()
const;
490 void setHealthPct(DtReal pct);
496 bool firePowerKilled()
const;
497 void setFirePowerKilled(
const bool firePowerKilled);
499 bool mobilityKilled()
const;
500 void setMobilityKilled(
const bool mobilityKilled);
502 bool flaming()
const;
503 void setFlaming(
const bool flaming);
505 bool smoking()
const;
506 void setSmoking(
const bool smoking);
510 bool sensorsKilled()
const;
511 void setSensorsKilled(
bool sensorsKilled);
516 bool isEntity()
const;
522 bool isLocal()
const;
528 bool isAggregate()
const;
542 void addSubordinate(
DtVrfObject* subordinateEntity);
545 void removeSubordinate(
DtVrfObject* subordinateEntity);
581 virtual void timedTick();
585 virtual void setMinTickPeriod(
double minTickPeriod);
588 virtual double minTickPeriod()
const;
591 virtual void setMinTickPeriodVariance(
double minTickPeriodVariance);
594 virtual double minTickPeriodVariance()
const;
599 virtual void setNextTickTime(
double nextTickTime);
602 virtual double nextTickTime()
const;
609 virtual double calculateNextTickTime()
const;
611 virtual bool createSubordinates();
615 virtual bool createProcessStateRepositoryManager();
622 systemProcessStateRepositoryManager()
const;
628 virtual const DtTaitBryan& localOrientationWrtDatabase()
const;
629 virtual void setLocalOrientationWrtDatabase(
630 const DtTaitBryan& localOrientation);
642 virtual void processObjectGeometry(
const DtList& vertices);
651 virtual void processObjectGeometry();
658 virtual const DtVector& getPartAttachPoint(
const int partType)
const;
674 virtual void place(
const DtVector& location,
bool* dataAvailable = 0,
675 bool requireAllData =
false);
691 virtual void place(
const DtReal heading,
bool* dataAvailable = 0,
692 bool requireAllData =
false);
706 virtual void place(
const DtVector& location,
const DtReal heading,
707 bool clampToGroundFlag =
true,
bool* dataAvailable = 0,
708 bool requireAllData =
false);
712 virtual void reclampToGround();
718 virtual DtReal mass()
const;
719 virtual void setMass(
const DtReal mass);
722 virtual const DtArticulatedPartCollection* artPartList()
const;
727 virtual void createParts();
729 virtual DtTime lastTimeFiredUpon()
const;
730 virtual void setLastTimeFiredUpon(
const DtTime time);
732 virtual bool underFire()
const;
733 virtual void setUnderFire(
bool underFire);
745 virtual suppressionLevels suppressionLevel()
const;
746 virtual void setSuppressionLevel(
const suppressionLevels l);
747 virtual bool isSuppressed()
const;
750 virtual DtDeadReckonTypes deadReckoningAlgorithm()
const;
751 virtual void setDeadReckoningAlgorithm(
752 DtDeadReckonTypes deadReckoningAlgorithm);
756 virtual const DtThresholder& deadReckoningThresholder()
const;
757 virtual void setDeadReckoningThresholder(
758 const DtThresholder& thresholder);
764 virtual const DtEntityIdentifier & occupyingObjectId()
const;
765 virtual void setOccupyingObjectId(
const DtEntityIdentifier & objId);
771 virtual void setEchelonId(
const DtEchelonId& echelonId);
778 virtual void setIsSubordinateOfForceLevel(
bool yesNo);
779 virtual bool isSubordinateOfForceLevel()
const;
784 virtual void putData(std::string& fp,
int indentLevel = 0);
794 virtual int nextTaskId();
797 virtual int nextSuspendId();
808 virtual int spawningTaskId(
int subtaskId)
const;
810 virtual void addPendingSubtaskId(
const DtSymbolString& componentName,
int subtaskId);
811 virtual void addPendingSubtaskId(
const DtSymbolString& componentName,
int taskId,
int subtaskId);
812 virtual bool findPendingSubtaskId(
const DtSymbolString& componentName,
int subtaskId);
813 virtual bool isSubtasked(
const DtSymbolString& componentName)
const;
814 virtual bool findPendingSubtaskId(
const DtSymbolString& componentName,
int taskId,
int subtaskId);
815 virtual void removePendingSubtaskId(
const DtSymbolString& componentName,
int subtaskId);
816 virtual void removePendingSubtaskId(
const DtSymbolString& componentName,
int taskId,
int subtaskId);
817 virtual void removeAllPendingSubtaskIds(
const DtSymbolString& componentName);
818 virtual void removeAllPendingSubtaskIds(
const DtSymbolString& componentName,
int taskId);
819 virtual void removeInactiveSubtaskStatus(
const DtSymbolString& componentName);
820 virtual void removeInactiveSubtaskStatus(
const DtSymbolString& componentName,
int taskId);
821 virtual void printPendingSubtaskIds(
const DtSymbolString& componentName)
const;
822 virtual std::vector<int> currentPendingSubstaskIds(
const DtSymbolString& componentName)
const;
823 virtual std::vector<int> currentPendingSubstaskIds(
const DtSymbolString& componentName,
int taskId)
const;
835 virtual bool taskedBySuperiorUponTaskComplete()
const;
837 virtual void setParentWasDestroyedWhenEmbarked(
bool);
838 virtual bool parentWasDestroyedWhenEmbarked()
const;
851 virtual void addAttachedTerrain(
const DtUUID& parent);
855 virtual void removeAttachedTerrain(
const DtUUID& parent);
859 Dt3dBoundingVolume* boundingVolume()
const;
864 DtVector localBoundingVolumeCenterPosition()
const;
871 DtReal currentSpeed()
const;
878 DtReal forwardSpeed()
const;
881 virtual double totalMass()
const;
885 DtReal currentHeading()
const;
886 void setCurrentHeading(
const DtReal heading);
905 virtual void restoreStateProperties();
908 virtual void initStatePropertiesNotToBeRestored();
926 virtual void initializeNextTaskId();
938 const DtString& rwName = DtString::nullString());
945 virtual void removeRangeItem(
int index);
949 virtual void clearRangeItems();
954 virtual boost::tribool onTerrainSurface()
const;
960 virtual double sensorSignature(
const DtSymbolString& sensorDomain)
const;
964 virtual std::list<DtSymbolString> sensorSignatureDomains()
const;
982 virtual std::map<DtString, DtString> unarchivedData()
const;
985 virtual void appendExtendedData(
const std::map<DtString, DtString>&);
990 virtual double baseSensorSignature(
const DtSymbolString& sensorDomain)
const;
995 virtual double modifySensorSignature(
const DtSymbolString& sensorDomain,
996 double baseSignature)
const;
1000 virtual bool initSignatureEvaluators();
1004 void clearSignatureEvaluators();
1007 virtual bool createObjectResourceManager();
1010 virtual void invokePostInitFromParamsCallbacks();
1036 static bool visibilityFilter(
const DtVrfObject *
object,
void * usr);