public class Subdiv2D extends Object
Modifier and Type | Field and Description |
---|---|
protected long |
nativeObj |
static int |
NEXT_AROUND_DST |
static int |
NEXT_AROUND_LEFT |
static int |
NEXT_AROUND_ORG |
static int |
NEXT_AROUND_RIGHT |
static int |
PREV_AROUND_DST |
static int |
PREV_AROUND_LEFT |
static int |
PREV_AROUND_ORG |
static int |
PREV_AROUND_RIGHT |
static int |
PTLOC_ERROR |
static int |
PTLOC_INSIDE |
static int |
PTLOC_ON_EDGE |
static int |
PTLOC_OUTSIDE_RECT |
static int |
PTLOC_VERTEX |
Modifier | Constructor and Description |
---|---|
|
Subdiv2D()
creates an empty Subdiv2D object.
|
protected |
Subdiv2D(long addr) |
|
Subdiv2D(Rect rect) |
Modifier and Type | Method and Description |
---|---|
static Subdiv2D |
__fromPtr__(long addr) |
int |
edgeDst(int edge)
Returns the edge destination.
|
int |
edgeDst(int edge,
Point dstpt)
Returns the edge destination.
|
int |
edgeOrg(int edge)
Returns the edge origin.
|
int |
edgeOrg(int edge,
Point orgpt)
Returns the edge origin.
|
protected void |
finalize() |
int |
findNearest(Point pt)
Finds the subdivision vertex closest to the given point.
|
int |
findNearest(Point pt,
Point nearestPt)
Finds the subdivision vertex closest to the given point.
|
int |
getEdge(int edge,
int nextEdgeType)
Returns one of the edges related to the given edge.
|
void |
getEdgeList(MatOfFloat4 edgeList)
Returns a list of all edges.
|
void |
getLeadingEdgeList(MatOfInt leadingEdgeList)
Returns a list of the leading edge ID connected to each triangle.
|
long |
getNativeObjAddr() |
void |
getTriangleList(MatOfFloat6 triangleList)
Returns a list of all triangles.
|
Point |
getVertex(int vertex)
Returns vertex location from vertex ID.
|
Point |
getVertex(int vertex,
int[] firstEdge)
Returns vertex location from vertex ID.
|
void |
getVoronoiFacetList(MatOfInt idx,
List<MatOfPoint2f> facetList,
MatOfPoint2f facetCenters)
Returns a list of all Voronoi facets.
|
void |
initDelaunay(Rect rect)
Creates a new empty Delaunay subdivision
|
void |
insert(MatOfPoint2f ptvec)
Insert multiple points into a Delaunay triangulation.
|
int |
insert(Point pt)
Insert a single point into a Delaunay triangulation.
|
int |
locate(Point pt,
int[] edge,
int[] vertex)
Returns the location of a point within a Delaunay triangulation.
|
int |
nextEdge(int edge)
Returns next edge around the edge origin.
|
int |
rotateEdge(int edge,
int rotate)
Returns another edge of the same quad-edge.
|
int |
symEdge(int edge) |
protected final long nativeObj
public static final int PTLOC_ERROR
public static final int PTLOC_OUTSIDE_RECT
public static final int PTLOC_INSIDE
public static final int PTLOC_VERTEX
public static final int PTLOC_ON_EDGE
public static final int NEXT_AROUND_ORG
public static final int NEXT_AROUND_DST
public static final int PREV_AROUND_ORG
public static final int PREV_AROUND_DST
public static final int NEXT_AROUND_LEFT
public static final int NEXT_AROUND_RIGHT
public static final int PREV_AROUND_LEFT
public static final int PREV_AROUND_RIGHT
protected Subdiv2D(long addr)
public Subdiv2D(Rect rect)
rect
- Rectangle that includes all of the 2D points that are to be added to the subdivision.
The function creates an empty Delaunay subdivision where 2D points can be added using the function
insert() . All of the points to be added must be within the specified rectangle, otherwise a runtime
error is raised.public Subdiv2D()
public long getNativeObjAddr()
public static Subdiv2D __fromPtr__(long addr)
public Point getVertex(int vertex, int[] firstEdge)
vertex
- vertex ID.firstEdge
- Optional. The first edge ID which is connected to the vertex.public Point getVertex(int vertex)
vertex
- vertex ID.public int edgeDst(int edge, Point dstpt)
edge
- Subdivision edge ID.dstpt
- Output vertex location.public int edgeDst(int edge)
edge
- Subdivision edge ID.public int edgeOrg(int edge, Point orgpt)
edge
- Subdivision edge ID.orgpt
- Output vertex location.public int edgeOrg(int edge)
edge
- Subdivision edge ID.public int findNearest(Point pt, Point nearestPt)
pt
- Input point.nearestPt
- Output subdivision vertex point.
The function is another function that locates the input point within the subdivision. It finds the
subdivision vertex that is the closest to the input point. It is not necessarily one of vertices
of the facet containing the input point, though the facet (located using locate() ) is used as a
starting point.public int findNearest(Point pt)
pt
- Input point.
The function is another function that locates the input point within the subdivision. It finds the
subdivision vertex that is the closest to the input point. It is not necessarily one of vertices
of the facet containing the input point, though the facet (located using locate() ) is used as a
starting point.public int getEdge(int edge, int nextEdgeType)
edge
- Subdivision edge ID.nextEdgeType
- Parameter specifying which of the related edges to return.
The following values are possible:
public int insert(Point pt)
pt
- Point to insert.
The function inserts a single point into a subdivision and modifies the subdivision topology
appropriately. If a point with the same coordinates exists already, no new point is added.public int locate(Point pt, int[] edge, int[] vertex)
pt
- Point to locate.edge
- Output edge that the point belongs to or is located to the right of it.vertex
- Optional output vertex the input point coincides with.
The function locates the input point within the subdivision and gives one of the triangle edges
or vertices.public int nextEdge(int edge)
edge
- Subdivision edge ID.public int rotateEdge(int edge, int rotate)
edge
- Subdivision edge ID.rotate
- Parameter specifying which of the edges of the same quad-edge as the input
one to return. The following values are possible:
public int symEdge(int edge)
public void getEdgeList(MatOfFloat4 edgeList)
edgeList
- Output vector.
The function gives each edge as a 4 numbers vector, where each two are one of the edge
vertices. i.e. org_x = v[0], org_y = v[1], dst_x = v[2], dst_y = v[3].public void getLeadingEdgeList(MatOfInt leadingEdgeList)
leadingEdgeList
- Output vector.
The function gives one edge ID for each triangle.public void getTriangleList(MatOfFloat6 triangleList)
triangleList
- Output vector.
The function gives each triangle as a 6 numbers vector, where each two are one of the triangle
vertices. i.e. p1_x = v[0], p1_y = v[1], p2_x = v[2], p2_y = v[3], p3_x = v[4], p3_y = v[5].public void getVoronoiFacetList(MatOfInt idx, List<MatOfPoint2f> facetList, MatOfPoint2f facetCenters)
idx
- Vector of vertices IDs to consider. For all vertices you can pass empty vector.facetList
- Output vector of the Voronoi facets.facetCenters
- Output vector of the Voronoi facets center points.public void initDelaunay(Rect rect)
rect
- Rectangle that includes all of the 2D points that are to be added to the subdivision.public void insert(MatOfPoint2f ptvec)
ptvec
- Points to insert.
The function inserts a vector of points into a subdivision and modifies the subdivision topology
appropriately.Copyright © 2020. All rights reserved.