Пример #1
0
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;
    }
}
Пример #2
0
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);
}
Пример #3
0
 void Item::update(double deltaTime) {
     _position.y -= static_cast<float>(deltaTime * getSpeedFactor());
 }