package com.revolsys.geometry.cs;
import java.io.Serializable;
import java.util.List;
import javax.measure.quantity.Length;
import javax.measure.quantity.Quantity;
import javax.measure.unit.Unit;
import com.revolsys.geometry.cs.projection.CoordinatesProjection;
import com.revolsys.geometry.model.BoundingBox;
import com.revolsys.geometry.model.GeometryFactory;
import com.revolsys.geometry.model.GeometryFactoryProxy;
public interface CoordinateSystem extends GeometryFactoryProxy, Serializable {
CoordinateSystem clone();
Area getArea();
BoundingBox getAreaBoundingBox();
Authority getAuthority();
List<Axis> getAxis();
CoordinatesProjection getCoordinatesProjection();
@Override
default CoordinateSystem getCoordinateSystem() {
return this;
}
@Override
default GeometryFactory getGeometryFactory() {
return GeometryFactory.floating3(this);
}
Unit<Length> getLengthUnit();
<Q extends Quantity> Unit<Q> getUnit();
boolean isDeprecated();
}