Issue #2804 Fixed clipping pane issues where clipped map borders would be visible due to other resources not resetting up the clipping pane when done.

Change-Id: If27cd7c8e11cdc6287303e6d5fc1f4990e300ada

Former-commit-id: 6edfb8965f [formerly dbcbd1b560] [formerly 1854bbb477 [formerly 51664693bd87df52acdb74d5286b61eeb06b792d]]
Former-commit-id: 1854bbb477
Former-commit-id: 6658c94e6e
This commit is contained in:
Max Schenkelberg 2014-03-03 16:54:22 -06:00
parent a035269bb3
commit bff80c3ee9
14 changed files with 362 additions and 308 deletions

View file

@ -66,6 +66,9 @@ import com.raytheon.uf.viz.core.rsc.sampling.SamplingResource;
* Jul 20, 2010 6187 bkowal The alpha level will always be reset for every * Jul 20, 2010 6187 bkowal The alpha level will always be reset for every
* resource when the paint method is called now. * resource when the paint method is called now.
* 06/24/2013 2140 randerso Changed to use standardized paint error handling * 06/24/2013 2140 randerso Changed to use standardized paint error handling
* Mar 3, 2014 2804 mschenke Setup display to clip before each resource is
* to ensure resources do not affect each other
*
* *
* </pre> * </pre>
* *
@ -145,7 +148,6 @@ public class MapRenderableDisplay extends AbstractRenderableDisplay implements
this.mapCenter = descriptor.pixelToWorld(paintProps.getView() this.mapCenter = descriptor.pixelToWorld(paintProps.getView()
.getExtent().getCenter()); .getExtent().getCenter());
target.setupClippingPlane(getMapExtent());
paintProps.setClippingPane(getMapExtent()); paintProps.setClippingPane(getMapExtent());
int displayWidth = (int) (((MapDescriptor) descriptor).getMapWidth() * zoomLevel); int displayWidth = (int) (((MapDescriptor) descriptor).getMapWidth() * zoomLevel);
@ -173,6 +175,7 @@ public class MapRenderableDisplay extends AbstractRenderableDisplay implements
} }
paintProps = calcPaintDataTime(paintProps, rsc); paintProps = calcPaintDataTime(paintProps, rsc);
target.setupClippingPlane(paintProps.getClippingPane());
paintResource(pair, target, paintProps); paintResource(pair, target, paintProps);
} }
} }

View file

@ -66,6 +66,7 @@ import com.vividsolutions.jts.geom.Coordinate;
* ------------ ---------- ----------- -------------------------- * ------------ ---------- ----------- --------------------------
* Dec 22, 2010 mschenke Initial creation * Dec 22, 2010 mschenke Initial creation
* Jan 31, 2012 14306 kshresth Cursor readout as you sample the dispays * Jan 31, 2012 14306 kshresth Cursor readout as you sample the dispays
* Mar 3, 2014 2804 mschenke Set back up clipping pane
* *
* </pre> * </pre>
* *
@ -352,6 +353,8 @@ public class SamplingResource extends
+ e.getLocalizedMessage(), e); + e.getLocalizedMessage(), e);
} }
errorInHovering = true; errorInHovering = true;
} finally {
target.setupClippingPlane(paintProps.getClippingPane());
} }
} }

View file

@ -29,6 +29,7 @@ import javax.xml.bind.annotation.XmlElement;
import com.raytheon.uf.common.time.DataTime; import com.raytheon.uf.common.time.DataTime;
import com.raytheon.uf.viz.core.drawables.IDescriptor; import com.raytheon.uf.viz.core.drawables.IDescriptor;
import com.raytheon.uf.viz.core.exception.VizException; import com.raytheon.uf.viz.core.exception.VizException;
import com.raytheon.uf.viz.core.rsc.IResourceDataChanged.ChangeType;
/** /**
* A base implementation of resource data and metadata. This class is used by * A base implementation of resource data and metadata. This class is used by
@ -112,7 +113,10 @@ public abstract class AbstractResourceData {
* *
* This class is typically implemented and provides any transformations * This class is typically implemented and provides any transformations
* necessary to go between the raw data form and the input of the renderable * necessary to go between the raw data form and the input of the renderable
* AbstractVizResource. * AbstractVizResource. Default calls
* {@link #fireChangeListeners(com.raytheon.uf.viz.core.rsc.IResourceDataChanged.ChangeType, Object)}
* with {@link ChangeType#DATA_UPDATE} and the updateData with no
* transformations
* *
* *
* @param updateData * @param updateData

View file

@ -174,6 +174,7 @@ import com.vividsolutions.jts.geom.Point;
* Jul 17, 2013 2197 njensen Improved speed of getName() * Jul 17, 2013 2197 njensen Improved speed of getName()
* Oct 18, 2013 DR 16151 gzhang Used getAverageValue() for QPF Graph. * Oct 18, 2013 DR 16151 gzhang Used getAverageValue() for QPF Graph.
* Feb 19, 2014 2819 randerso Removed unnecessary .clone() call * Feb 19, 2014 2819 randerso Removed unnecessary .clone() call
* Mar 3, 2014 2804 mschenke Set back up clipping pane
* *
* </pre> * </pre>
* *
@ -1211,9 +1212,11 @@ public class FFMPResource extends
} }
aTarget.clearClippingPlane(); aTarget.clearClippingPlane();
try {
paintTime = paintProps.getDataTime(); paintTime = paintProps.getDataTime();
paintProps.setAlpha(getCapability(ImagingCapability.class).getAlpha()); paintProps.setAlpha(getCapability(ImagingCapability.class)
.getAlpha());
FFMPDrawable drawable = null; FFMPDrawable drawable = null;
@ -1267,8 +1270,8 @@ public class FFMPResource extends
float alpha = imageCap.getAlpha(); float alpha = imageCap.getAlpha();
for (DomainXML domain : getDomains()) { for (DomainXML domain : getDomains()) {
String cwa = domain.getCwa(); String cwa = domain.getCwa();
IColormapShadedShape shape = shadedShapes.getDrawableShape(cwa, IColormapShadedShape shape = shadedShapes.getDrawableShape(
drawable.getShadedHuc()); cwa, drawable.getShadedHuc());
Map<Object, RGB> colorMap = drawable.getColorMap(cwa); Map<Object, RGB> colorMap = drawable.getColorMap(cwa);
if ((shape != null) && (colorMap != null)) { if ((shape != null) && (colorMap != null)) {
ext.drawColormapShadedShape(shape, colorMap, alpha, ext.drawColormapShadedShape(shape, colorMap, alpha,
@ -1331,7 +1334,8 @@ public class FFMPResource extends
// create pixelCoverages for the VGB's // create pixelCoverages for the VGB's
if (isAllHuc) { if (isAllHuc) {
for (DomainXML domain : getDomains()) { for (DomainXML domain : getDomains()) {
for (Long pfaf : monitor.getTemplates(getSiteKey()) for (Long pfaf : monitor
.getTemplates(getSiteKey())
.getMap(getSiteKey(), domain.getCwa(), getHuc()) .getMap(getSiteKey(), domain.getCwa(), getHuc())
.keySet()) { .keySet()) {
List<FFMPVirtualGageBasinMetaData> fvgmdList = monitor List<FFMPVirtualGageBasinMetaData> fvgmdList = monitor
@ -1342,7 +1346,8 @@ public class FFMPResource extends
for (FFMPVirtualGageBasinMetaData fvgmd : fvgmdList) { for (FFMPVirtualGageBasinMetaData fvgmd : fvgmdList) {
vgbDrawables.put( vgbDrawables.put(
fvgmd.getLid(), fvgmd.getLid(),
getPixelCoverage(fvgmd.getCoordinate(), getPixelCoverage(
fvgmd.getCoordinate(),
paintProps)); paintProps));
} }
} }
@ -1361,7 +1366,8 @@ public class FFMPResource extends
for (FFMPVirtualGageBasinMetaData fvgmd : fvgmdList) { for (FFMPVirtualGageBasinMetaData fvgmd : fvgmdList) {
vgbDrawables.put( vgbDrawables.put(
fvgmd.getLid(), fvgmd.getLid(),
getPixelCoverage(fvgmd.getCoordinate(), getPixelCoverage(
fvgmd.getCoordinate(),
paintProps)); paintProps));
} }
} }
@ -1376,7 +1382,8 @@ public class FFMPResource extends
vgbDrawables.put( vgbDrawables.put(
entry.getKey(), entry.getKey(),
getPixelCoverage(entry.getValue() getPixelCoverage(entry.getValue()
.getCoordinate(), paintProps)); .getCoordinate(),
paintProps));
} }
} }
} }
@ -1389,7 +1396,8 @@ public class FFMPResource extends
// draw or clear the colorMap // draw or clear the colorMap
if (!isFfmpDataToggle()) { // clear if ffmpDataToggle is false if (!isFfmpDataToggle()) { // clear if ffmpDataToggle is false
getCapability(ColorMapCapability.class).setColorMapParameters(null); getCapability(ColorMapCapability.class).setColorMapParameters(
null);
} else if (getColorUtil().getColorMapParameters() != null) { } else if (getColorUtil().getColorMapParameters() != null) {
// restore if null // restore if null
getCapability(ColorMapCapability.class).setColorMapParameters( getCapability(ColorMapCapability.class).setColorMapParameters(
@ -1403,6 +1411,9 @@ public class FFMPResource extends
// always reset // always reset
isQuery = false; isQuery = false;
} finally {
aTarget.setupClippingPlane(paintProps.getClippingPane());
}
} }
/** /**

View file

@ -84,7 +84,7 @@ import com.vividsolutions.jts.geom.Coordinate;
* D2DTimeMatcher. * D2DTimeMatcher.
* Apr 02, 2013 1731 mpduff Fix problem with DMD updates. * Apr 02, 2013 1731 mpduff Fix problem with DMD updates.
* Apr 22, 2013 1926 njensen Faster rendering * Apr 22, 2013 1926 njensen Faster rendering
* * Mar 3, 2014 2804 mschenke Set back up clipping pane
* </pre> * </pre>
* *
* @author dhladky * @author dhladky
@ -246,7 +246,6 @@ public class ScanResource extends
PaintProperties paintProps) throws VizException { PaintProperties paintProps) throws VizException {
getScan().setFrames(paintProps.getFramesInfo().getFrameCount()); getScan().setFrames(paintProps.getFramesInfo().getFrameCount());
target.setupClippingPlane(paintProps.getClippingPane());
this.paintTime = paintProps.getDataTime(); this.paintTime = paintProps.getDataTime();
if (paintTime != null) { if (paintTime != null) {
@ -393,6 +392,7 @@ public class ScanResource extends
} else if (getTable().equals(ScanTables.DMD)) { } else if (getTable().equals(ScanTables.DMD)) {
paintElevationAngle(target, paintProps); paintElevationAngle(target, paintProps);
} }
target.setupClippingPlane(paintProps.getClippingPane());
} }
} }

View file

@ -39,9 +39,9 @@ import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus; import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority; import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.common.style.ParamLevelMatchCriteria; import com.raytheon.uf.common.style.ParamLevelMatchCriteria;
import com.raytheon.uf.common.style.StyleException;
import com.raytheon.uf.common.style.StyleManager; import com.raytheon.uf.common.style.StyleManager;
import com.raytheon.uf.common.style.StyleRule; import com.raytheon.uf.common.style.StyleRule;
import com.raytheon.uf.common.style.StyleException;
import com.raytheon.uf.common.style.image.ImagePreferences; import com.raytheon.uf.common.style.image.ImagePreferences;
import com.raytheon.uf.common.time.DataTime; import com.raytheon.uf.common.time.DataTime;
import com.raytheon.uf.viz.core.IGraphicsTarget; import com.raytheon.uf.viz.core.IGraphicsTarget;
@ -69,7 +69,7 @@ import com.vividsolutions.jts.geom.Coordinate;
* Date Ticket# Engineer Description * Date Ticket# Engineer Description
* ------------ ---------- ----------- -------------------------- * ------------ ---------- ----------- --------------------------
* 11Nov2009 2037 dhladky Initial Creation. * 11Nov2009 2037 dhladky Initial Creation.
* * Mar 3, 2014 2804 mschenke Set back up clipping pane
* </pre> * </pre>
* *
* @author dhladky * @author dhladky
@ -196,6 +196,7 @@ public class VILResource extends
PaintProperties paintProps) throws VizException { PaintProperties paintProps) throws VizException {
target.clearClippingPlane(); target.clearClippingPlane();
try {
this.displayedDataTime = paintProps.getDataTime(); this.displayedDataTime = paintProps.getDataTime();
if (this.font == null) { if (this.font == null) {
@ -203,7 +204,8 @@ public class VILResource extends
} }
// Pull the record out // Pull the record out
this.record = resourceData.dataObjectMap.get(this.displayedDataTime); this.record = resourceData.dataObjectMap
.get(this.displayedDataTime);
if (record == null) { if (record == null) {
// Don't have data for this frame // Don't have data for this frame
@ -257,8 +259,8 @@ public class VILResource extends
.getEntries() .getEntries()
.get(colorMapParameters.getDataMapping().getEntries() .get(colorMapParameters.getDataMapping().getEntries()
.size() - 1).getDisplayValue().floatValue(); .size() - 1).getDisplayValue().floatValue();
vilmin = colorMapParameters.getDataMapping().getEntries().get(0) vilmin = colorMapParameters.getDataMapping().getEntries()
.getDisplayValue().floatValue(); .get(0).getDisplayValue().floatValue();
colorMapParameters.setColorMapMax(vilmax); colorMapParameters.setColorMapMax(vilmax);
colorMapParameters.setColorMapMin(vilmin); colorMapParameters.setColorMapMin(vilmin);
@ -266,6 +268,9 @@ public class VILResource extends
} }
gridDisplay.paint(target, paintProps); gridDisplay.paint(target, paintProps);
} finally {
target.setupClippingPlane(paintProps.getClippingPane());
}
} }
/* /*

View file

@ -72,6 +72,7 @@ import com.vividsolutions.jts.geom.LineString;
* Aug 29, 2013 2281 bsteffen Fix click distance calculations. * Aug 29, 2013 2281 bsteffen Fix click distance calculations.
* Sep 03, 2013 2310 bsteffen Move MouseHandler from ShearAction to * Sep 03, 2013 2310 bsteffen Move MouseHandler from ShearAction to
* ShearLayer. * ShearLayer.
* Mar 3, 2014 2804 mschenke Set back up clipping pane
* *
* </pre> * </pre>
* *
@ -167,7 +168,11 @@ public class ShearLayer extends
drawLineString(target, ls, color, IGraphicsTarget.LineStyle.SOLID); drawLineString(target, ls, color, IGraphicsTarget.LineStyle.SOLID);
String label = drawLabeling(target, ls, color, paintProps); String label = drawLabeling(target, ls, color, paintProps);
target.clearClippingPlane(); target.clearClippingPlane();
try {
drawUpperLeftCornerLabel(target, paintProps, label); drawUpperLeftCornerLabel(target, paintProps, label);
} finally {
target.setupClippingPlane(paintProps.getClippingPane());
}
} }
public void drawLines(Coordinate[] coors) { public void drawLines(Coordinate[] coors) {
@ -309,8 +314,7 @@ public class ShearLayer extends
* y location in screen pixels * y location in screen pixels
* @return T Coordinate of the endpoint, null if not found. * @return T Coordinate of the endpoint, null if not found.
*/ */
public Coordinate isInsideEndpoint(int x, public Coordinate isInsideEndpoint(int x, int y) {
int y) {
IDisplayPaneContainer container = getResourceContainer(); IDisplayPaneContainer container = getResourceContainer();
if (container == null) { if (container == null) {
return null; return null;
@ -425,9 +429,10 @@ public class ShearLayer extends
String separatorSymbol; String separatorSymbol;
public VelocityRange(Map<String, Object> map) { public VelocityRange(Map<String, Object> map) {
if (map != null && map.containsKey("Mnemonic") if (map != null
&& (map.containsKey(BASE_VELOCITY_VALUE_KEY) || && map.containsKey("Mnemonic")
map.containsKey(VALUE_KEY))) { && (map.containsKey(BASE_VELOCITY_VALUE_KEY) || map
.containsKey(VALUE_KEY))) {
String mnemonic = map.get("Mnemonic").toString(); String mnemonic = map.get("Mnemonic").toString();
if (mnemonic.equalsIgnoreCase("V") if (mnemonic.equalsIgnoreCase("V")

View file

@ -130,6 +130,7 @@ import com.sun.opengl.util.j2d.TextRenderer;
* May 28, 2013 1638 mschenke Made sure {@link TextStyle#BLANKED} text is drawing correct size * May 28, 2013 1638 mschenke Made sure {@link TextStyle#BLANKED} text is drawing correct size
* box around text * box around text
* Nov 4, 2013 2492 mschenke Switched colormap drawing to use 1D texture object for alpha mask * Nov 4, 2013 2492 mschenke Switched colormap drawing to use 1D texture object for alpha mask
* Mar 3, 2014 2804 mschenke Added clipping pane field to only setup if changed
* *
* </pre> * </pre>
* *
@ -250,6 +251,8 @@ public class GLTarget extends AbstractGraphicsTarget implements IGLTarget {
protected Rectangle monitorBounds; protected Rectangle monitorBounds;
protected IExtent clippingPane;
/** /**
* Construct a GL target using a canvas (inherited from IGraphicsTarget) * Construct a GL target using a canvas (inherited from IGraphicsTarget)
* *
@ -406,6 +409,7 @@ public class GLTarget extends AbstractGraphicsTarget implements IGLTarget {
gl.glDisable(GL.GL_CLIP_PLANE1); gl.glDisable(GL.GL_CLIP_PLANE1);
gl.glDisable(GL.GL_CLIP_PLANE2); gl.glDisable(GL.GL_CLIP_PLANE2);
gl.glDisable(GL.GL_CLIP_PLANE3); gl.glDisable(GL.GL_CLIP_PLANE3);
this.clippingPane = null;
} }
/* /*
@ -1394,9 +1398,19 @@ public class GLTarget extends AbstractGraphicsTarget implements IGLTarget {
*/ */
@Override @Override
public void setupClippingPlane(IExtent extent) { public void setupClippingPlane(IExtent extent) {
if (extent == null) { if (this.clippingPane == extent
|| (this.clippingPane != null && extent != null && this.clippingPane
.equals(extent))) {
// Clipping pane already set to this
return; return;
} }
this.clippingPane = extent;
if (clippingPane == null) {
clearClippingPlane();
return;
}
// Clone to preserve clipping pane extent
this.clippingPane = clippingPane.clone();
gl.glMatrixMode(GL.GL_MODELVIEW); gl.glMatrixMode(GL.GL_MODELVIEW);
gl.glPushMatrix(); gl.glPushMatrix();

View file

@ -35,8 +35,6 @@ import com.raytheon.uf.common.dataplugin.gfe.reference.ReferenceData;
import com.raytheon.uf.common.status.IUFStatusHandler; import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus; import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority; import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.viz.core.AbstractGraphicsFactoryAdapter;
import com.raytheon.uf.viz.core.GraphicsFactory;
import com.raytheon.uf.viz.core.IDisplayPane; import com.raytheon.uf.viz.core.IDisplayPane;
import com.raytheon.uf.viz.core.IDisplayPaneContainer; import com.raytheon.uf.viz.core.IDisplayPaneContainer;
import com.raytheon.uf.viz.core.IExtent; import com.raytheon.uf.viz.core.IExtent;
@ -103,6 +101,7 @@ import com.raytheon.viz.ui.input.InputAdapter;
* 01/23/2013 #1524 randerso Fix error when clicking on discrete color bar when * 01/23/2013 #1524 randerso Fix error when clicking on discrete color bar when
* no grid exists * no grid exists
* 08/27/2013 #2287 randerso Fixed fitToDataColorTable for Single Grids * 08/27/2013 #2287 randerso Fixed fitToDataColorTable for Single Grids
* Mar 3, 2014 #2804 mschenke Set back up clipping pane
* *
* </pre> * </pre>
* *
@ -241,8 +240,6 @@ public class GFEColorbarResource extends
protected static RGB seColorBarBgWxPickupColor = new RGB(255, 0, 255); protected static RGB seColorBarBgWxPickupColor = new RGB(255, 0, 255);
AbstractGraphicsFactoryAdapter graphicsAdapter = null;
protected Set<ParmID> fittedParms; protected Set<ParmID> fittedParms;
static { static {
@ -430,12 +427,7 @@ public class GFEColorbarResource extends
colorbarDisplay.paint(target, paintProps); colorbarDisplay.paint(target, paintProps);
} }
if (graphicsAdapter == null) { target.setupClippingPlane(paintProps.getClippingPane());
graphicsAdapter = GraphicsFactory.getGraphicsAdapter();
}
target.setupClippingPlane(graphicsAdapter.constructExtent(descriptor
.getGridGeometry().getGridRange()));
// this.lastIndex = curIndex; // this.lastIndex = curIndex;

View file

@ -65,6 +65,7 @@ import com.raytheon.viz.ui.cmenu.IContextMenuContributor;
* Feb 14, 2013 1616 bsteffen Add option for interpolation of colormap * Feb 14, 2013 1616 bsteffen Add option for interpolation of colormap
* parameters, disable colormap interpolation * parameters, disable colormap interpolation
* by default. * by default.
* Mar 3, 2014 2804 mschenke Set back up clipping pane
* *
* </pre> * </pre>
* *
@ -156,11 +157,15 @@ public class HydroColorBarResource extends
target.clearClippingPlane(); target.clearClippingPlane();
try {
double yMax = screenExtent.getMaxY(); double yMax = screenExtent.getMaxY();
/* Draw the color bar */ /* Draw the color bar */
yMax = drawColorBar(target, screenExtent.getMinX(), yMax = drawColorBar(target, screenExtent.getMinX(),
screenExtent.getMaxX(), yMax); screenExtent.getMaxX(), yMax);
} finally {
target.setupClippingPlane(paintProps.getClippingPane());
}
} }
/** /**

View file

@ -86,6 +86,7 @@ import com.vividsolutions.jts.index.strtree.STRtree;
* Date Ticket# Engineer Description * Date Ticket# Engineer Description
* ------------ ---------- ----------- -------------------------- * ------------ ---------- ----------- --------------------------
* Jul 8, 2009 2589 snaples Initial creation * Jul 8, 2009 2589 snaples Initial creation
* Mar 3, 2014 2804 mschenke Set back up clipping pane
* *
* </pre> * </pre>
* *
@ -528,6 +529,7 @@ public class PointFreezePlotResource extends
} }
target.clearClippingPlane(); target.clearClippingPlane();
drawQCLegend(); drawQCLegend();
target.setupClippingPlane(paintProps.getClippingPane());
} }
} }

View file

@ -88,6 +88,7 @@ import com.vividsolutions.jts.index.strtree.STRtree;
* Date Ticket# Engineer Description * Date Ticket# Engineer Description
* ------------ ---------- ----------- -------------------------- * ------------ ---------- ----------- --------------------------
* Nov 24, 2008 1748 snaples Initial creation * Nov 24, 2008 1748 snaples Initial creation
* Mar 3, 2014 2804 mschenke Set back up clipping pane
* *
* </pre> * </pre>
* *
@ -761,6 +762,7 @@ public class PointPrecipPlotResource extends
} }
target.clearClippingPlane(); target.clearClippingPlane();
drawQCLegend(); drawQCLegend();
target.setupClippingPlane(paintProps.getClippingPane());
} }
} }

View file

@ -87,6 +87,7 @@ import com.vividsolutions.jts.index.strtree.STRtree;
* Date Ticket# Engineer Description * Date Ticket# Engineer Description
* ------------ ---------- ----------- -------------------------- * ------------ ---------- ----------- --------------------------
* Jun 24, 2009 2524 snaples Initial creation * Jun 24, 2009 2524 snaples Initial creation
* Mar 3, 2014 2804 mschenke Set back up clipping pane
* *
* </pre> * </pre>
* *
@ -602,6 +603,7 @@ public class PointTempPlotResource extends
} }
target.clearClippingPlane(); target.clearClippingPlane();
drawQCLegend(); drawQCLegend();
target.setupClippingPlane(paintProps.getClippingPane());
} }
} }

View file

@ -43,11 +43,11 @@ import com.raytheon.uf.viz.core.rsc.capabilities.ColorableCapability;
import com.raytheon.uf.viz.core.rsc.capabilities.IMiddleClickCapableResource; import com.raytheon.uf.viz.core.rsc.capabilities.IMiddleClickCapableResource;
import com.raytheon.uf.viz.core.rsc.capabilities.MagnificationCapability; import com.raytheon.uf.viz.core.rsc.capabilities.MagnificationCapability;
import com.raytheon.viz.radar.IRadarConfigListener; import com.raytheon.viz.radar.IRadarConfigListener;
import com.raytheon.viz.radar.VizRadarRecord;
import com.raytheon.viz.radar.interrogators.IRadarInterrogator; import com.raytheon.viz.radar.interrogators.IRadarInterrogator;
import com.raytheon.viz.radar.rsc.AbstractRadarResource; import com.raytheon.viz.radar.rsc.AbstractRadarResource;
import com.raytheon.viz.radar.rsc.RadarResourceData; import com.raytheon.viz.radar.rsc.RadarResourceData;
import com.raytheon.viz.radar.ui.RadarDisplayManager; import com.raytheon.viz.radar.ui.RadarDisplayManager;
import com.raytheon.viz.radar.VizRadarRecord;
import com.vividsolutions.jts.geom.Coordinate; import com.vividsolutions.jts.geom.Coordinate;
import com.vividsolutions.jts.geom.Envelope; import com.vividsolutions.jts.geom.Envelope;
@ -63,6 +63,7 @@ import com.vividsolutions.jts.geom.Envelope;
* Jul 20, 2010 #6187 bkowal The cache will be cleared out every time * Jul 20, 2010 #6187 bkowal The cache will be cleared out every time
* a refresh is required. * a refresh is required.
* 03/05/2013 DCS51 zwang Handle GFM product * 03/05/2013 DCS51 zwang Handle GFM product
* Mar 3, 2014 2804 mschenke Set back up clipping pane
* *
* </pre> * </pre>
* *
@ -223,6 +224,7 @@ public class RadarGraphicsResource extends AbstractRadarResource<MapDescriptor>
// DMD specify // DMD specify
if (radarRecord.getProductCode() == 149) { if (radarRecord.getProductCode() == 149) {
target.clearClippingPlane(); target.clearClippingPlane();
try {
int xPos = 95; int xPos = 95;
int yPos = 10; int yPos = 10;
xPos = paintProps.getCanvasBounds().x xPos = paintProps.getCanvasBounds().x
@ -235,8 +237,10 @@ public class RadarGraphicsResource extends AbstractRadarResource<MapDescriptor>
int offScreenCount = 0; int offScreenCount = 0;
int filteredCount = 0; int filteredCount = 0;
Coordinate currFeature; Coordinate currFeature;
for (RadarDataKey currPt : radarRecord.getSymbologyData().keySet()) { for (RadarDataKey currPt : radarRecord.getSymbologyData()
currFeature = new Coordinate(currPt.getLon(), currPt.getLat()); .keySet()) {
currFeature = new Coordinate(currPt.getLon(),
currPt.getLat());
if (!screenLatLon.contains(currFeature)) { if (!screenLatLon.contains(currFeature)) {
// Count how many are not on the screen // Count how many are not on the screen
@ -262,9 +266,11 @@ public class RadarGraphicsResource extends AbstractRadarResource<MapDescriptor>
notShown.setCoordinates(xPos, yPos + 20); notShown.setCoordinates(xPos, yPos + 20);
notShown.horizontalAlignment = HorizontalAlignment.CENTER; notShown.horizontalAlignment = HorizontalAlignment.CENTER;
notShown.verticallAlignment = VerticalAlignment.MIDDLE; notShown.verticallAlignment = VerticalAlignment.MIDDLE;
target.getExtension(ICanvasRenderingExtension.class).drawStrings( target.getExtension(ICanvasRenderingExtension.class)
paintProps, offscreen, notShown); .drawStrings(paintProps, offscreen, notShown);
} finally {
target.setupClippingPlane(paintProps.getClippingPane());
}
} }
} }