Package skyview.geometry.projecter
Class HpxStraddle
java.lang.Object
skyview.geometry.projecter.HpxStraddle
public class HpxStraddle
extends java.lang.Object
This class handles straddling in the Healpix
projection. It is intended to handle small pixel straddling,
not so much lines more than a few degrees in size.
Recall the normalized version of the HEALPix projection
where there are 12 unit tiles arranged so:
3
4 0
8 5 1
9 6 2
10 7
11
The top right corners of tiles 3, 0, 1 and 2 join at the north pole.
The bottom left corners of tiles 8,9,10,11 join at the south pole. The
line on the right edge of tile 3 is identified with the line at the top edge
of tile 0 and so forth. If we simply join lines in in the projection naively
the line can easily leave and reenter the valid legion because of this
jaggedness near the pole. The other straddling is similar to what we
see in the Car projection since the left edge of tile 3 is identified with the right
edge of tile 7 and similarly for tiles 8 and 11.

Constructor Summary
Constructors Constructor Description HpxStraddle(Hpx proj)
Create a straddler associated with the projection 
Method Summary
Modifier and Type Method Description int[]
getStraddleStats()
Get the statistics on the kind of straddles processed by this objects as an array of {north, south, edge}boolean
segmentStraddle(double[] x1, double[] x2)
Does the line between the two points straddle?boolean
straddle(double[][] points)
Does any segment in this sequence of points stadddle.double[][][]
straddleComponents(double[][] vertices)
Given figure which may straddle, return a set of figures which do not.

Constructor Details

HpxStraddle
Create a straddler associated with the projection


Method Details

getStraddleStats
public int[] getStraddleStats()Get the statistics on the kind of straddles processed by this objects as an array of {north, south, edge} 
straddle
public boolean straddle(double[][] points)Does any segment in this sequence of points stadddle. Note that the points array is input as points[2][n] since we want to be able to extract x/y arrays. 
segmentStraddle
public boolean segmentStraddle(double[] x1, double[] x2)Does the line between the two points straddle? 
straddleComponents
public double[][][] straddleComponents(double[][] vertices)Given figure which may straddle, return a set of figures which do not. Note that figures are given in [2][n] arrays (i.e, arrays of x and y separately) The returned array is [m][2][*] where m is the number of subfigures the input was broken into, each of which can have a variable number of vertices (>=3).
