package org.osm2world.viewer.view.debug; import static java.awt.Color.*; import static java.lang.Math.*; import java.awt.Color; import org.osm2world.core.math.AxisAlignedBoundingBoxXZ; import org.osm2world.core.math.VectorXYZ; import org.osm2world.core.target.jogl.JOGLTarget; /** * shows the internal world coordinate grid */ public class InternalCoordsDebugView extends DebugView { @Override public String getDescription() { return "shows the internal world coordinate grid"; } private static final double LINE_DIST = 100; @Override public boolean canBeUsed() { return map != null; } @Override public void fillTarget(JOGLTarget target) { AxisAlignedBoundingBoxXZ bound = map.getDataBoundary(); for (int x = (int)floor(bound.minX / LINE_DIST); x < (int)ceil(bound.maxX / LINE_DIST); x++) { for (int z = (int)floor(bound.minZ / LINE_DIST); z < (int)ceil(bound.maxZ / LINE_DIST); z++) { Color colorX = (z == 0 && x >= 0) ? RED : WHITE; int widthX = (z == 0) ? 3 : 1; target.drawLineStrip(colorX, widthX, new VectorXYZ(x * LINE_DIST, 0, z * LINE_DIST), new VectorXYZ((x+1) * LINE_DIST, 0, z * LINE_DIST)); Color colorZ = (x == 0 && z >= 0) ? BLUE : WHITE; int widthZ = (x == 0) ? 3 : 1; target.drawLineStrip(colorZ, widthZ, new VectorXYZ(x * LINE_DIST, 0, z * LINE_DIST), new VectorXYZ(x * LINE_DIST, 0, (z+1) * LINE_DIST)); } } target.drawLineStrip(GREEN, 3, VectorXYZ.NULL_VECTOR, new VectorXYZ(0, LINE_DIST, 0)); } }