signalprocesser.voronoi.representation.triangulation.VHalfEdge Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of mia-algorithms Show documentation
Show all versions of mia-algorithms Show documentation
ModularImageAnalysis (MIA) is an ImageJ plugin which provides a modular framework for assembling image and object analysis workflows. Detected objects can be transformed, filtered, measured and related. Analysis workflows are batch-enabled by default, allowing easy processing of high-content datasets.
/*
* "Concave" hulls by Glenn Hudson and Matt Duckham
*
* Source code downloaded from https://archive.md/l3Un5#selection-571.0-587.218 on 3rd November 2021.
*
* - This software is Copyright (C) 2008 Glenn Hudson released under Gnu Public License (GPL). Under
* GPL you are free to use, modify, and redistribute the software. Please acknowledge Glenn Hudson
* and Matt Duckham as the source of this software if you do use or adapt the code in further research
* or other work. For full details of GPL see http://www.gnu.org/licenses/gpl-3.0.txt.
* - This software comes with no warranty of any kind, expressed or implied.
*
* A paper with full details of the characteristic hulls algorithm is published in Pattern Recognition.
* Duckham, M., Kulik, L., Worboys, M.F., Galton, A. (2008) Efficient generation of simple polygons for
* characterizing the shape of a set of points in the plane. Pattern Recognition v41, 3224-3236
*
* The software was developed by Glenn Hudson while working with me as an RA. The characteristic shapes
* algorithm is collaborative work between Matt Duckham, Lars Kulik, Antony Galton, and Mike Worboys.
*
*/
package signalprocesser.voronoi.representation.triangulation;
public class VHalfEdge {
/* ***************************************************** */
// Variables
public int vertexnumber;
public VHalfEdge next;
public VVertex vertex;
private int length = -1;
public boolean shownonminimumspanningtree = false;
/* ***************************************************** */
// Constructors
public VHalfEdge(int _vertexnumber, VVertex _vertex) {
this.vertexnumber = _vertexnumber;
this.vertex = _vertex;
}
public VHalfEdge(int _vertexnumber, VVertex _vertex, VHalfEdge _next) {
this.vertexnumber = _vertexnumber;
this.vertex = _vertex;
this.next = _next;
}
/* ***************************************************** */
// Methods
public boolean isOuterEdge() {
return ( vertexnumber==TriangulationRepresentation.OUTER_VERTEXNUMBER );
}
public VVertex getConnectedVertex() {
return next.vertex;
}
public int getLength() {
if ( length==-1 ) {
length = (int) vertex.distanceTo(next.vertex);
}
return length;
}
public int getX() {
return vertex.x;
}
public int getY() {
return vertex.y;
}
/* ***************************************************** */
}