namespace MikeSheInOpenDA.Spatial
{
public interface ISpatialDefine
{
///
/// Get Geometry type of this class. Can be either 1D (point), 2D, 3D
///
GeometryTypes Geometry {get;}
///
/// Get the minimum X coordinate between the two points.
/// If it's a Geometry type Point, return pt1 x coordinate.
///
double XMinCoordinate {get;}
///
/// Get the minimum Y coordinate between the two points.
/// If it's a Geometry type Point, return pt1 y coordinate.
///
double YMinCoordinate {get;}
///
/// Get the maximum X coordinate between the two points.
/// If it's a Geometry type Point, return pt1 x coordinate.
///
double XMaxCoordinate {get;}
///
/// Get the maximum Y coordinate between the two points.
/// If it's a Geometry type Point, return pt1 y coordinate.
///
double YMaxCoordinate {get;}
///
/// Get the Layer number.
/// Note that the layer numbers must be the same for the two points.
///
int Layer {get;}
///
/// Returns the spatial Midpoint of the entity
///
IXYLayerPoint MidPoint {get;}
///
/// Return whether the point is inside this structure.
/// If this structure is a 1D point, then the (x,y,layer) values must be the same.
///
/// The point to check wether it's within this object spatially.
/// layer specific
///
bool PointInObject(IXYLayerPoint pt, bool layerIndifferent);
}
}