コード例 #1
0
  public List<HoldingResult> OneOnOneRepassRun(FWL lane1, FWL lane2, Patterns Shape, int ScanStep) {
    List<HoldingResult> HS = Collections.synchronizedList(new ArrayList<HoldingResult>());
    Discretization dis1 = new Discretization();
    MinAndMax templane1 = new MinAndMax();
    MinAndMax templane2 = new MinAndMax();
    SetOfPatternsForALane patternslane1 = new SetOfPatternsForALane();
    SetOfPatternsForALane patternslane2 = new SetOfPatternsForALane();
    Patterns nesto = patternslane2.PatternsForOneLane(Shape, lane2);
    float test = templane1.TheXminOfAllPatterns(patternslane1.PatternsForOneLane(Shape, lane1));
    int X2min =
        (int)
            (templane2.TheXminOfAllPatterns(patternslane2.PatternsForOneLane(Shape, lane2))
                - lane2.getStart());
    int X2max = (int) (templane2.TheXmaxOfAllPatterns(nesto) - lane2.getStart());
    int Y2min =
        (int) (templane2.TheYminOfAllPatterns(patternslane2.PatternsForOneLane(Shape, lane2)));
    int Y2max =
        (int) (templane2.TheYmaxOfAllPatterns(patternslane2.PatternsForOneLane(Shape, lane2)));
    int X1min =
        (int)
            (templane1.TheXminOfAllPatterns(patternslane1.PatternsForOneLane(Shape, lane1))
                - lane1.getStart());
    int X1max =
        (int)
            (templane1.TheXmaxOfAllPatterns(patternslane1.PatternsForOneLane(Shape, lane1))
                - lane1.getStart());
    int Y1min =
        (int) (templane1.TheYminOfAllPatterns(patternslane1.PatternsForOneLane(Shape, lane1)));
    int Y1max =
        (int) (templane1.TheYmaxOfAllPatterns(patternslane1.PatternsForOneLane(Shape, lane1)));
    int[][] matrixdis2 = dis1.DiscretizationOfLane(lane2, Shape);
    int[][] matrixdis1 = dis1.DiscretizationOfLaneAddingScanStep(lane1, Shape, ScanStep);

    ThreadHoldingConstraint11 thc11 = new ThreadHoldingConstraint11(HS);
    ThreadHoldingConstraint21 thc21 = new ThreadHoldingConstraint21(HS);
    ThreadHoldingConstraint31 thc31 = new ThreadHoldingConstraint31(HS);
    ThreadHoldingConstraint41 thc41 = new ThreadHoldingConstraint41(HS);
    ThreadHoldingConstraint51 thc51 = new ThreadHoldingConstraint51(HS);
    ThreadHoldingConstraint61 thc61 = new ThreadHoldingConstraint61(HS);
    ThreadHoldingConstraint71 thc71 = new ThreadHoldingConstraint71(HS);
    ThreadHoldingConstraint81 thc81 = new ThreadHoldingConstraint81(HS);
    // sada moram da napravim nove bez embedinga
    if (X1min - ScanStep < 0) X1min = 0;
    else X1min = X1min - ScanStep;
    if (X1max + ScanStep > lane1.getWidth() - 1) X1max = (int) lane1.getWidth() - 1;
    else X1max = X1max + ScanStep;
    if (Y1min - ScanStep < 0) Y1min = 0;
    else Y1min = Y1min - ScanStep;
    if (Y1max + ScanStep > lane1.getLength() - 1) Y1max = (int) lane1.getLength() - 1;
    else Y1max = Y1max + ScanStep;
    thc11.setDiscreteLane1(matrixdis1);
    thc11.setDiscreteLane2(matrixdis2);
    thc11.setX1min(X1min);
    thc11.setX1max(X1max);
    thc11.setX2min(X2min);
    thc11.setX2max(X2max);
    thc11.setY1min(Y1min);
    thc11.setY1max(Y1max);
    thc11.setY2min(Y2min);
    thc11.setY2max(Y2max);
    thc11.setN1((int) lane1.getWidth());
    thc11.setN2((int) lane2.getWidth());
    thc11.setM((int) lane1.getLength());
    thc11.setScanStep(ScanStep);

    thc21.setDiscreteLane1(matrixdis1);
    thc21.setDiscreteLane2(matrixdis2);
    thc21.setX1min(X1min);
    thc21.setX1max(X1max);
    thc21.setX2min(X2min);
    thc21.setX2max(X2max);
    thc21.setY1min(Y1min);
    thc21.setY1max(Y1max);
    thc21.setY2min(Y2min);
    thc21.setY2max(Y2max);
    thc21.setN1((int) lane1.getWidth());
    thc21.setN2((int) lane2.getWidth());
    thc21.setM((int) lane1.getLength());
    thc21.setScanStep(ScanStep);

    thc31.setDiscreteLane1(matrixdis1);
    thc31.setDiscreteLane2(matrixdis2);
    thc31.setX1min(X1min);
    thc31.setX1max(X1max);
    thc31.setX2min(X2min);
    thc31.setX2max(X2max);
    thc31.setY1min(Y1min);
    thc31.setY1max(Y1max);
    thc31.setY2min(Y2min);
    thc31.setY2max(Y2max);
    thc31.setN1((int) lane1.getWidth());
    thc31.setN2((int) lane2.getWidth());
    thc31.setM((int) lane1.getLength());
    thc31.setScanStep(ScanStep);

    thc41.setDiscreteLane1(matrixdis1);
    thc41.setDiscreteLane2(matrixdis2);
    thc41.setX1min(X1min);
    thc41.setX1max(X1max);
    thc41.setX2min(X2min);
    thc41.setX2max(X2max);
    thc41.setY1min(Y1min);
    thc41.setY1max(Y1max);
    thc41.setY2min(Y2min);
    thc41.setY2max(Y2max);
    thc41.setN1((int) lane1.getWidth());
    thc41.setN2((int) lane2.getWidth());
    thc41.setM((int) lane1.getLength());
    thc41.setScanStep(ScanStep);

    thc51.setDiscreteLane1(matrixdis1);
    thc51.setDiscreteLane2(matrixdis2);
    thc51.setX1min(X1min);
    thc51.setX1max(X1max);
    thc51.setX2min(X2min);
    thc51.setX2max(X2max);
    thc51.setY1min(Y1min);
    thc51.setY1max(Y1max);
    thc51.setY2min(Y2min);
    thc51.setY2max(Y2max);
    thc51.setN1((int) lane1.getWidth());
    thc51.setN2((int) lane2.getWidth());
    thc51.setM((int) lane1.getLength());
    thc51.setScanStep(ScanStep);

    thc61.setDiscreteLane1(matrixdis1);
    thc61.setDiscreteLane2(matrixdis2);
    thc61.setX1min(X1min);
    thc61.setX1max(X1max);
    thc61.setX2min(X2min);
    thc61.setX2max(X2max);
    thc61.setY1min(Y1min);
    thc61.setY1max(Y1max);
    thc61.setY2min(Y2min);
    thc61.setY2max(Y2max);
    thc61.setN1((int) lane1.getWidth());
    thc61.setN2((int) lane2.getWidth());
    thc61.setM((int) lane1.getLength());
    thc61.setScanStep(ScanStep);

    thc71.setDiscreteLane1(matrixdis1);
    thc71.setDiscreteLane2(matrixdis2);
    thc71.setX1min(X1min);
    thc71.setX1max(X1max);
    thc71.setX2min(X2min);
    thc71.setX2max(X2max);
    thc71.setY1min(Y1min);
    thc71.setY1max(Y1max);
    thc71.setY2min(Y2min);
    thc71.setY2max(Y2max);
    thc71.setN1((int) lane1.getWidth());
    thc71.setN2((int) lane2.getWidth());
    thc71.setM((int) lane1.getLength());
    thc71.setScanStep(ScanStep);

    thc81.setDiscreteLane1(matrixdis1);
    thc81.setDiscreteLane2(matrixdis2);
    thc81.setX1min(X1min);
    thc81.setX1max(X1max);
    thc81.setX2min(X2min);
    thc81.setX2max(X2max);
    thc81.setY1min(Y1min);
    thc81.setY1max(Y1max);
    thc81.setY2min(Y2min);
    thc81.setY2max(Y2max);
    thc81.setN1((int) lane1.getWidth());
    thc81.setN2((int) lane2.getWidth());
    thc81.setM((int) lane1.getLength());
    thc81.setScanStep(ScanStep);

    thc11.start();
    thc21.start();
    thc31.start();
    thc41.start();
    thc51.start();
    thc61.start();
    thc71.start();
    thc81.start();
    // uniting results
    return HS;
  }