Enum Constant and Description |
---|
CIRCLE
In an unobstructed area the FOV would be a circle.
|
CUBE
In an unobstructed area the FOV would be a cube.
|
DIAMOND
In an unobstructed area the FOV would be a diamond.
|
OCTAHEDRON
In an unobstructed area the FOV would be a octahedron.
|
ROUGH_CIRCLE
Like
CIRCLE , but always uses a rough approximation of distance instead of a more expensive (but more
accurate) Euclidean calculation. |
SPHERE
In an unobstructed area the FOV would be a sphere.
|
SQUARE
In an unobstructed area the FOV would be a square.
|
Modifier and Type | Method and Description |
---|---|
boolean |
equals2D(Radius other)
Compares two Radius enums as if they are both in a 2D plane; that is, Radius.SPHERE is treated as equal to
Radius.CIRCLE, Radius.CUBE is equal to Radius.SQUARE, and Radius.OCTAHEDRON is equal to Radius.DIAMOND.
|
OrderedSet<Coord> |
expand(int distance,
int width,
int height,
java.lang.Iterable<Coord> points)
Given an Iterable of Coord (such as a List or Set), a distance to expand outward by (using this Radius), and the
bounding height and width of the map, gets a "thickened" group of Coord as a Set where each Coord in points has
been expanded out by an amount no greater than distance.
|
Coord |
extend(Coord center,
Coord middle,
int radiusLength,
boolean surpassEdges,
int width,
int height) |
static java.util.List<Coord> |
inCircle(int centerX,
int centerY,
int radiusLength,
boolean surpassEdges,
int width,
int height)
Gets a List of all Coord points within
radiusLength of center using Euclidean measurement (making
a circle). |
static java.util.List<Coord> |
inCircle(int centerX,
int centerY,
int radiusLength,
boolean surpassEdges,
int width,
int height,
java.util.List<Coord> buf)
Gets a List of all Coord points within
radiusLength of center using Euclidean measurement (making
a circle). |
static java.util.List<Coord> |
inDiamond(int centerX,
int centerY,
int radiusLength,
boolean surpassEdges,
int width,
int height)
Gets a List of all Coord points within
radiusLength of center using Manhattan measurement (making
a diamond). |
static java.util.List<Coord> |
inDiamond(int centerX,
int centerY,
int radiusLength,
boolean surpassEdges,
int width,
int height,
java.util.List<Coord> buf)
Gets a List of all Coord points within
radiusLength of center using Manhattan measurement (making
a diamond). |
boolean |
inRange(int startx,
int starty,
int endx,
int endy,
int minRange,
int maxRange) |
static java.util.List<Coord> |
inSquare(int centerX,
int centerY,
int radiusLength,
boolean surpassEdges,
int width,
int height)
Gets a List of all Coord points within
radiusLength of center using Chebyshev measurement (making
a square). |
static java.util.List<Coord> |
inSquare(int centerX,
int centerY,
int radiusLength,
boolean surpassEdges,
int width,
int height,
java.util.List<Coord> buf)
Gets a List of all Coord points within
radiusLength of center using Chebyshev measurement (making
a square). |
Measurement |
matchingMeasurement()
Gets the appropriate
Measurement to pass to a constructor if you already have a Radius. |
Coord |
onUnitShape(double distance,
IRNG rng) |
Coord3D |
onUnitShape3D(double distance,
IRNG rng) |
OrderedSet<Coord> |
perimeter(Coord center,
int radiusLength,
boolean surpassEdges,
int width,
int height) |
java.util.List<Coord> |
pointsInside(Coord center,
int radiusLength,
boolean surpassEdges,
int width,
int height) |
java.util.List<Coord> |
pointsInside(int centerX,
int centerY,
int radiusLength,
boolean surpassEdges,
int width,
int height) |
java.util.List<Coord> |
pointsInside(int centerX,
int centerY,
int radiusLength,
boolean surpassEdges,
int width,
int height,
java.util.List<Coord> buf) |
double |
radius(Coord end) |
double |
radius(Coord start,
Coord end) |
double |
radius(double dx,
double dy) |
double |
radius(double dx,
double dy,
double dz) |
double |
radius(double startx,
double starty,
double endx,
double endy) |
double |
radius(double startx,
double starty,
double startz,
double endx,
double endy,
double endz) |
double |
radius(int dx,
int dy) |
double |
radius(int dx,
int dy,
int dz) |
double |
radius(int startx,
int starty,
int endx,
int endy) |
double |
radius(int startx,
int starty,
int startz,
int endx,
int endy,
int endz) |
int |
roughDistance(int xPos,
int yPos) |
static Radius |
valueOf(java.lang.String name)
Returns the enum constant of this type with the specified name.
|
static Radius[] |
values()
Returns an array containing the constants of this enum type, in
the order they are declared.
|
double |
volume2D(double radiusLength) |
double |
volume3D(double radiusLength) |
public static final Radius SQUARE
public static final Radius DIAMOND
public static final Radius CIRCLE
public static final Radius CUBE
public static final Radius OCTAHEDRON
public static final Radius SPHERE
public static Radius[] values()
for (Radius c : Radius.values()) System.out.println(c);
public static Radius valueOf(java.lang.String name)
name
- the name of the enum constant to be returned.java.lang.IllegalArgumentException
- if this enum type has no constant with the specified namejava.lang.NullPointerException
- if the argument is nullpublic double radius(int startx, int starty, int startz, int endx, int endy, int endz)
public double radius(double startx, double starty, double startz, double endx, double endy, double endz)
public double radius(int dx, int dy, int dz)
public double radius(double dx, double dy, double dz)
public double radius(int startx, int starty, int endx, int endy)
public double radius(Coord end)
public double radius(double startx, double starty, double endx, double endy)
public double radius(int dx, int dy)
public double radius(double dx, double dy)
public double volume2D(double radiusLength)
public double volume3D(double radiusLength)
public OrderedSet<Coord> perimeter(Coord center, int radiusLength, boolean surpassEdges, int width, int height)
public Coord extend(Coord center, Coord middle, int radiusLength, boolean surpassEdges, int width, int height)
public boolean equals2D(Radius other)
other
- the Radius to compare this topublic boolean inRange(int startx, int starty, int endx, int endy, int minRange, int maxRange)
public int roughDistance(int xPos, int yPos)
public java.util.List<Coord> pointsInside(int centerX, int centerY, int radiusLength, boolean surpassEdges, int width, int height)
public java.util.List<Coord> pointsInside(Coord center, int radiusLength, boolean surpassEdges, int width, int height)
public java.util.List<Coord> pointsInside(int centerX, int centerY, int radiusLength, boolean surpassEdges, int width, int height, java.util.List<Coord> buf)
public static java.util.List<Coord> inSquare(int centerX, int centerY, int radiusLength, boolean surpassEdges, int width, int height)
radiusLength
of center
using Chebyshev measurement (making
a square). Appends Coords to buf
if it is non-null, and returns either buf or a freshly-allocated List of
Coord. If surpassEdges
is false, which is the normal usage, this will not produce Coords with x or y less
than 0 or greater than width
or height
; if surpassEdges is true, then it can produce any Coords
in the actual radius.centerX
- the center Coord xcenterY
- the center Coord xradiusLength
- the inclusive distance from (centerX,centerY) for Coords to use in the ListsurpassEdges
- usually should be false; if true, can produce Coords with negative x/y or past width/heightwidth
- the width of the area this can place Coords (exclusive, not relative to center, usually map width)height
- the height of the area this can place Coords (exclusive, not relative to center, usually map height)public static java.util.List<Coord> inDiamond(int centerX, int centerY, int radiusLength, boolean surpassEdges, int width, int height)
radiusLength
of center
using Manhattan measurement (making
a diamond). Appends Coords to buf
if it is non-null, and returns either buf or a freshly-allocated List
of Coord. If surpassEdges
is false, which is the normal usage, this will not produce Coords with x or y
less than 0 or greater than width
or height
; if surpassEdges is true, then it can produce any
Coords in the actual radius.centerX
- the center Coord xcenterY
- the center Coord xradiusLength
- the inclusive distance from (centerX,centerY) for Coords to use in the ListsurpassEdges
- usually should be false; if true, can produce Coords with negative x/y or past width/heightwidth
- the width of the area this can place Coords (exclusive, not relative to center, usually map width)height
- the height of the area this can place Coords (exclusive, not relative to center, usually map height)public static java.util.List<Coord> inCircle(int centerX, int centerY, int radiusLength, boolean surpassEdges, int width, int height)
radiusLength
of center
using Euclidean measurement (making
a circle). Appends Coords to buf
if it is non-null, and returns either buf or a freshly-allocated List of
Coord. If surpassEdges
is false, which is the normal usage, this will not produce Coords with x or y less
than 0 or greater than width
or height
; if surpassEdges is true, then it can produce any Coords
in the actual radius.centerX
- the center Coord xcenterY
- the center Coord xradiusLength
- the inclusive distance from (centerX,centerY) for Coords to use in the ListsurpassEdges
- usually should be false; if true, can produce Coords with negative x/y or past width/heightwidth
- the width of the area this can place Coords (exclusive, not relative to center, usually map width)height
- the height of the area this can place Coords (exclusive, not relative to center, usually map height)public static java.util.List<Coord> inSquare(int centerX, int centerY, int radiusLength, boolean surpassEdges, int width, int height, java.util.List<Coord> buf)
radiusLength
of center
using Chebyshev measurement (making
a square). Appends Coords to buf
if it is non-null, and returns either buf or a freshly-allocated List of
Coord. If surpassEdges
is false, which is the normal usage, this will not produce Coords with x or y less
than 0 or greater than width
or height
; if surpassEdges is true, then it can produce any Coords
in the actual radius.centerX
- the center Coord xcenterY
- the center Coord xradiusLength
- the inclusive distance from (centerX,centerY) for Coords to use in the ListsurpassEdges
- usually should be false; if true, can produce Coords with negative x/y or past width/heightwidth
- the width of the area this can place Coords (exclusive, not relative to center, usually map width)height
- the height of the area this can place Coords (exclusive, not relative to center, usually map height)buf
- the List of Coord to append points to; may be null to create a new Listpublic static java.util.List<Coord> inDiamond(int centerX, int centerY, int radiusLength, boolean surpassEdges, int width, int height, java.util.List<Coord> buf)
radiusLength
of center
using Manhattan measurement (making
a diamond). Appends Coords to buf
if it is non-null, and returns either buf or a freshly-allocated List
of Coord. If surpassEdges
is false, which is the normal usage, this will not produce Coords with x or y
less than 0 or greater than width
or height
; if surpassEdges is true, then it can produce any
Coords in the actual radius.centerX
- the center Coord xcenterY
- the center Coord xradiusLength
- the inclusive distance from (centerX,centerY) for Coords to use in the ListsurpassEdges
- usually should be false; if true, can produce Coords with negative x/y or past width/heightwidth
- the width of the area this can place Coords (exclusive, not relative to center, usually map width)height
- the height of the area this can place Coords (exclusive, not relative to center, usually map height)buf
- the List of Coord to append points to; may be null to create a new Listpublic static java.util.List<Coord> inCircle(int centerX, int centerY, int radiusLength, boolean surpassEdges, int width, int height, java.util.List<Coord> buf)
radiusLength
of center
using Euclidean measurement (making
a circle). Appends Coords to buf
if it is non-null, and returns either buf or a freshly-allocated List of
Coord. If surpassEdges
is false, which is the normal usage, this will not produce Coords with x or y less
than 0 or greater than width
or height
; if surpassEdges is true, then it can produce any Coords
in the actual radius.centerX
- the center Coord xcenterY
- the center Coord xradiusLength
- the inclusive distance from (centerX,centerY) for Coords to use in the ListsurpassEdges
- usually should be false; if true, can produce Coords with negative x/y or past width/heightwidth
- the width of the area this can place Coords (exclusive, not relative to center, usually map width)height
- the height of the area this can place Coords (exclusive, not relative to center, usually map height)buf
- the List of Coord to append points to; may be null to create a new Listpublic OrderedSet<Coord> expand(int distance, int width, int height, java.lang.Iterable<Coord> points)
distance
- the distance, as measured by this Radius, to expand each Coord on points up towidth
- the bounding width of the map (exclusive)height
- the bounding height of the map (exclusive)points
- an Iterable (such as a List or Set) of Coord that this will make a "thickened" version ofpublic Measurement matchingMeasurement()
Measurement
to pass to a constructor if you already have a Radius.
Matches SQUARE or CUBE to CHEBYSHEV, DIAMOND or OCTAHEDRON to MANHATTAN, and CIRCLE or SPHERE to EUCLIDEAN.Measurement
that matches this; SQUARE to CHEBYSHEV, DIAMOND to MANHATTAN, etc.an equivalent method in Measurement
,
a method to do the inverse of this and get a Radius from a Measurement
Copyright © Eben Howard 2012–2022. All rights reserved.