/* * Copyright 2011 by Mark Coletti, Keith Sullivan, Sean Luke, and * George Mason University Mason University Licensed under the Academic * Free License version 3.0 * * See the file "LICENSE" for more information * * $Id$ */ package sim.field.geo; import com.vividsolutions.jts.geom.Envelope; /** * Super class for GeomVectorField and GeomGridField. * */ public abstract class GeomField implements java.io.Serializable { private static final long serialVersionUID = 5356444334673155514L; /** The minimum bounding rectangle (MBR) of all the stored geometries. */ public Envelope MBR; /** Holds the origin for drawing; used to handle zooming and scrolling */ public double drawX, drawY; public GeomField() { this(0,0); } public GeomField(int w, int h) { MBR = new Envelope(); drawX = drawY = 0; fieldHeight = h; fieldWidth = w; } /** The field dimensions * * Used for computing scale. * */ public int fieldWidth, fieldHeight; public int getFieldWidth() { return fieldWidth; } public int getFieldHeight() { return fieldHeight; } public void setFieldWidth(int fw ) { fieldWidth = fw; } public void setFieldHeight(int fh) { fieldHeight = fh; } /** delete contents */ public void clear() { MBR = new Envelope(); drawX = drawY = 0; } /** Returns the width of the MBR. */ public double getWidth() { return MBR.getWidth(); } /** Returns the height of the MBR. */ public double getHeight() { return MBR.getHeight(); } /** Returns the minimum bounding rectangle (MBR) */ public final Envelope getMBR() { return MBR; } /** Set the MBR */ public void setMBR(Envelope MBR) { this.MBR = MBR; } }