diff --git a/cave/com.raytheon.viz.core.contours/META-INF/MANIFEST.MF b/cave/com.raytheon.viz.core.contours/META-INF/MANIFEST.MF index 1816b1bd6d..427203b977 100644 --- a/cave/com.raytheon.viz.core.contours/META-INF/MANIFEST.MF +++ b/cave/com.raytheon.viz.core.contours/META-INF/MANIFEST.MF @@ -5,19 +5,18 @@ Bundle-SymbolicName: com.raytheon.viz.core.contours;singleton:=true Bundle-Version: 1.12.1174.qualifier Bundle-Activator: com.raytheon.viz.core.contours.Activator Bundle-Vendor: Raytheon -Eclipse-RegisterBuddy: com.raytheon.viz.core, com.raytheon.viz.ui -Eclipse-BuddyPolicy: ext, global -Require-Bundle: org.eclipse.ui, - org.eclipse.core.runtime, - com.raytheon.viz.core, - org.apache.commons.lang, - org.geotools, - javax.measure, - com.raytheon.viz.ui, - com.raytheon.edex.meteolib +Require-Bundle: org.eclipse.core.runtime, + org.eclipse.ui, + com.raytheon.uf.common.datastorage;bundle-version="1.12.1174", + com.raytheon.uf.common.geospatial;bundle-version="1.12.1174", + com.raytheon.uf.common.status;bundle-version="1.12.1174", + com.raytheon.uf.common.util;bundle-version="1.12.1174", + com.raytheon.uf.viz.core;bundle-version="1.12.1174", + com.raytheon.edex.meteolib;bundle-version="1.12.1174" Bundle-ActivationPolicy: lazy Export-Package: com.raytheon.viz.core.contours, - com.raytheon.viz.core.contours.cmenu, com.raytheon.viz.core.contours.rsc.displays, com.raytheon.viz.core.contours.util Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Import-Package: com.raytheon.viz.core.interval, + com.raytheon.viz.core.style.contour diff --git a/cave/com.raytheon.viz.core.contours/src/com/raytheon/viz/core/contours/ContourRenderable.java b/cave/com.raytheon.viz.core.contours/src/com/raytheon/viz/core/contours/ContourRenderable.java index a09536c2a7..bf77b34700 100644 --- a/cave/com.raytheon.viz.core.contours/src/com/raytheon/viz/core/contours/ContourRenderable.java +++ b/cave/com.raytheon.viz.core.contours/src/com/raytheon/viz/core/contours/ContourRenderable.java @@ -59,6 +59,7 @@ import com.vividsolutions.jts.geom.Coordinate; * Date Ticket# Engineer Description * ------------ ---------- ----------- -------------------------- * Jul 10, 2008 #1233 chammack Initial creation + * Jul 18, 2013 #2199 mschenke Made code only smooth data once * * * @@ -86,6 +87,8 @@ public abstract class ContourRenderable implements IRenderable { private final String uuid; + private IDataRecord[] data; + // This is the width of CONUS private static final double METERS_AT_BASE_ZOOMLEVEL = 5878649.0; @@ -120,6 +123,20 @@ public abstract class ContourRenderable implements IRenderable { this.requestMap = new HashMap(); } + private IDataRecord[] getContourData() throws VizException { + if (data == null) { + data = getData(); + if (data != null) { + GeneralGridGeometry gridGeometry = getGridGeometry(); + ContourPreferences contourPrefs = getPreferences(); + if (gridGeometry != null && contourPrefs != null) { + data = smoothData(data, gridGeometry, contourPrefs); + } + } + } + return data; + } + /** * Set color * @@ -254,11 +271,6 @@ public abstract class ContourRenderable implements IRenderable { || contourGroup[i].lastDensity != density || pdRatio > 2 || pdRatio < 0.5) { - IDataRecord[] dataRecord = getData(); - if (dataRecord == null) { - return; - } - GeneralGridGeometry gridGeometry = getGridGeometry(); ContourPreferences contourPrefs = getPreferences(); @@ -267,8 +279,10 @@ public abstract class ContourRenderable implements IRenderable { return; } - dataRecord = smoothData(dataRecord, gridGeometry, - contourPrefs); + IDataRecord[] dataRecord = getContourData(); + if (dataRecord == null) { + return; + } ContourGroup cg = null; // generate the identifier diff --git a/cave/com.raytheon.viz.core.contours/src/com/raytheon/viz/core/contours/ContourSupport.java b/cave/com.raytheon.viz.core.contours/src/com/raytheon/viz/core/contours/ContourSupport.java index 409f5ee4a7..d34e643243 100644 --- a/cave/com.raytheon.viz.core.contours/src/com/raytheon/viz/core/contours/ContourSupport.java +++ b/cave/com.raytheon.viz.core.contours/src/com/raytheon/viz/core/contours/ContourSupport.java @@ -91,10 +91,11 @@ import com.vividsolutions.jts.geom.Geometry; * Apr 26, 2010 #4583 rjpeter Replaced fortran fortconbuf with java port. * Mar 04, 2011 #7747 njensen Cached subgrid envelopes * Jul 09, 2012 DR14940 M.Porricelli Adjust arrow size for streamlines - * Feb 15, 2013 1638 mschenke Moved edex.common Util functions into common Util + * Feb 15, 2013 1638 mschenke Moved edex.common Util functions into common Util * Jun 26, 2013 #1999 dgilling Replace native fortran strmpak call * with java port. * + * Jul 18, 2013 2199 mschenke Ensured contouring is only occurring over visible area * * * @author chammack @@ -666,8 +667,25 @@ public class ContourSupport { GridGeometry2D imageGeometry2D = GridGeometry2D .wrap(imageGridGeometry); + GridGeometry2D mapGeometry2D = GridGeometry2D.wrap(mapGridGeometry); + + // Start with a grid envelope in screen space0 + GridEnvelope2D screenGridEnvelope = new GridEnvelope2D( + (int) Math.floor(workingExtent.getMinX()), + (int) Math.floor(workingExtent.getMinY()), + (int) Math.ceil(workingExtent.getWidth()), + (int) Math.ceil(workingExtent.getHeight())); + // intersect with mapGeometry so we only have points on the actual + // display + screenGridEnvelope = new GridEnvelope2D( + screenGridEnvelope.intersection(mapGeometry2D + .getGridRange2D())); + // convert from screen grid space to screen crs space. + Envelope2D screenCRSEnvelope = mapGeometry2D + .gridToWorld(screenGridEnvelope); + org.opengis.geometry.Envelope subgridCRSEnvelope = MapUtil - .reprojectAndIntersect(mapGridGeometry.getEnvelope(), + .reprojectAndIntersect(screenCRSEnvelope, imageGridGeometry.getEnvelope()); GridEnvelope2D subgridEnv = imageGeometry2D diff --git a/cave/com.raytheon.viz.core.contours/src/com/raytheon/viz/core/contours/cmenu/package-info.java b/cave/com.raytheon.viz.core.contours/src/com/raytheon/viz/core/contours/cmenu/package-info.java deleted file mode 100644 index 3976725735..0000000000 --- a/cave/com.raytheon.viz.core.contours/src/com/raytheon/viz/core/contours/cmenu/package-info.java +++ /dev/null @@ -1,23 +0,0 @@ -/** - * This software was developed and / or modified by Raytheon Company, - * pursuant to Contract DG133W-05-CQ-1067 with the US Government. - * - * U.S. EXPORT CONTROLLED TECHNICAL DATA - * This software product contains export-restricted data whose - * export/transfer/disclosure is restricted by U.S. law. Dissemination - * to non-U.S. persons whether in the United States or abroad requires - * an export license or other authorization. - * - * Contractor Name: Raytheon Company - * Contractor Address: 6825 Pine Street, Suite 340 - * Mail Stop B8 - * Omaha, NE 68106 - * 402.291.0100 - * - * See the AWIPS II Master Rights File ("Master Rights File.pdf") for - * further licensing information. - **/ -/** - * Provides contouring support - */ -package com.raytheon.viz.core.contours.cmenu; \ No newline at end of file