/** * Get GCP coordinates for master and slave bands. * * @param masterGCPGroup The master GCPs. */ private void getMasterAndSlaveGCPCoordinates(final ProductNodeGroup<Placemark> masterGCPGroup) { masterGCPCoords = new float[2 * numValidGCPs]; slaveGCPCoords = new float[2 * numValidGCPs]; for (int i = 0; i < numValidGCPs; ++i) { final Placemark sPin = slaveGCPList.get(i); final PixelPos sGCPPos = sPin.getPixelPos(); //System.out.println("WARP: slave gcp[" + i + "] = " + "(" + sGCPPos.x + "," + sGCPPos.y + ")"); final Placemark mPin = masterGCPGroup.get(sPin.getName()); final PixelPos mGCPPos = mPin.getPixelPos(); //System.out.println("WARP: master gcp[" + i + "] = " + "(" + mGCPPos.x + "," + mGCPPos.y + ")"); final int j = 2 * i; masterGCPCoords[j] = (float) mGCPPos.x; masterGCPCoords[j + 1] = (float) mGCPPos.y; slaveGCPCoords[j] = (float) sGCPPos.x; slaveGCPCoords[j + 1] = (float) sGCPPos.y; } }
private void makePlacemarkNameUnique(Placemark newPlacemark) { if (makePlacemarkNameUnique0(newPlacemark, product)) { Dialogs.showWarning(MessageFormat.format("{0} has been renamed to ''{1}'',\n" + "because a {2} with the former name already exists.", StringUtils.firstLetterUp(placemarkDescriptor.getRoleLabel()), newPlacemark.getName(), placemarkDescriptor.getRoleLabel())); } }
private boolean makePlacemarkNameUnique0(Placemark placemark, Product targetProduct) { ProductNodeGroup<Placemark> placemarkGroup = getPlacemarkGroup(targetProduct); if (placemarkGroup.get(placemark.getName()) == placemark) { return false; } String name0 = placemark.getName(); String name = name0; String label0 = placemark.getLabel(); String label = label0; int id = 1; while (placemarkGroup.contains(name)) { if (placemarkGroup.get(name).getLabel().equals(label)) { label = label0 + "_" + id; } name = name0 + "_" + id; id++; } if (!name0.equals(name)) { placemark.setName(name); if (!label0.equals(label)) { placemark.setLabel(label); } return true; } return false; }
public static Color getPlacemarkColor(Placemark placemark, ProductSceneView view) { final String styleCss = placemark.getStyleCss(); if (styleCss.contains(DefaultFigureStyle.FILL_COLOR.getName())) { return DefaultFigureStyle.createFromCss(styleCss).getFillColor(); } final Figure[] figures = getFigures(view); for (Figure figure : figures) { if (figure instanceof SimpleFeaturePointFigure) { final SimpleFeature simpleFeature = ((SimpleFeaturePointFigure) figure).getSimpleFeature(); if (simpleFeature.getID().equals(placemark.getName())) { return figure.getNormalStyle().getFillColor(); } } } return Color.BLUE; }
@Override public void run() { //System.out.println("Running "+mPin.getName()); boolean getSlaveGCP = getCoarseSlaveGCPPosition(slaveBand1, slaveBand2, mGCPPixelPos, sGCPPixelPos); if (getSlaveGCP && complexCoregistration && applyFineRegistration) { if (inSAROptimized) { getSlaveGCP = getFineOffsets(slaveBand1, slaveBand2, mGCPPixelPos, sGCPPixelPos); } else { getSlaveGCP = getFineSlaveGCPPosition(slaveBand1, slaveBand2, mGCPPixelPos, sGCPPixelPos); } } if (getSlaveGCP) { final Placemark sPin = Placemark.createPointPlacemark( GcpDescriptor.getInstance(), mPin.getName(), mPin.getLabel(), mPin.getDescription(), sGCPPixelPos, mGCPGeoPos, tgtGeoCoding); addPlacemark(sPin); //System.out.println("final "+mPin.getName()+" = " + "(" + sGCPPixelPos.x + "," + sGCPPixelPos.y + ")"); //System.out.println(); } //else { //System.out.println("GCP(" + mPin.getName() + ") is invalid."); //} }
UndoablePlacemarkEditingStrategy(Product product, Placemark oldPlacemark, Placemark newPlacemark, PlacemarkDescriptor placemarkDescriptor) { this.product = product; this.oldPlacemark = oldPlacemark; this.newPlacemark = Placemark.createPointPlacemark(newPlacemark.getDescriptor(), newPlacemark.getName(), newPlacemark.getLabel(), newPlacemark.getDescription(), newPlacemark.getPixelPos(), newPlacemark.getGeoPos(), newPlacemark.getProduct().getSceneGeoCoding()); placemarkInView = newPlacemark; this.placemarkDescriptor = placemarkDescriptor; }
@Override public void redo() { placemarkInView.setName(newPlacemark.getName()); placemarkInView.setLabel(newPlacemark.getLabel()); placemarkInView.setDescription(newPlacemark.getDescription()); placemarkInView.setGeoPos(newPlacemark.getGeoPos()); placemarkInView.setStyleCss(newPlacemark.getStyleCss()); }
private Placemark createTransferrablePlacemark(Placemark placemark, Product product) { Placemark newPlacemark = Placemark.createPointPlacemark(placemark.getDescriptor(), placemark.getName(), placemark.getLabel(), placemark.getDescription(), placemark.getPixelPos(), placemark.getGeoPos(), product.getSceneGeoCoding()); newPlacemark.setStyleCss(placemark.getStyleCss()); return newPlacemark; }
@Override public void undo() { placemarkInView.setName(oldPlacemark.getName()); placemarkInView.setLabel(oldPlacemark.getLabel()); placemarkInView.setDescription(oldPlacemark.getDescription()); placemarkInView.setGeoPos(oldPlacemark.getGeoPos()); placemarkInView.setStyleCss(oldPlacemark.getStyleCss()); }
public Coordinate[] getCoordinates() { Coordinate[] coordinates = new Coordinate[coordinateTableModel.getRowCount()]; for (int i = 0; i < coordinateTableModel.getRowCount(); i++) { final Placemark placemark = coordinateTableModel.getPlacemarkAt(i); SimpleFeature feature = placemark.getFeature(); final Date dateTime = (Date) feature.getAttribute(Placemark.PROPERTY_NAME_DATETIME); final Coordinate.OriginalValue[] originalValues = PixExOp.getOriginalValues(feature); if (placemark.getGeoPos() == null) { final Point point = (Point) feature.getDefaultGeometry(); coordinates[i] = new Coordinate(placemark.getName(), point.getY(), point.getX(), dateTime, originalValues); } else { coordinates[i] = new Coordinate(placemark.getName(), placemark.getGeoPos().getLat(), placemark.getGeoPos().getLon(), dateTime, originalValues); } } return coordinates; }
final Placemark mPin = masterGCPGroup.get(sPin.getName()); final PixelPos mGCPPos = mPin.getPixelPos();
@Override protected Object getStandardColumnValueAt(int rowIndex, int columnIndex) { switch (columnIndex) { case 0: return getPlacemarkAt(rowIndex).getName(); case 1: if (placemarkHasGeoPos(rowIndex)) { return getPlacemarkAt(rowIndex).getGeoPos().getLat(); } return ((Point) getPlacemarkAt(rowIndex).getFeature().getDefaultGeometry()).getY(); case 2: if (placemarkHasGeoPos(rowIndex)) { return getPlacemarkAt(rowIndex).getGeoPos().getLon(); } return ((Point) getPlacemarkAt(rowIndex).getFeature().getDefaultGeometry()).getX(); case 3: return getPlacemarkAt(rowIndex).getFeature().getAttribute(Placemark.PROPERTY_NAME_DATETIME); default: throw new IllegalArgumentException(String.format("Invalid columnIndex = %d", columnIndex)); } }
void editActivePin() { Guardian.assertNotNull("product", product); Placemark activePlacemark = getSelectedPlacemark(); Placemark originalPlacemark = Placemark.createPointPlacemark(activePlacemark.getDescriptor(), activePlacemark.getName(), activePlacemark.getLabel(), activePlacemark.getDescription(), activePlacemark.getPixelPos(), activePlacemark.getGeoPos(), activePlacemark.getProduct().getSceneGeoCoding()); Guardian.assertNotNull("activePlacemark", activePlacemark); if (PlacemarkDialog.showEditPlacemarkDialog(SwingUtilities.getWindowAncestor(this), product, activePlacemark, placemarkDescriptor)) { makePlacemarkNameUnique(activePlacemark); UndoRedo.Manager undoManager = SnapApp.getDefault().getUndoManager(product); if (undoManager != null) { undoManager.addEdit(UndoablePlacemarkActionFactory.createUndoablePlacemarkEditing(product, originalPlacemark, activePlacemark, placemarkDescriptor)); } updateUIState(); } }
existingPlacemark.setName(placemark.getName()); existingPlacemark.setLabel(placemark.getLabel()); existingPlacemark.setDescription(placemark.getDescription());
private void addSlaveGCPs(final PolynomialModel warpData, final String bandName) { final GeoCoding targetGeoCoding = targetProduct.getSceneGeoCoding(); final String newName = excludeMaster ? StackUtils.getBandNameWithoutDate(bandName) : bandName; final ProductNodeGroup<Placemark> targetGCPGroup = GCPManager.instance().getGcpGroup(targetProduct.getBand(newName)); targetGCPGroup.removeAll(); final List<Placemark> slaveGCPList = warpData.getSlaveGCPList(); for (final Placemark sPin : slaveGCPList) { final Placemark tPin = Placemark.createPointPlacemark(GcpDescriptor.getInstance(), sPin.getName(), sPin.getLabel(), sPin.getDescription(), sPin.getPixelPos(), sPin.getGeoPos(), targetGeoCoding); targetGCPGroup.add(tPin); } }
final Placemark mPin = masterGCPGroup.get(sPin.getName()); final PixelPos mGCPPos = mPin.getPixelPos();
void copyActivePlacemark() { Guardian.assertNotNull("product", product); Placemark activePlacemark = getSelectedPlacemark(); Guardian.assertNotNull("activePlacemark", activePlacemark); Placemark newPlacemark = Placemark.createPointPlacemark(activePlacemark.getDescriptor(), "copy_of_" + activePlacemark.getName(), activePlacemark.getLabel(), activePlacemark.getDescription(), activePlacemark.getPixelPos(), activePlacemark.getGeoPos(), activePlacemark.getProduct().getSceneGeoCoding()); newPlacemark.setStyleCss(activePlacemark.getStyleCss()); if (PlacemarkDialog.showEditPlacemarkDialog( SwingUtilities.getWindowAncestor(this), product, newPlacemark, placemarkDescriptor)) { makePlacemarkNameUnique(newPlacemark); UndoRedo.Manager undoManager = SnapApp.getDefault().getUndoManager(product); if (undoManager != null) { undoManager.addEdit(UndoablePlacemarkActionFactory.createUndoablePlacemarkCopying(product, newPlacemark, placemarkDescriptor)); } updateUIState(); } }
dialog.setName(placemark.getName()); dialog.setLabel(placemark.getLabel()); dialog.setDescription(placemark.getDescription() != null ? placemark.getDescription() : "");