#include <vlutil/vlPrint.h>
#include <vlpi/disEnums.h>
#include <vrfExtProtocol/objTypeEnums.h>
#include <matrix/3dBoundingVolume.h>
#include "vrfobjparam/targetSelectionControllerDesc.h"
#include <matrix/LibMatrix.h>
#include "vrfobjparam/pathMoveDesc.h"
{
}
{
}
{
"ground-vehicle-param");
DtObjectTypeIndividual,
DtPlatform,
DtPlatformDomainLand,
-1,
DtTank,
1,
3,
-1);
return parameters;
}
{
Dt3dBoundingVolume boundingVolume(4.0, 1.8, 1.44, 0.0, 0.0, -1.44);
}
{
sensorDescriptorList());
controllerDescriptorList());
actuatorDescriptorList());
connectionList.addConnection("joystick:automotive-control",
"powertrain:automotive-control");
connectionList.addConnection("collision-avoidance:automotive-control",
"powertrain:automotive-control");
connectionList.addConnection("move-to:automotive-control",
"powertrain:automotive-control");
connectionList.addConnection("move-to-location:automotive-control",
"powertrain:automotive-control");
connectionList.addConnection("move-along:automotive-control",
"powertrain:automotive-control");
connectionList.addConnection("patrol-route:automotive-control",
"powertrain:automotive-control");
connectionList.addConnection("patrol-between:automotive-control",
"powertrain:automotive-control");
connectionList.addConnection("follow-entity:automotive-control",
"powertrain:automotive-control");
connectionList.addConnection("turn-to-heading:automotive-control",
"powertrain:automotive-control");
connectionList.addConnection("stop-moving:automotive-control",
"powertrain:automotive-control");
connectionList.addConnection("main-gun-control-joy:gun-control",
"main-gun-joy:gun-control");
connectionList.addConnection("target-selection:main-gun",
"turret-acquire:target-list");
connectionList.addConnection("turret-joystick:slew", "turret:slew");
connectionList.addConnection("turret-acquire:slew", "turret:slew");
connectionList.addConnection("turret-acquire:line-of-sight",
"main-gun-control-joy:line-of-sight");
connectionList.addConnection("turret-scan:slew", "turret:slew");
}
{
DtSymbolString("under-fire-determination-sensor"));
underFireDeterminationDesc.setComponentType("under-fire-determination-sensor");
}
{
organziationControllerDescriptor.setComponentType("organization-controller");
setDataControllerDescriptor.setComponentType("local-entity-set-controller");
joystickControllerDescriptor("joystick");
joystickControllerDescriptor.setComponentType("ground-move-joystick-controller");
turretControllerDescriptor("turret-joystick");
turretControllerDescriptor.setComponentType("ground-turret-joystick-controller");
waitControllerDescriptor.setComponentType("wait-controller");
groundCollisionAvoidDesc.setComponentType("ground-auto-collision-controller");
moveToControllerDescriptor.setComponentType("ground-auto-move-to-controller");
moveToLocationControllerDescriptor.setComponentType("ground-auto-move-to-location-controller");
moveAlongControllerDescriptor.setComponentType("ground-auto-move-along-controller");
patrolRouteControllerDescriptor.setComponentType("ground-auto-patrol-route-controller");
patrolBetweenControllerDescriptor.setComponentType("ground-auto-patrol-between-controller");
followControllerDescriptor.setComponentType("ground-auto-follow-entity-controller");
followControllerDescriptor.setApproachSpeed(2.0);
followControllerDescriptor.setAtDistance(2.0);
followControllerDescriptor.setFarCatchUpFactor(1.25);
followControllerDescriptor.setPassedSlowDownFactor(0.9);
turnToHeadingControllerDescriptor.setComponentType("ground-auto-turn-to-heading-controller");
stopMovingControllerDescriptor.setComponentType("ground-stop-moving-controller");
DtPathMovementControllerDescriptor pathMovementControllerDescriptor("path-movement");
pathMovementControllerDescriptor.setComponentType("path-movement-controller");
"turret-acquire");
turretAcquireControllerDescriptor.setComponentType("turret-acquire-controller");
turretAcquireControllerDescriptor.setCheckLOS(true);
turretAcquireControllerDescriptor.setFireNowTimeout(10);
"turret-scan");
turretScanControllerDescriptor.setComponentType("turret-scan-controller");
turretScanControllerDescriptor.setScanRate(0.3);
"main-gun-control-joy");
ballisticGunControllerDescriptor.setComponentType("ballistic-gun-controller");
ballisticGunControllerDescriptor.setLoadAmmoTime(2.0);
ballisticGunControllerDescriptor.setUnloadAmmoTime(2.0);
ammoSelectEntry.
setTargetType(DtEntityType(1, 1, -1, -1, -1, -1, -1));
munition1.setMunitionType(DtEntityType(2, 2, 225, 2, 13, 3, 0));
munition1.setWarhead(0);
munition2.setMunitionType(DtEntityType(2, 2, 225, 2, 13, 2, 0));
munition2.setWarhead(0);
munitionList.addSimMunition(munition2);
ballisticGunControllerDescriptor.setAmmoSelectTable(ammoSelectTable);
DtTargetSelectionControllerDescriptor targetSelectionControllerDescriptor(
"target-selection");
targetSelectionControllerDescriptor.setComponentType(
"target-selection-controller");
DtEntityType trackedVehicles("1:1:-1:1:-1:-1:-1");
entry1.setEntityType(trackedVehicles);
entry1.setPriority(1);
DtEntityType allGroundVehicles("1:1:-1:-1:-1:-1:-1");
entry2.setEntityType(allGroundVehicles);
entry2.setPriority(2);
targetSelectionControllerDescriptor.targetSelectionCriteriaList().
add(mainGunCriteria);
}
{
autoActuatorDescriptor.setComponentType("automotive-actuator");
turretAcutatorDescriptor.setComponentType("turret-actuator");
artPartDescriptor.setPartType(DtPrimaryTurret1);
artPartDescriptor.setParentPartType(DtEntityBase);
artPartDescriptor.setAttachPoint(
DtVector(0.2, 0.0, -2.0));
artPartDescriptor.setParamList(paramList);
artPartDescriptorList.addArtPartDescriptor(artPartDescriptor);
turretAcutatorDescriptor.setArtPartDescriptorList(artPartDescriptorList);
ballisticGunActuatorDescriptor.setComponentType("ballistic-gun-joystick-actuator");
artPartDescriptor1.setPartType(DtPrimaryGun1);
artPartDescriptor1.setParentPartType(DtPrimaryTurret1);
artPartDescriptor1.setAttachPoint(
DtVector(2.331, -0.125, 0.418));
artPartDescriptor1.setParamList(paramList1);
artPartDescriptorList1.addArtPartDescriptor(artPartDescriptor1);
ballisticGunActuatorDescriptor.setArtPartDescriptorList(artPartDescriptorList1);
ballisticGunActuatorDescriptor.setElevationRate(0.3);
ballisticGunActuatorDescriptor.setMaxElevationRange(50.0);
ballisticGunActuatorDescriptor.setMuzzleSpeed(1000.0);
ballisticGunActuatorDescriptor.setMuzzleOffset(
DtVector(6.0, 0.0, 0.0));
rangeEntry.setEntityType(DtEntityType(1, 1, -1, -1, -1, -1, -1));
rangeEntry.addTableEntry(rangeTableEntry1);
rangeEntry.addTableEntry(rangeTableEntry2);
rangeEntry.addTableEntry(rangeTableEntry3);
rangeEntry.addTableEntry(rangeTableEntry4);
hitProbabilityTable.addDetectionProbabilityEntry(rangeEntry);
ballisticGunActuatorDescriptor.setHitProbabilityTable(hitProbabilityTable);
damageActuatorDescriptor.setComponentType("damage-adjudication-actuator");
damageActuatorDescriptor.setSmokeTime(1200.0);
damageActuatorDescriptor.setFlameTime(600.0);
double coefficientValues[] = {-5.0E-008, 0.0, 1.0};
damageActuatorDescriptor.setDamageModel(model);
}
{
detectionLevelDeterminatorParmeters.setDetectionLevelForForce(
LEVEL_IDENTIFIED);
table.addTableEntry(&entryA);
table.addTableEntry(&entryB);
detectionLevelDeterminatorParmeters.setSensorCombatIdentificationTable(table);
}
{
}
{
resourceManager.addResource(ammoResource);
resourceManager.addResource(fuelResource);
}
{
}