bool VehicleType::handleVariable(const std::string& objID, const int variable, VariableWrapper* wrapper) { switch (variable) { case TRACI_ID_LIST: return wrapper->wrapStringList(objID, variable, getIDList()); case ID_COUNT: return wrapper->wrapInt(objID, variable, getIDCount()); case VAR_LENGTH: return wrapper->wrapDouble(objID, variable, getLength(objID)); case VAR_HEIGHT: return wrapper->wrapDouble(objID, variable, getHeight(objID)); case VAR_MINGAP: return wrapper->wrapDouble(objID, variable, getMinGap(objID)); case VAR_MAXSPEED: return wrapper->wrapDouble(objID, variable, getMaxSpeed(objID)); case VAR_ACCEL: return wrapper->wrapDouble(objID, variable, getAccel(objID)); case VAR_DECEL: return wrapper->wrapDouble(objID, variable, getDecel(objID)); case VAR_EMERGENCY_DECEL: return wrapper->wrapDouble(objID, variable, getEmergencyDecel(objID)); case VAR_APPARENT_DECEL: return wrapper->wrapDouble(objID, variable, getApparentDecel(objID)); case VAR_ACTIONSTEPLENGTH: return wrapper->wrapDouble(objID, variable, getActionStepLength(objID)); case VAR_IMPERFECTION: return wrapper->wrapDouble(objID, variable, getImperfection(objID)); case VAR_TAU: return wrapper->wrapDouble(objID, variable, getTau(objID)); case VAR_SPEED_FACTOR: return wrapper->wrapDouble(objID, variable, getSpeedFactor(objID)); case VAR_SPEED_DEVIATION: return wrapper->wrapDouble(objID, variable, getSpeedDeviation(objID)); case VAR_VEHICLECLASS: return wrapper->wrapString(objID, variable, getVehicleClass(objID)); case VAR_EMISSIONCLASS: return wrapper->wrapString(objID, variable, getEmissionClass(objID)); case VAR_SHAPECLASS: return wrapper->wrapString(objID, variable, getShapeClass(objID)); case VAR_WIDTH: return wrapper->wrapDouble(objID, variable, getWidth(objID)); case VAR_COLOR: return wrapper->wrapColor(objID, variable, getColor(objID)); case VAR_MINGAP_LAT: return wrapper->wrapDouble(objID, variable, getMinGapLat(objID)); case VAR_MAXSPEED_LAT: return wrapper->wrapDouble(objID, variable, getMaxSpeedLat(objID)); case VAR_LATALIGNMENT: return wrapper->wrapString(objID, variable, getLateralAlignment(objID)); case VAR_PERSON_CAPACITY: return wrapper->wrapInt(objID, variable, getPersonCapacity(objID)); default: return false; } }
void initPaths2018(GameStrategyContext* gameStrategyContext, int index) { Navigation* navigation = gameStrategyContext->navigation; RobotConfig* robotConfig = gameStrategyContext->robotConfig; enum TeamColor teamColor = gameStrategyContext->color; float aFactor = getAccelerationFactor(robotConfig); float speedFactor = getSpeedFactor(robotConfig); startArea_to_switch_Path = addNavigationPathWithColor(teamColor, navigation, startAreaLocation, switchLocation, DEFAULT_NAVIGATION_COST, STARTAREA_TO_SWITCH_CP1, STARTAREA_TO_SWITCH_CP2, deciDegreeToRad(START_AREA_ANGLE_DECI_DEG), deciDegreeToRad(SWITCH_ANGLE_DECI_DEG), aFactor * STARTAREA_TO_SWITCH_ACCELERATION_FACTOR, speedFactor * STARTAREA_TO_SWITCH_SPEED_FACTOR); switch_to_distributor1_Path = addNavigationPathWithColor(teamColor, navigation, switchLocation, distributor1Location, DEFAULT_NAVIGATION_COST, SWITCH_TO_DISTRIBUTOR_1_CP1, SWITCH_TO_DISTRIBUTOR_1_CP2, deciDegreeToRad(SWITCH_ANGLE_DECI_DEG), deciDegreeToRad(DISTRIBUTOR_1_ANGLE_DECI_DEG), aFactor * SWITCH_TO_DISTRIBUTOR_1_ACCELERATION_FACTOR, speedFactor * SWITCH_TO_DISTRIBUTOR_1_SPEED_FACTOR); distributor1_to_beeBorderAlignY_Path = addNavigationPathWithColor(teamColor, navigation, distributor1Location, beeBorderAlignYLocation, DEFAULT_NAVIGATION_COST, DISTRIBUTOR_1_TO_BEE_BORDER_ALIGN_Y_CP1, DISTRIBUTOR_1_TO_BEE_BORDER_ALIGN_Y_CP2, deciDegreeToRad(DISTRIBUTOR_1_ANGLE_DECI_DEG), deciDegreeToRad(BEE_BORDER_Y_ALIGN_ANGLE_DECI_DEG), aFactor * DISTRIBUTOR_1_TO_BEE_BORDER_ALIGN_Y_COST_ACCELERATION_FACTOR, speedFactor * DISTRIBUTOR_1_TO_BEE_BORDER_ALIGN_Y_COST_SPEED_FACTOR); beeBorderAlignY_to_bee_Path = addNavigationPathWithColor(teamColor, navigation, beeBorderAlignYLocation, beeLocation, DEFAULT_NAVIGATION_COST, BEE_BORDER_ALIGN_Y_TO_BEE_CP1, BEE_BORDER_ALIGN_Y_TO_BEE_CP2, deciDegreeToRad(BEE_BORDER_Y_ALIGN_ANGLE_DECI_DEG), deciDegreeToRad(BEE_ANGLE_DECI_DEG), aFactor * BEE_BORDER_ALIGN_Y_TO_BEE_ACCELERATION_FACTOR, speedFactor * BEE_BORDER_ALIGN_Y_TO_BEE_SPEED_FACTOR); bee_to_distributor2Front_Path = addNavigationPathWithColor(teamColor, navigation, beeLocation, distributor2FrontLocation, DEFAULT_NAVIGATION_COST, BEE_TO_DISTRIBUTOR_2_FRONT_CP1, BEE_TO_DISTRIBUTOR_2_FRONT_CP2, deciDegreeToRad(BEE_ANGLE_DECI_DEG), deciDegreeToRad(DISTRIBUTOR_2_FRONT_ANGLE_DECI_DEG), aFactor * BEE_TO_DISTRIBUTOR_2_FRONT_ACCELERATION_FACTOR, speedFactor * BEE_TO_DISTRIBUTOR_2_FRONT_SPEED_FACTOR); distributor2Front_to_distributor2_Path = addNavigationPathWithColor(teamColor, navigation, distributor2FrontLocation, distributor2Location, DEFAULT_NAVIGATION_COST, DISTRIBUTOR_2_FRONT_TO_DISTRIBUTOR_2_CP1, DISTRIBUTOR_2_FRONT_TO_DISTRIBUTOR_2_CP2, deciDegreeToRad(DISTRIBUTOR_2_FRONT_ANGLE_DECI_DEG), deciDegreeToRad(DISTRIBUTOR_2_ANGLE_DECI_DEG), aFactor * DISTRIBUTOR_2_FRONT_TO_DISTRIBUTOR_2_ACCELERATION_FACTOR, speedFactor * DISTRIBUTOR_2_FRONT_TO_DISTRIBUTOR_2_SPEED_FACTOR); distributor2_to_garbageFront_Path = addNavigationPathWithColor(teamColor, navigation, distributor2Location, garbageFrontLocation, DEFAULT_NAVIGATION_COST, DISTRIBUTOR_2_TO_GARBAGE_FRONT_CP1, DISTRIBUTOR_2_TO_GARBAGE_FRONT_CP2, deciDegreeToRad(DISTRIBUTOR_2_ANGLE_DECI_DEG), deciDegreeToRad(GARGAGE_FRONT_POINT_ANGLE_DECI_DEG), aFactor * DISTRIBUTOR_2_TO_GARBAGE_FRONT_ACCELERATION_FACTOR, speedFactor * DISTRIBUTOR_2_TO_GARBAGE_FRONT_SPEED_FACTOR); garbageFront_to_garbageRelease_Path = addNavigationPathWithColor(teamColor, navigation, garbageFrontLocation, garbageReleaseLocation, DEFAULT_NAVIGATION_COST, GARBAGE_FRONT_TO_GARBAGE_RELEASE_CP1, GARBAGE_FRONT_TO_GARBAGE_RELEASE_CP2, deciDegreeToRad(GARGAGE_RELEASE_POINT_ANGLE_DECI_DEG), deciDegreeToRad(GARGAGE_RELEASE_POINT_ANGLE_DECI_DEG), GARBAGE_FRONT_TO_GARBAGE_RELEASE_ACCELERATION_FACTOR, GARBAGE_FRONT_TO_GARBAGE_RELEASE_SPEED_FACTOR); }
void Item::update(double deltaTime) { _position.y -= static_cast<float>(deltaTime * getSpeedFactor()); }