public class TacticalGraphicUtil
extends java.lang.Object
Constructor and Description |
---|
TacticalGraphicUtil() |
Modifier and Type | Method and Description |
---|---|
static java.util.List<Position> |
asPositionList(Globe globe,
Vec4... points)
Convert a list of cartesian points to Positions.
|
static Vec4 |
bezierCurve(Vec4[] controlPoints,
double t,
int[] coefficients)
Compute a point along a Bezier curve defined by a list of control points.
|
protected static void |
binomial(int n,
int[] coefficients)
Compute binomial coefficients for a polynomial of order n.
|
static java.lang.Object[] |
getAltitudeRange(TacticalGraphic graphic)
Get the altitude range from the graphic's modifiers.
|
static java.lang.Object[] |
getDateRange(TacticalGraphic graphic)
Get the date range from a graphic's modifiers.
|
static void |
placeLabelsOnPath(DrawContext dc,
java.lang.Iterable<? extends Position> positions,
TacticalGraphicLabel label1,
TacticalGraphicLabel label2,
double distance)
Position one or two labels some distance along the path.
|
public static java.util.List<Position> asPositionList(Globe globe, Vec4... points)
globe
- Globe used to convert points to positions.points
- Points to convert.public static Vec4 bezierCurve(Vec4[] controlPoints, double t, int[] coefficients)
Vec4[] controlPoints = ... // Determine control points appropriate for your curve ListcurvePositions = new ArrayList (); int[] coefficients = new int[controlPoints.length]; int intervals = 32; double delta = 1.0 / intervals; for (int i = 0; i < intervals; i++) { double t = i * delta; Vec4 pt = TacticalGraphicUtil.bezierCurve(controlPoints, t, coefficients); Position pos = globe.computePositionFromPoint(p); curvePositions.add(pos); }
controlPoints
- Control points for the curve.t
- Interpolation parameter in the range [0..1].coefficients
- Array to store binomial coefficients between invocations of this function. On the first
invocation, pass an int[] with length equal to the controlPoints array. bezierCurve will
populate the array on the first invocation, and reuse the computed values on subsequent
invocations.protected static void binomial(int n, int[] coefficients)
n
- Order of polynomial for which to calculate coefficients.coefficients
- Array to receive coefficients. The length of this array must be n + 1.public static java.lang.Object[] getAltitudeRange(TacticalGraphic graphic)
AVKey.ALTITUDE
modifier, and returns the results as a two element array. If the value of the
modifier is an Iterable
, then this method returns the first two values of the iteration. If the
value of the modifier is a single object, this method returns an array containing that object and
null
.graphic
- Graphic from which to retrieve dates.public static java.lang.Object[] getDateRange(TacticalGraphic graphic)
AVKey.DATE_TIME
modifier, and returns the results as a two element array. If the value of the modifier is an
Iterable
, then this method returns the first two values of the iteration. If the value of the
modifier is a single object, this method returns an array containing that object and null
.graphic
- Graphic from which to retrieve dates.public static void placeLabelsOnPath(DrawContext dc, java.lang.Iterable<? extends Position> positions, TacticalGraphicLabel label1, TacticalGraphicLabel label2, double distance)
dc
- Current draw context.positions
- Positions that describe the path.label1
- First label to position.label2
- Second label to position. (May be null.)distance
- Distance along the path at which to position the labels.