public abstract class FastMarcherBase
extends java.lang.Object
Constructor and Description |
---|
FastMarcherBase(int dataSize,
FastMarcherUtility utility)
Creates a FastMarcher object for a given data size, and uses the
supplied utility object to connect to data for finding neighbours and
computing distances
|
Modifier and Type | Method and Description |
---|---|
void |
clear()
Removes internal distance and voronoi arrays so they will be re-created on
the next call to @{link
march(int) |
static IndexedBinaryHeap |
createDistanceHeap(double[] distance)
Creates a binary heap that is useful for finding the farthest point
in the supplied array of distances.
|
double[] |
getDistance()
Retrieves a vector of the current distances
|
IndexedBinaryHeap |
getDistanceHeap()
Retrieves an associated distance binary heap.
|
int |
getFarthest()
Gets the index of the farthest point, -1 if distances are not
initialized
|
int[] |
getVoronoi()
Gets the voronoi region assignments.
|
void |
initializeArrays()
Creates distance and voronoi arrays if required, and fills them with their
default values (distance=infinity, voronoi=-1).
|
void |
march(int start)
Performs the fast marching algorithm starting at data point with index
start . |
void |
march(int[] start)
Performs the fast marching algorithm starting at points with indices given
in
start . |
void |
march(int[] start,
int[] voronoi,
double[] distance)
Performs the fast marching algorithm starting at data points with indices
given by
start , using the supplied voronoi and distance arrays
instead of this object's internal version. |
void |
march(int start,
int[] voronoi,
double[] distance)
Performs the fast marching algorithm starting at data point with index
start , using the supplied voronoi and distance arrays instead of
this object's internal versions. |
void |
reset()
Creates and/or re-initializes internal set of distance and voronoi arrays
|
void |
setDistance(double[] d)
Sets the distance vector to use
|
void |
setDistanceHeap(IndexedBinaryHeap distHeap)
Useful for farthest point sampling, sets a heap to be updated every time a
distance value is assigned.
|
void |
setVoronoi(int[] v)
Sets the vector to be used to hold voronoi indicies
|
void |
startmarch(int start) |
void |
startmarch(int[] start)
Performs the fast marching algorithm starting at data points with indices
given by
start , using the supplied voronoi and distance arrays
instead of this object's internal version. |
int |
step() |
public FastMarcherBase(int dataSize, FastMarcherUtility utility)
public static IndexedBinaryHeap createDistanceHeap(double[] distance)
public void setDistanceHeap(IndexedBinaryHeap distHeap)
distHeap
- distance heappublic IndexedBinaryHeap getDistanceHeap()
public int getFarthest()
public double[] getDistance()
public void setDistance(double[] d)
public int[] getVoronoi()
public void setVoronoi(int[] v)
v
- voronoi index vectorpublic void initializeArrays()
public void march(int[] start)
start
.public void march(int start)
start
.public void march(int start, int[] voronoi, double[] distance)
start
, using the supplied voronoi and distance arrays instead of
this object's internal versions.public void march(int[] start, int[] voronoi, double[] distance)
start
, using the supplied voronoi and distance arrays
instead of this object's internal version.public void startmarch(int start)
public void startmarch(int[] start)
start
, using the supplied voronoi and distance arrays
instead of this object's internal version.public int step()
public void clear()
march(int)
public void reset()