uk.ac.starlink.ast
Class Polygon
java.lang.Object
uk.ac.starlink.ast.AstObject
uk.ac.starlink.ast.Mapping
uk.ac.starlink.ast.Frame
uk.ac.starlink.ast.Region
uk.ac.starlink.ast.Polygon
public class Polygon
- extends Region
Java interface to the AST Polygon class
- a polygonal region within a 2-dimensional Frame.
The Polygon class implements a polygonal area, defined by a
collection of vertices, within a 2-dimensional Frame. The vertices
are connected together by geodesic curves within the encapsulated Frame.
For instance, if the encapsulated Frame is a simple Frame then the
geodesics will be straight lines, but if the Frame is a SkyFrame then
the geodesics will be great circles. Note, the vertices must be
supplied in an order such that the inside of the polygon is to the
left of the boundary as the vertices are traversed. Supplying them
in the reverse order will effectively negate the polygon.
Within a SkyFrame, neighbouring vertices are always joined using the
shortest path. Thus if an edge of 180 degrees or more in length is
required, it should be split into section each of which is less
than 180 degrees. The closed path joining all the vertices in order
will divide the celestial sphere into two disjoint regions. The
inside of the polygon is the region which is circled in an
anti-clockwise manner (when viewed from the inside of the celestial
sphere) when moving through the list of vertices in the order in
which they were supplied when the Polygon was created (i.e. the
inside is to the left of the boundary when moving through the
vertices in the order supplied).
Licence
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public Licence as
published by the Free Software Foundation; either version 2 of
the Licence, or (at your option) any later version.
This program is distributed in the hope that it will be
useful,but WITHOUT ANY WARRANTY; without even the implied
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the GNU General Public Licence for more details.
You should have received a copy of the GNU General Public Licence
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street,Fifth Floor, Boston, MA
02110-1301, USA
- See Also:
- AST Polygon
Constructor Summary |
Polygon(Frame frame,
int npnt,
double[] xcoords,
double[] ycoords,
Region unc)
Create a Polygon. |
Methods inherited from class uk.ac.starlink.ast.Region |
getAdaptive, getBounded, getClosed, getFillFactor, getMeshSize, getNegated, getRegionBounds, getRegionFrame, getRegionPoints, getUnc, mapRegion, mask, maskB, maskD, maskF, maskI, maskL, maskS, negate, overlap, setAdaptive, setClosed, setFillFactor, setMeshSize, setNegated, setUnc, showMesh |
Methods inherited from class uk.ac.starlink.ast.Frame |
angle, axAngle, axDistance, axOffset, convert, distance, findFrame, format, getActiveUnit, getAlignSystem, getBottom, getDigits, getDigits, getDirection, getDomain, getDut1, getEpoch, getFormat, getLabel, getMatchEnd, getMaxAxes, getMinAxes, getNaxes, getNormUnit, getObsLat, getObsLon, getPermute, getPreserveAxes, getSymbol, getSystem, getTitle, getTop, getUnit, intersect, norm, offset, offset2, permAxes, pickAxes, resolve, setActiveUnit, setAlignSystem, setBottom, setDigits, setDigits, setDirection, setDomain, setDut1, setEpoch, setEpoch, setFormat, setLabel, setMatchEnd, setMaxAxes, setMinAxes, setObsLat, setObsLon, setPermute, setPreserveAxes, setSymbol, setSystem, setTitle, setTop, setUnit, unformat |
Methods inherited from class uk.ac.starlink.ast.Mapping |
decompose, getInvert, getNin, getNout, getReport, getTranForward, getTranInverse, invert, linearApprox, mapBox, mapSplit, rate, rebin, rebinD, rebinF, rebinI, resample, resampleB, resampleD, resampleF, resampleI, resampleL, resampleS, setInvert, setReport, simplify, tran1, tran2, tranGrid, tranN, tranP |
Methods inherited from class uk.ac.starlink.ast.AstObject |
annul, clear, copy, delete, equals, finalize, getAstConstantI, getB, getC, getD, getF, getI, getID, getIdent, getL, getNobject, getObjSize, getRefCount, hashCode, isThreaded, reportVersions, sameObject, set, setB, setC, setD, setF, setI, setID, setIdent, setL, show, test, tune |
Polygon
public Polygon(Frame frame,
int npnt,
double[] xcoords,
double[] ycoords,
Region unc)
- Create a Polygon.
This function creates a new Polygon object and optionally initialises
its attributes.
The Polygon class implements a polygonal area, defined by a
collection of vertices, within a 2-dimensional Frame. The vertices
are connected together by geodesic curves within the encapsulated Frame.
For instance, if the encapsulated Frame is a simple Frame then the
geodesics will be straight lines, but if the Frame is a SkyFrame then
the geodesics will be great circles. Note, the vertices must be
supplied in an order such that the inside of the polygon is to the
left of the boundary as the vertices are traversed. Supplying them
in the reverse order will effectively negate the polygon.
Within a SkyFrame, neighbouring vertices are always joined using the
shortest path. Thus if an edge of 180 degrees or more in length is
required, it should be split into section each of which is less
than 180 degrees. The closed path joining all the vertices in order
will divide the celestial sphere into two disjoint regions. The
inside of the polygon is the region which is circled in an
anti-clockwise manner (when viewed from the inside of the celestial
sphere) when moving through the list of vertices in the order in
which they were supplied when the Polygon was created (i.e. the
inside is to the left of the boundary when moving through the
vertices in the order supplied).
Notes
- A null Object pointer (AST__NULL) will be returned if this
function is invoked with the AST error status set, or if it
should fail for any reason.
Status Handling
The protected interface to this function includes an extra
parameter at the end of the parameter list descirbed above. This
parameter is a pointer to the integer inherited status
variable: "int *status".
- Parameters:
frame
- A pointer to the Frame in which the region is defined. It must
have exactly 2 axes. A deep copy is taken of the supplied Frame.
This means that any subsequent changes made to the Frame using the
supplied pointer will have no effect the Region.npnt
- The number of points in the Region.xcoords
- npnt
-elementycoords
- npnt
-elementunc
- An optional pointer to an existing Region which specifies the
uncertainties associated with the boundary of the Box being created.
The uncertainty in any point on the boundary of the Box is found by
shifting the supplied "uncertainty" Region so that it is centred at
the boundary point being considered. The area covered by the
shifted uncertainty Region then represents the uncertainty in the
boundary position. The uncertainty is assumed to be the same for
all points.
If supplied, the uncertainty Region must be of a class for which
all instances are centro-symetric (e.g. Box, Circle, Ellipse, etc.)
or be a Prism containing centro-symetric component Regions. A deep
copy of the supplied Region will be taken, so subsequent changes to
the uncertainty Region using the supplied pointer will have no
effect on the created Box. Alternatively,
a NULL Object pointer
may be supplied, in which case a default uncertainty is used
equivalent to a box 1.0E-6 of the size of the Box being created.
The uncertainty Region has two uses: 1) when the
astOverlap
function compares two Regions for equality the uncertainty
Region is used to determine the tolerance on the comparison, and 2)
when a Region is mapped into a different coordinate system and
subsequently simplified (using
astSimplify),
the uncertainties are used to determine if the transformed boundary
can be accurately represented by a specific shape of Region.
- Throws:
AstException
- if an error occurred in the AST library
Copyright © 2019 Central Laboratory of the Research Councils. All Rights Reserved.