|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object ProGAL.geom3d.complex.alphaComplex.AlphaFiltration
public class AlphaFiltration
An alpha complex for a set of d-dimensional points and a real number alpha is a subset of the Delaunay complex where all simplices that can be enclosed by an alpha-probe (a hypersphere of radius alpha), without the probe enclosing any points, are removed. The alpha-filtration is a generalization of the alpha complex that associates with each simplex the alpha value at which it enters the alpha-complex.
This class builds the three-dimensional alpha filtration. The alpha complex is easily extracted by using the
List
method. For convenience there are also methods to retrieve
only the edges, triangles and tetrahedra of the alpha complex. The alpha complex is built in the constructor of
AlphaComplex
. Lists of simplices are always returned in non-decreasing order of alpha.
The following example displays the alpha-complex of 20 random points using an alpha probe of radius 0.2.
//Generate the filtration
List<Point> pl = PointList.generatePointsInCube(20);
AlphaFiltration af = new AlphaFiltration(pl);
//Display the alpha complex
J3DScene scene = J3DScene.createJ3DSceneInFrame();
for(CTetrahedron t: af.getTetrahedra(0.2)){
scene.addShape(t, new Color(200,100,100,100));
}
It should be noted that the simplices returned by this class are all connected as if they were in a
DelaunayComplex
and if one wishes e.g. to find a component in the alpha-complex then the
breadth-first-search should be modified to only traverse simplices that enter the alpha complex 'before' the
desired alpha-value. To determine at which time a simplex enters the alpha complex the
double getInAlpha(Simplex s)
-method can be used. If the result is less than the probes radius then
the simplex is in the complex.
Constructor Summary | |
---|---|
AlphaFiltration(DelaunayComplex d3d)
Build the alpha-filtration of the specified Delaunay complex. |
|
AlphaFiltration(java.util.List<Point> pl)
Build the alpha-filtration of the specified point-list. |
Method Summary | |
---|---|
java.util.List<CTriangle> |
getAlphaShape(double alpha)
|
boolean |
getAttached(Simplex s)
|
int[][] |
getBettiNumbers()
Get the Betti-numbers of the alpha-filtration. |
int[][][] |
getBettiPersistence()
TODO: Comment |
int |
getDim(Simplex s)
|
java.util.List<CEdge> |
getEdges()
|
java.util.List<CEdge> |
getEdges(double alpha)
Get a list of edges that are part of the alpha-complex with the specified probe radius. |
double |
getInAlpha(Simplex s)
Return the probe-radius at which the simplex s enters the alpha complex. |
boolean |
getOnCH(Simplex s)
Return true iff the simplex is on the convex hull. |
java.util.List<int[]>[] |
getPairSimplices()
TODO: Comment |
java.util.List<Simplex> |
getSimplices()
|
java.util.List<Simplex> |
getSimplices(double alpha)
Get a list of simplices that are part of the alpha-complex with the specified probe radius. |
java.util.List<Triangle> |
getSurfaceTriangles(double alpha)
Returns triangles in one tetrahedron only |
java.util.List<CTetrahedron> |
getTetrahedra()
|
java.util.List<CTetrahedron> |
getTetrahedra(double alpha)
Get a list of tetrahedra that are part of the alpha-complex with the specified probe radius. |
java.util.List<CTetrahedron> |
getTetrahedra(double alphaLow,
double alphaHigh)
Get a list of tetrahedra that are part of the alpha-complex with the probe radius in a specified interval. |
java.util.List<CTriangle> |
getTriangles()
|
java.util.List<CTriangle> |
getTriangles(double alpha)
Get a list of triangles that are part of the alpha-complex with the specified probe radius. |
java.util.Set<CTetrahedron> |
getVertexHull(CVertex v)
The vertex-hull of v is the set of all tetrahedrons that has v as a corner-point. |
java.util.List<CVertex> |
getVertices()
Get a list of the vertices of the complex. |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public AlphaFiltration(java.util.List<Point> pl)
public AlphaFiltration(DelaunayComplex d3d)
Method Detail |
---|
public java.util.List<Simplex> getSimplices()
public java.util.List<CTetrahedron> getTetrahedra()
public java.util.List<CTriangle> getTriangles()
public java.util.List<CEdge> getEdges()
public java.util.List<CTetrahedron> getTetrahedra(double alpha)
public java.util.List<CTetrahedron> getTetrahedra(double alphaLow, double alphaHigh)
public java.util.List<CTriangle> getTriangles(double alpha)
public java.util.List<Triangle> getSurfaceTriangles(double alpha)
public java.util.List<CEdge> getEdges(double alpha)
public java.util.List<CVertex> getVertices()
public java.util.List<Simplex> getSimplices(double alpha)
public java.util.List<CTriangle> getAlphaShape(double alpha)
public int getDim(Simplex s)
public double getInAlpha(Simplex s)
s
enters the alpha complex.
public boolean getAttached(Simplex s)
public boolean getOnCH(Simplex s)
public java.util.Set<CTetrahedron> getVertexHull(CVertex v)
public int[][] getBettiNumbers()
public int[][][] getBettiPersistence()
public java.util.List<int[]>[] getPairSimplices()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |