package org.opensha2.eq.fault.surface;
import org.opensha2.eq.model.Distance;
import org.opensha2.geo.Location;
/**
* A parameterization of an earthquake rupture surface.
*
* @author Ned Field
* @author Peter Powers
*/
public interface RuptureSurface {
/*
* TODO there is currently more returned by this interface than required by
* GMMs
*/
/**
* The average strike of this surface in degrees [0°, 360°).
*/
double strike();
/**
* The average dip of this surface in degrees [0°, 90°].
*/
double dip();
/**
* The average dip of this surface in radians [0, π/2].
*/
double dipRad();
/**
* The average dip direction of this surface in degrees [0°, 360°).
*/
double dipDirection();
/**
* The average length of the upper edge or trace of this surface in km.
*/
double length();
/**
* The average down-dip width of this surface in km.
*/
double width();
/**
* The surface area of this surface in km<sup>2</sup>.
*/
double area();
/**
* The average depth to the top of this surface in km (always positive)
*/
double depth();
/**
* The centroid of this surface.
*/
Location centroid();
/**
* Returns the distance metrics commonly required by PSHA ground motion models
* (GMMs): rJB, rRup, and rX.
* @param loc {@code Location} to compute distances to
* @return a distance metric wrapper object
* @see Distance
*/
Distance distanceTo(Location loc);
}