Package cds.healpix.common.sphgeom
Class Polygon
java.lang.Object
cds.healpix.common.sphgeom.Polygon
Class defining (and storing the vertices of) a polygon on the unit sphere.
The original 2D method comes from https://wrf.ecse.rpi.edu//Research/Short_Notes/pnpoly.html
We adapted it here to the case of the sphere.
Remark: in the case of polygons having all their points on a semi-hemisphere, we could have use
the classical 2D algorithm on the points projected on a plane by the Gnomonic projections
(centered to the center of the MEC). In the gnomonic projection, all great circles arc are
strait lines.
- Author:
- F.-X. Pineau
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enum
Defines the method used to know if the south pole is in the polygon or in its complement. -
Constructor Summary
ConstructorsConstructorDescriptionCreate a new polygon from the given list of vertices, using thePolygon.ContainsSouthPoleComputer.BASIC
method to define its inside and outside.Polygon
(CooXYZ[] polyVertices, Polygon.ContainsSouthPoleComputer cspc) Create a new polygon from the given list of vertices, using the given method to define its inside and outside. -
Method Summary
Modifier and TypeMethodDescriptionboolean
Returnstrue
if the polygon contain the point p.boolean
intersectSegAB
(CooXYZ a, CooXYZ b) Returnstrue
if an edge of the polygone intersects the line defined by the two given points.int
Returns the number of vertices the polygon contains.vertex
(int vertexIndex) Returns the vertex located at the given index in the polygin vertex list.
-
Constructor Details
-
Polygon
Create a new polygon from the given list of vertices, using thePolygon.ContainsSouthPoleComputer.BASIC
method to define its inside and outside.- Parameters:
polyVertices
- vertices defining the polygon
-
Polygon
Create a new polygon from the given list of vertices, using the given method to define its inside and outside. WARNING: so far the algorithm compute a minimum encoding cone and methods other than the default,Polygon.ContainsSouthPoleComputer.STD_FXP
andPolygon.ContainsSouthPoleComputer.STD_IVOA
may not work properly!!- Parameters:
polyVertices
- vertices defining the polygoncspc
- method used to defined the inside and the outside of the polygon. So far do not usePolygon.ContainsSouthPoleComputer.STD_FXP
andPolygon.ContainsSouthPoleComputer.STD_IVOA
.
-
-
Method Details
-
nVertices
public int nVertices()Returns the number of vertices the polygon contains.- Returns:
- the number of vertices the polygon contains.
-
vertex
Returns the vertex located at the given index in the polygin vertex list.- Parameters:
vertexIndex
- index of the vertex we want to access (in [0, nVertices[- Returns:
- the vertex located at the given index in the polygin vertex list.
-
contains
Returnstrue
if the polygon contain the point p.- Parameters:
p
- point to test- Returns:
true
if the polygon contain the point p.
-
intersectSegAB
Returnstrue
if an edge of the polygone intersects the line defined by the two given points.- Parameters:
a
- first segment pointb
- second segment point- Returns:
true
if an edge of the polygone intersects the line defined by the two given points.
-