package org.opensha2.eq.fault.surface;
import org.opensha2.geo.Location;
import org.opensha2.geo.LocationList;
public interface GriddedSurface extends Container2D<Location>, RuptureSurface {
/**
* Returns the grid spacing along strike
*/
public double getGridSpacingAlongStrike();
/**
* returns the grid spacing down dip
*/
public double getGridSpacingDownDip();
// /**
// * tells whether along-strike and down-dip grid spacings are the same
// * @return
// */
// public Boolean isGridSpacingSame();
/**
* gets the location from the 2D container
* @param row index
* @param column index
*/
public Location getLocation(int row, int column);
/**
* This returns the average grid spacing used to define the discretization
* used in what's returned by the methods here that contain "Discretized" in
* their names.
*/
public double getAveGridSpacing();
/**
* This returns a list of locations that are evenly spread (at least
* approximately) over the rupture surface, with a spacing given by what's
* returned by the getGridSpacing() method. Further details are specified by
* the implementing class. Don't assume the locations are ordered as one reads
* the words on a page in a book (not the case for CompoundGriddedSurface).
*/
public LocationList getEvenlyDiscritizedListOfLocsOnSurface();
/**
* This returns a list of locations that are evenly spread (at least
* approximately) over the surface perimeter, with a spacing given by what's
* returned by the getGridSpacing() method. Further details are specified by
* the implementing class. These locations should be ordered starting along
* the top and moving along following the Aki and Richards convention.
*/
@Deprecated
public LocationList getEvenlyDiscritizedPerimeter();
/**
* This returns a list of locations that are evenly spread along the upper
* edge of the surface. Further details are specified by the implementing
* class. These locations should be ordered along the fault following the Aki
* and Richards convention. TODO move to Container2D topRow()
*/
public LocationList getEvenlyDiscritizedUpperEdge();
/**
* This returns a list of locations that are evenly spread along the lower
* edge of the surface. Further details are specified by the implementing
* class. These locations should be ordered along the fault following the Aki
* and Richards convention. TODO move to Container2D bottomRow()
*/
public LocationList getEvenlyDiscritizedLowerEdge();
/**
* This returns the upper edge of the rupture surface (where the locations are
* not necessarily equally spaced). This may be the original Fault Trace used
* to define the surface, but not necessarily.
*/
public LocationList getUpperEdge();
/**
* Get a list of locations that constitutes the perimeter of the surface (not
* necessarily evenly spaced)
*/
public LocationList getPerimeter();
/**
* This returns the first location on the upper edge of the surface
*/
@Deprecated
// TODO getUpperEdgeLocationList().last()
public Location getFirstLocOnUpperEdge();
/**
* This returns the last location on the upper edge of the surface
*/
@Deprecated
// TODO getUpperEdgeLocationList().last()
public Location getLastLocOnUpperEdge();
}