/** * 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; }