package com.revolsys.swing.map.layer.elevation.tin; import com.revolsys.awt.WebColors; import com.revolsys.collection.map.MapEx; import com.revolsys.elevation.tin.TriangulatedIrregularNetwork; import com.revolsys.geometry.model.Geometry; import com.revolsys.geometry.model.Triangle; import com.revolsys.io.BaseCloseable; import com.revolsys.swing.map.Viewport2D; import com.revolsys.swing.map.layer.AbstractLayerRenderer; import com.revolsys.swing.map.layer.record.style.GeometryStyle; import com.revolsys.util.Cancellable; public class TriangulatedIrregularNetworkLayerRenderer extends AbstractLayerRenderer<TriangulatedIrregularNetworkLayer> { private final GeometryStyle style = GeometryStyle.polygon(WebColors.DarkBlue, WebColors.newAlpha(WebColors.Aqua, 50)); public TriangulatedIrregularNetworkLayerRenderer(final TriangulatedIrregularNetworkLayer layer) { super("raster", layer); } @Override public void render(final Viewport2D viewport, final Cancellable cancellable, final TriangulatedIrregularNetworkLayer layer) { final double scaleForVisible = viewport.getScaleForVisible(); if (layer.isVisible(scaleForVisible)) { if (!layer.isEditable()) { final TriangulatedIrregularNetwork tin = layer.getTin(); if (tin != null) { try ( BaseCloseable transformCloseable = viewport.setUseModelCoordinates(true)) { for (final Triangle triangle : cancellable .cancellable(tin.getTriangles(viewport.getBoundingBox()))) { final Geometry convertedTriangle = tin.convertGeometry(triangle); viewport.drawGeometry(convertedTriangle, this.style); } } } } } } @Override public MapEx toMap() { return MapEx.EMPTY; } }