Пример #1
0
    /**
     * Inserts the dbgPosIndex's value in trackLDMIO into locDataManager, changes slider,
     * globeDisplayAdapter and increments dbgPosIndex
     *
     * @return if the current step was the last currently available
     */
    private boolean debugStep() {
      if (dbgPosIndex == trackLDMIO.getAllGpsPoints().size()) return true;

      GpsPoint newp = trackLDMIO.getAllGpsPoints().get(dbgPosIndex);

      locDataManager.addPoint(newp);
      slider.setValue(dbgPosIndex);
      globeDisplayAdapter.addPosition(translateToGlobePosition(newp));

      try {
        Marker newm = trackLDMIO.getAllMarkers().get(dbgMarkerIndex);

        if (newm.time <= newp.time) {
          try {
            Marker newmarker = locDataManager.addMarker(newm.imgpoint, newm.time);
            globeDisplayAdapter.addMarker(translateToGlobePosition(newmarker.realpoint));
            mapDisplayAdapter.addMarker(translateToImagePosition(newmarker.imgpoint));
            dbgMarkerIndex++;
          } catch (NoGpsDataAvailableException | PointNotInImageBoundsException e) {
            e.printStackTrace();
          }
        }
      } catch (IndexOutOfBoundsException e) {
        System.err.println("debugStep called but last marker was already read");
      }

      dbgPosIndex++;

      return false;
    }