# Uses of Class
org.apache.lucene.spatial3d.geom.PlanetModel

Packages that use PlanetModel
Package
Description
org.apache.lucene.spatial3d
Lucene field & query support for the spatial geometry implemented in `org.apache.lucene.spatial3d.geom`.
org.apache.lucene.spatial3d.geom
Shapes implemented using 3D planar geometry.

- ## Uses of PlanetModel in org.apache.lucene.spatial3d

  Fields in org.apache.lucene.spatial3d declared as PlanetModel
  Modifier and Type
  Field
  Description
  `protected final PlanetModel`
  Geo3DPoint.`planetModel`
  Planet Model for this Geo3DPoint
  Methods in org.apache.lucene.spatial3d with parameters of type PlanetModel
  Modifier and Type
  Method
  Description
  `static double`
  Geo3DPoint.`decodeDimension(byte[] value, int offset, PlanetModel planetModel)`
  Decode single dimension
  `static void`
  Geo3DPoint.`encodeDimension(double value, byte[] bytes, int offset, PlanetModel planetModel)`
  Encode single dimension
  `static Query`
  Geo3DPoint.`newBoxQuery(String field, PlanetModel planetModel, double minLatitude, double maxLatitude, double minLongitude, double maxLongitude)`
  Create a query for matching a box.
  `static Query`
  Geo3DPoint.`newDistanceQuery(String field, PlanetModel planetModel, double latitude, double longitude, double radiusMeters)`
  Create a query for matching points within the specified distance of the supplied location.
  `static SortField`
  Geo3DDocValuesField.`newDistanceSort(String field, double latitude, double longitude, double maxRadiusMeters, PlanetModel planetModel)`
  Creates a SortField for sorting by distance within a circle.
  `static Query`
  Geo3DPoint.`newLargePolygonQuery(String field, PlanetModel planetModel, Polygon... polygons)`
  Create a query for matching a large polygon.
  `static SortField`
  Geo3DDocValuesField.`newOutsideBoxSort(String field, double minLatitude, double maxLatitude, double minLongitude, double maxLongitude, PlanetModel planetModel)`
  Creates a SortField for sorting by outside distance from a box.
  `static SortField`
  Geo3DDocValuesField.`newOutsideDistanceSort(String field, double latitude, double longitude, double maxRadiusMeters, PlanetModel planetModel)`
  Creates a SortField for sorting by outside distance from a circle.
  `static SortField`
  Geo3DDocValuesField.`newOutsideLargePolygonSort(String field, PlanetModel planetModel, Polygon... polygons)`
  Creates a SortField for sorting by outside distance from a large polygon.
  `static SortField`
  Geo3DDocValuesField.`newOutsidePathSort(String field, double[] pathLatitudes, double[] pathLongitudes, double pathWidthMeters, PlanetModel planetModel)`
  Creates a SortField for sorting by outside distance from a path.
  `static SortField`
  Geo3DDocValuesField.`newOutsidePolygonSort(String field, PlanetModel planetModel, Polygon... polygons)`
  Creates a SortField for sorting by outside distance from a polygon.
  `static Query`
  Geo3DPoint.`newPathQuery(String field, double[] pathLatitudes, double[] pathLongitudes, double pathWidthMeters, PlanetModel planetModel)`
  Create a query for matching a path.
  `static SortField`
  Geo3DDocValuesField.`newPathSort(String field, double[] pathLatitudes, double[] pathLongitudes, double pathWidthMeters, PlanetModel planetModel)`
  Creates a SortField for sorting by distance along a path.
  `static Query`
  Geo3DPoint.`newPolygonQuery(String field, PlanetModel planetModel, Polygon... polygons)`
  Create a query for matching a polygon.
  Constructors in org.apache.lucene.spatial3d with parameters of type PlanetModel
  Modifier
  Constructor
  Description
  ``
  `Geo3DDocValuesField(String name, double x, double y, double z, PlanetModel planetModel)`
  Creates a new Geo3DDocValuesField with the specified x, y, and z
  ``
  `Geo3DDocValuesField(String name, GeoPoint point, PlanetModel planetModel)`
  Creates a new Geo3DDocValuesField with the specified x, y, and z
  ``
  `Geo3DPoint(String name, PlanetModel planetModel, double latitude, double longitude)`
  Creates a new Geo3DPoint field with the specified latitude, longitude (in degrees), given a planet model.
  ``
  `Geo3DPoint(String name, PlanetModel planetModel, double x, double y, double z)`
  Creates a new Geo3DPoint field with the specified x,y,z, and given planet model.

- ## Uses of PlanetModel in org.apache.lucene.spatial3d.geom

  Fields in org.apache.lucene.spatial3d.geom declared as PlanetModel
  Modifier and Type
  Field
  Description
  `static final PlanetModel`
  PlanetModel.`CLARKE_1866`
  Planet model corresponding to Clarke 1866 ellipsoid
  `protected final PlanetModel`
  BasePlanetObject.`planetModel`
  This is the planet model embedded in all objects derived from this class.
  `static final PlanetModel`
  PlanetModel.`SPHERE`
  Planet model corresponding to sphere.
  `static final PlanetModel`
  PlanetModel.`WGS84`
  Planet model corresponding to WGS84 ellipsoid
  Methods in org.apache.lucene.spatial3d.geom that return PlanetModel
  Modifier and Type
  Method
  Description
  `PlanetModel`
  BasePlanetObject.`getPlanetModel()`
  `PlanetModel`
  PlanetObject.`getPlanetModel()`
  Returns the `PlanetModel` provided when this shape was created.
  Methods in org.apache.lucene.spatial3d.geom with parameters of type PlanetModel
  Modifier and Type
  Method
  Description
  `Bounds`
  Bounds.`addHorizontalPlane(PlanetModel planetModel, double latitude, Plane horizontalPlane, Membership... bounds)`
  Add a horizontal plane to the bounds description.
  `Bounds`
  LatLonBounds.`addHorizontalPlane(PlanetModel planetModel, double latitude, Plane horizontalPlane, Membership... bounds)`
  `Bounds`
  XYZBounds.`addHorizontalPlane(PlanetModel planetModel, double latitude, Plane horizontalPlane, Membership... bounds)`
  Add a horizontal plane to the bounds description.
  `Bounds`
  Bounds.`addIntersection(PlanetModel planetModel, Plane plane1, Plane plane2, Membership... bounds)`
  Add the intersection between two planes to the bounds description.
  `Bounds`
  LatLonBounds.`addIntersection(PlanetModel planetModel, Plane plane1, Plane plane2, Membership... bounds)`
  `Bounds`
  XYZBounds.`addIntersection(PlanetModel planetModel, Plane plane1, Plane plane2, Membership... bounds)`
  `Bounds`
  Bounds.`addPlane(PlanetModel planetModel, Plane plane, Membership... bounds)`
  Add a general plane to the bounds description.
  `Bounds`
  LatLonBounds.`addPlane(PlanetModel planetModel, Plane plane, Membership... bounds)`
  `Bounds`
  XYZBounds.`addPlane(PlanetModel planetModel, Plane plane, Membership... bounds)`
  `Bounds`
  Bounds.`addVerticalPlane(PlanetModel planetModel, double longitude, Plane verticalPlane, Membership... bounds)`
  Add a vertical plane to the bounds description.
  `Bounds`
  LatLonBounds.`addVerticalPlane(PlanetModel planetModel, double longitude, Plane verticalPlane, Membership... bounds)`
  `Bounds`
  XYZBounds.`addVerticalPlane(PlanetModel planetModel, double longitude, Plane verticalPlane, Membership... bounds)`
  Add a vertical plane to the bounds description.
  `double`
  Plane.`arcDistance(PlanetModel planetModel, double x, double y, double z, Membership... bounds)`
  Compute arc distance from plane to a vector.
  `double`
  Plane.`arcDistance(PlanetModel planetModel, GeoPoint v, Membership... bounds)`
  Compute arc distance from plane to a vector expressed with a `GeoPoint`.
  `double`
  ArcDistance.`computeDistance(PlanetModel planetModel, Plane plane, double x, double y, double z, Membership... bounds)`
  `double`
  ArcDistance.`computeDistance(PlanetModel planetModel, Plane plane, GeoPoint point, Membership... bounds)`
  `double`
  DistanceStyle.`computeDistance(PlanetModel planetModel, Plane plane, double x, double y, double z, Membership... bounds)`
  Compute the distance from a plane to a point.
  `default double`
  DistanceStyle.`computeDistance(PlanetModel planetModel, Plane plane, GeoPoint point, Membership... bounds)`
  Compute the distance from a plane to a point.
  `double`
  LinearDistance.`computeDistance(PlanetModel planetModel, Plane plane, double x, double y, double z, Membership... bounds)`
  `double`
  LinearDistance.`computeDistance(PlanetModel planetModel, Plane plane, GeoPoint point, Membership... bounds)`
  `double`
  LinearSquaredDistance.`computeDistance(PlanetModel planetModel, Plane plane, double x, double y, double z, Membership... bounds)`
  `double`
  LinearSquaredDistance.`computeDistance(PlanetModel planetModel, Plane plane, GeoPoint point, Membership... bounds)`
  `double`
  NormalDistance.`computeDistance(PlanetModel planetModel, Plane plane, double x, double y, double z, Membership... bounds)`
  `double`
  NormalDistance.`computeDistance(PlanetModel planetModel, Plane plane, GeoPoint point, Membership... bounds)`
  `double`
  NormalSquaredDistance.`computeDistance(PlanetModel planetModel, Plane plane, double x, double y, double z, Membership... bounds)`
  `double`
  NormalSquaredDistance.`computeDistance(PlanetModel planetModel, Plane plane, GeoPoint point, Membership... bounds)`
  `boolean`
  Plane.`crosses(PlanetModel planetModel, Plane q, GeoPoint[] notablePoints, GeoPoint[] moreNotablePoints, Membership[] bounds, Membership... moreBounds)`
  Determine whether the plane crosses another plane within the bounds provided.
  `GeoPoint[]`
  Plane.`findArcDistancePoints(PlanetModel planetModel, double arcDistanceValue, GeoPoint startPoint, Membership... bounds)`
  Locate a point that is within the specified bounds and on the specified plane, that has an arcDistance as specified from the startPoint.
  `GeoPoint[]`
  Plane.`findCrossings(PlanetModel planetModel, Plane q, Membership... bounds)`
  Find the points between two planes, where one plane crosses the other, given a set of bounds.
  `protected GeoPoint[]`
  Plane.`findCrossings(PlanetModel planetModel, Plane q, Membership[] bounds, Membership[] moreBounds)`
  Find the points between two planes, where one plane crosses the other, given a set of bounds.
  `GeoPoint[]`
  ArcDistance.`findDistancePoints(PlanetModel planetModel, double distanceValue, GeoPoint startPoint, Plane plane, Membership... bounds)`
  `GeoPoint[]`
  DistanceStyle.`findDistancePoints(PlanetModel planetModel, double distanceValue, GeoPoint startPoint, Plane plane, Membership... bounds)`
  Find a GeoPoint, at a specified distance from a starting point, within the specified bounds.
  `GeoPoint[]`
  LinearDistance.`findDistancePoints(PlanetModel planetModel, double distanceValue, GeoPoint startPoint, Plane plane, Membership... bounds)`
  `GeoPoint[]`
  LinearSquaredDistance.`findDistancePoints(PlanetModel planetModel, double distanceValue, GeoPoint startPoint, Plane plane, Membership... bounds)`
  `GeoPoint[]`
  NormalDistance.`findDistancePoints(PlanetModel planetModel, double distanceValue, GeoPoint startPoint, Plane plane, Membership... bounds)`
  `GeoPoint[]`
  NormalSquaredDistance.`findDistancePoints(PlanetModel planetModel, double distanceValue, GeoPoint startPoint, Plane plane, Membership... bounds)`
  `protected void`
  Plane.`findIntersectionBounds(PlanetModel planetModel, Bounds boundsInfo, Plane q, Membership... bounds)`
  Record intersection points for planes with error bounds.
  `GeoPoint[]`
  Plane.`findIntersections(PlanetModel planetModel, Plane q, Membership... bounds)`
  Find the intersection points between two planes, given a set of bounds.
  `protected GeoPoint[]`
  Plane.`findIntersections(PlanetModel planetModel, Plane q, Membership[] bounds, Membership[] moreBounds)`
  Find the intersection points between two planes, given a set of bounds.
  `double`
  ArcDistance.`findMaximumArcDistance(PlanetModel planetModel, double distanceValue)`
  `double`
  DistanceStyle.`findMaximumArcDistance(PlanetModel planetModel, double distanceValue)`
  Given a distance metric, find the maximum arc distance represented by the distance metric.
  `double`
  LinearDistance.`findMaximumArcDistance(PlanetModel planetModel, double distanceValue)`
  `double`
  LinearSquaredDistance.`findMaximumArcDistance(PlanetModel planetModel, double distanceValue)`
  `double`
  NormalDistance.`findMaximumArcDistance(PlanetModel planetModel, double distanceValue)`
  `double`
  NormalSquaredDistance.`findMaximumArcDistance(PlanetModel planetModel, double distanceValue)`
  `double`
  ArcDistance.`findMinimumArcDistance(PlanetModel planetModel, double distanceValue)`
  `double`
  DistanceStyle.`findMinimumArcDistance(PlanetModel planetModel, double distanceValue)`
  Given a distance metric, find the minimum arc distance represented by that distance metric.
  `double`
  LinearDistance.`findMinimumArcDistance(PlanetModel planetModel, double distanceValue)`
  `double`
  LinearSquaredDistance.`findMinimumArcDistance(PlanetModel planetModel, double distanceValue)`
  `double`
  NormalDistance.`findMinimumArcDistance(PlanetModel planetModel, double distanceValue)`
  `double`
  NormalSquaredDistance.`findMinimumArcDistance(PlanetModel planetModel, double distanceValue)`
  `GeoPoint`
  Plane.`getSampleIntersectionPoint(PlanetModel planetModel, Plane q)`
  Find a sample point on the intersection between two planes and the world.
  `GeoPoint[]`
  Plane.`interpolate(PlanetModel planetModel, GeoPoint start, GeoPoint end, double[] proportions)`
  Find points on the boundary of the intersection of a plane and the unit sphere, given a starting point, and ending point, and a list of proportions of the arc (e.g.
  `boolean`
  Plane.`intersects(PlanetModel planetModel, Plane q, GeoPoint[] notablePoints, GeoPoint[] moreNotablePoints, Membership[] bounds, Membership... moreBounds)`
  Determine whether the plane intersects another plane within the bounds provided.
  `boolean`
  XYZBounds.`isLargestMaxX(PlanetModel planetModel)`
  Return true if maxX is as large as the planet model allows.
  `boolean`
  XYZBounds.`isLargestMaxY(PlanetModel planetModel)`
  Return true if maxY is as large as the planet model allows.
  `boolean`
  XYZBounds.`isLargestMaxZ(PlanetModel planetModel)`
  Return true if maxZ is as large as the planet model allows.
  `boolean`
  XYZBounds.`isSmallestMinX(PlanetModel planetModel)`
  Return true if minX is as small as the planet model allows.
  `boolean`
  XYZBounds.`isSmallestMinY(PlanetModel planetModel)`
  Return true if minY is as small as the planet model allows.
  `boolean`
  XYZBounds.`isSmallestMinZ(PlanetModel planetModel)`
  Return true if minZ is as small as the planet model allows.
  `double`
  Plane.`linearDistance(PlanetModel planetModel, double x, double y, double z, Membership... bounds)`
  Compute linear distance from plane to a vector.
  `double`
  Plane.`linearDistance(PlanetModel planetModel, GeoPoint v, Membership... bounds)`
  Compute linear distance from plane to a vector.
  `double`
  Plane.`linearDistanceSquared(PlanetModel planetModel, double x, double y, double z, Membership... bounds)`
  Compute linear distance squared from plane to a vector.
  `double`
  Plane.`linearDistanceSquared(PlanetModel planetModel, GeoPoint v, Membership... bounds)`
  Compute linear distance squared from plane to a vector.
  `static GeoCircle`
  GeoCircleFactory.`makeExactGeoCircle(PlanetModel planetModel, double latitude, double longitude, double radius, double accuracy)`
  Create an GeoCircle from a center, a radius and a desired accuracy.
  `static GeoArea`
  GeoAreaFactory.`makeGeoArea(PlanetModel planetModel, double topLat, double bottomLat, double leftLon, double rightLon)`
  Create a GeoArea of the right kind given the specified bounds.
  `static GeoArea`
  GeoAreaFactory.`makeGeoArea(PlanetModel planetModel, double minX, double maxX, double minY, double maxY, double minZ, double maxZ)`
  Create a GeoArea of the right kind given (x,y,z) bounds.
  `static GeoBBox`
  GeoBBoxFactory.`makeGeoBBox(PlanetModel planetModel, double topLat, double bottomLat, double leftLon, double rightLon)`
  Create a geobbox of the right kind given the specified bounds.
  `static GeoBBox`
  GeoBBoxFactory.`makeGeoBBox(PlanetModel planetModel, LatLonBounds bounds)`
  Create a geobbox of the right kind given the specified `LatLonBounds`.
  `static GeoCircle`
  GeoCircleFactory.`makeGeoCircle(PlanetModel planetModel, double latitude, double longitude, double cutoffAngle)`
  Create a GeoCircle from a center and a cutoff angle.
  `static GeoPolygon`
  GeoPolygonFactory.`makeGeoConcavePolygon(PlanetModel planetModel, List<GeoPoint> pointList)`
  Create a GeoConcavePolygon using the specified points.
  `static GeoPolygon`
  GeoPolygonFactory.`makeGeoConcavePolygon(PlanetModel planetModel, List<GeoPoint> pointList, List<GeoPolygon> holes)`
  Create a GeoConcavePolygon using the specified points and holes.
  `static GeoPolygon`
  GeoPolygonFactory.`makeGeoConvexPolygon(PlanetModel planetModel, List<GeoPoint> pointList)`
  Create a GeoConvexPolygon using the specified points.
  `static GeoPolygon`
  GeoPolygonFactory.`makeGeoConvexPolygon(PlanetModel planetModel, List<GeoPoint> pointList, List<GeoPolygon> holes)`
  Create a GeoConvexPolygon using the specified points and holes.
  `static GeoPath`
  GeoPathFactory.`makeGeoPath(PlanetModel planetModel, double maxCutoffAngle, GeoPoint[] pathPoints)`
  Create a GeoPath of the right kind given the specified information.
  `static GeoPointShape`
  GeoPointShapeFactory.`makeGeoPointShape(PlanetModel planetModel, double lat, double lon)`
  Create a GeoPointShape with the provided information.
  `static GeoPolygon`
  GeoPolygonFactory.`makeGeoPolygon(PlanetModel planetModel, List<GeoPoint> pointList)`
  Create a GeoPolygon using the specified points and holes, using order to determine siding of the polygon.
  `static GeoPolygon`
  GeoPolygonFactory.`makeGeoPolygon(PlanetModel planetModel, List<GeoPoint> pointList, List<GeoPolygon> holes)`
  Create a GeoPolygon using the specified points and holes, using order to determine siding of the polygon.
  `static GeoPolygon`
  GeoPolygonFactory.`makeGeoPolygon(PlanetModel planetModel, List<GeoPoint> pointList, List<GeoPolygon> holes, double leniencyValue)`
  Create a GeoPolygon using the specified points and holes, using order to determine siding of the polygon.
  `static GeoPolygon`
  GeoPolygonFactory.`makeGeoPolygon(PlanetModel planetModel, GeoPolygonFactory.PolygonDescription description)`
  Create a GeoPolygon using the specified points and holes, using order to determine siding of the polygon.
  `static GeoPolygon`
  GeoPolygonFactory.`makeGeoPolygon(PlanetModel planetModel, GeoPolygonFactory.PolygonDescription description, double leniencyValue)`
  Create a GeoPolygon using the specified points and holes, using order to determine siding of the polygon.
  `static GeoPolygon`
  GeoS2ShapeFactory.`makeGeoS2Shape(PlanetModel planetModel, GeoPoint point1, GeoPoint point2, GeoPoint point3, GeoPoint point4)`
  Creates a convex polygon with 4 planes by providing 4 points in CCW.
  `static GeoPolygon`
  GeoPolygonFactory.`makeLargeGeoPolygon(PlanetModel planetModel, List<GeoPolygonFactory.PolygonDescription> shapesList)`
  Create a large GeoPolygon.
  `static XYZSolid`
  XYZSolidFactory.`makeXYZSolid(PlanetModel planetModel, double minX, double maxX, double minY, double maxY, double minZ, double maxZ)`
  Create a XYZSolid of the right kind given (x,y,z) bounds.
  `static XYZSolid`
  XYZSolidFactory.`makeXYZSolid(PlanetModel planetModel, XYZBounds bounds)`
  Create a XYZSolid of the right kind given (x,y,z) bounds.
  `Bounds`
  Bounds.`noBound(PlanetModel planetModel)`
  Signal that there is no bound whatsoever.
  `Bounds`
  LatLonBounds.`noBound(PlanetModel planetModel)`
  `Bounds`
  XYZBounds.`noBound(PlanetModel planetModel)`
  `static <T extends SerializableObject>
  T[]`
  SerializableObject.`readHeterogeneousArray(PlanetModel planetModel, InputStream inputStream, Class<T> clazz)`
  Read an array.
  `static <T extends SerializableObject>
  T[]`
  SerializableObject.`readHomogeneousArray(PlanetModel planetModel, InputStream inputStream, Class<T> clazz)`
  Read an array.
  `static SerializableObject`
  SerializableObject.`readObject(PlanetModel planetModel, InputStream inputStream)`
  Read an object from a stream (for objects that need a PlanetModel).
  `static SerializableObject`
  SerializableObject.`readObject(PlanetModel planetModel, InputStream inputStream, Class<?> clazz)`
  Instantiate a serializable object from a stream.
  `static GeoPoint[]`
  SerializableObject.`readPointArray(PlanetModel planetModel, InputStream inputStream)`
  Read a point array.
  `static GeoPolygon[]`
  SerializableObject.`readPolygonArray(PlanetModel planetModel, InputStream inputStream)`
  Read a polygon array.
  `void`
  Plane.`recordBounds(PlanetModel planetModel, LatLonBounds boundsInfo, Membership... bounds)`
  Accumulate bounds information for this plane, intersected with the unit sphere.
  `void`
  Plane.`recordBounds(PlanetModel planetModel, LatLonBounds boundsInfo, Plane p, Membership... bounds)`
  Accumulate bounds information for this plane, intersected with another plane and the world.
  `void`
  Plane.`recordBounds(PlanetModel planetModel, XYZBounds boundsInfo, Membership... bounds)`
  Accumulate (x,y,z) bounds information for this plane, intersected with the unit sphere.
  `void`
  Plane.`recordBounds(PlanetModel planetModel, XYZBounds boundsInfo, Plane p, Membership... bounds)`
  Accumulate (x,y,z) bounds information for this plane, intersected with another and the world.
  `protected static GeoPoint`
  Plane.`reverseModify(PlanetModel planetModel, Vector point, double transX, double transY, double transZ, double sinRA, double cosRA, double sinHA, double cosHA)`
  Reverse modify a point to produce a GeoPoint in normal space.
  Constructors in org.apache.lucene.spatial3d.geom with parameters of type PlanetModel
  Modifier
  Constructor
  Description
  ``
  `BasePlanetObject(PlanetModel planetModel)`
  Constructor creating class instance given a planet model.
  ``
  `GeoBaseBounds(PlanetModel planetModel)`
  Constructor.
  ``
  `GeoBaseCompositeShape(PlanetModel planetModel)`
  Constructor.
  ``
  `GeoBaseCompositeShape(PlanetModel planetModel, InputStream inputStream, Class<T> clazz)`
  Constructor for deserialization.
  ``
  `GeoBaseDistanceShape(PlanetModel planetModel)`
  Constructor.
  ``
  `GeoBaseMembershipShape(PlanetModel planetModel)`
  Constructor.
  ``
  `GeoBaseShape(PlanetModel planetModel)`
  Constructor.
  ``
  `GeoCompositeAreaShape(PlanetModel planetModel)`
  Constructor.
  ``
  `GeoCompositeAreaShape(PlanetModel planetModel, InputStream inputStream)`
  Constructor for deserialization.
  ``
  `GeoCompositeMembershipShape(PlanetModel planetModel)`
  Constructor.
  ``
  `GeoCompositeMembershipShape(PlanetModel planetModel, InputStream inputStream)`
  Constructor for deserialization.
  ``
  `GeoCompositePolygon(PlanetModel planetModel)`
  Constructor.
  ``
  `GeoCompositePolygon(PlanetModel planetModel, InputStream inputStream)`
  Constructor for deserialization.
  ``
  `GeoDegenerateVerticalLine(PlanetModel planetModel, double topLat, double bottomLat, double longitude)`
  Accepts only values in the following ranges: lat: `-PI/2 -> PI/2`, longitude: `-PI -> PI`
  ``
  `GeoDegenerateVerticalLine(PlanetModel planetModel, InputStream inputStream)`
  Constructor for deserialization.
  ``
  `GeoPoint(PlanetModel planetModel, double lat, double lon)`
  Construct a GeoPoint from a latitude/longitude pair.
  ``
  `GeoPoint(PlanetModel planetModel, double sinLat, double sinLon, double cosLat, double cosLon)`
  Construct a GeoPoint from the trig functions of a lat and lon pair.
  ``
  `GeoPoint(PlanetModel planetModel, double sinLat, double sinLon, double cosLat, double cosLon, double lat, double lon)`
  Construct a GeoPoint from the trig functions of a lat and lon pair.
  ``
  `GeoPoint(PlanetModel planetModel, InputStream inputStream)`
  Construct a GeoPoint from an input stream.
  ``
  `Plane(PlanetModel planetModel, double sinLat)`
  Construct a horizontal plane at a specified Z.
  ``
  `SidedPlane(Vector p, PlanetModel planetModel, double sinLat)`
  Construct a sided plane from a point and a Z coordinate.