Package com.esri.core.geometry
Class Clusterer
- java.lang.Object
-
- com.esri.core.geometry.Clusterer
-
final class Clusterer extends java.lang.Object
Implementation for the vertex clustering. Used by the TopoGraph and Simplify.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static class
Clusterer.ClusterCandidate
(package private) class
Clusterer.ClusterHashFunction
-
Field Summary
Fields Modifier and Type Field Description (package private) int[]
m_bucket_array
(package private) int[]
m_bucket_hash
(package private) double
m_cell_size
(package private) IndexMultiList
m_clusters
(package private) int
m_dbg_candidate_check_count
(package private) Clusterer.ClusterHashFunction
m_hash_function
(package private) IndexHashTable
m_hash_table
(package private) int
m_hash_values
(package private) double
m_inv_cell_size
(package private) int
m_new_clusters
(package private) Point2D
m_origin
(package private) EditShape
m_shape
(package private) double
m_sqr_tolerance
(package private) double
m_tolerance
-
Constructor Summary
Constructors Constructor Description Clusterer()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) void
applyClusterPositions_()
(package private) boolean
clusterNonReciprocal_()
(package private) void
collectClusterCandidates_(int xyindex, AttributeStreamOfInt32 candidates)
(package private) void
collectNearestNeighbourCandidates_(int xyindex, int hash, Point2D pointOfInterest, int bucket_ptr, AttributeStreamOfInt32 candidates)
(package private) static boolean
executeNonReciprocal(EditShape shape, double tolerance)
(package private) void
findClusterCandidate_(int xyindex, Clusterer.ClusterCandidate candidate)
(package private) void
getNearestNeighbourCandidate_(int xyindex, Point2D pointOfInterest, int bucket_ptr, Clusterer.ClusterCandidate candidate)
(package private) static int
hashFunction_(int xi, int yi)
(package private) static boolean
isClusterCandidate_(double x_1, double y1, double x2, double y2, double sqr_tolerance)
(package private) boolean
mergeClusters_(int vertex1, int vertex2, boolean update_hash)
(package private) static boolean
mergeVertices(Point pt_1, Point pt_2, double w_1, int rank_1, double w_2, int rank_2, Point pt_res, double[] w_res, int[] rank_res)
(package private) boolean
mergeVertices_(int vert_1, int vert_2)
(package private) static boolean
mergeVertices2D(Point2D pt_1, Point2D pt_2, double w_1, int rank_1, double w_2, int rank_2, Point2D pt_res, double[] w_res, int[] rank_res)
-
-
-
Field Detail
-
m_origin
Point2D m_origin
-
m_tolerance
double m_tolerance
-
m_sqr_tolerance
double m_sqr_tolerance
-
m_cell_size
double m_cell_size
-
m_inv_cell_size
double m_inv_cell_size
-
m_bucket_array
int[] m_bucket_array
-
m_bucket_hash
int[] m_bucket_hash
-
m_dbg_candidate_check_count
int m_dbg_candidate_check_count
-
m_hash_values
int m_hash_values
-
m_new_clusters
int m_new_clusters
-
m_shape
EditShape m_shape
-
m_clusters
IndexMultiList m_clusters
-
m_hash_function
Clusterer.ClusterHashFunction m_hash_function
-
m_hash_table
IndexHashTable m_hash_table
-
-
Method Detail
-
executeNonReciprocal
static boolean executeNonReciprocal(EditShape shape, double tolerance)
-
isClusterCandidate_
static boolean isClusterCandidate_(double x_1, double y1, double x2, double y2, double sqr_tolerance)
-
hashFunction_
static int hashFunction_(int xi, int yi)
-
getNearestNeighbourCandidate_
void getNearestNeighbourCandidate_(int xyindex, Point2D pointOfInterest, int bucket_ptr, Clusterer.ClusterCandidate candidate)
-
findClusterCandidate_
void findClusterCandidate_(int xyindex, Clusterer.ClusterCandidate candidate)
-
collectClusterCandidates_
void collectClusterCandidates_(int xyindex, AttributeStreamOfInt32 candidates)
-
collectNearestNeighbourCandidates_
void collectNearestNeighbourCandidates_(int xyindex, int hash, Point2D pointOfInterest, int bucket_ptr, AttributeStreamOfInt32 candidates)
-
mergeClusters_
boolean mergeClusters_(int vertex1, int vertex2, boolean update_hash)
-
mergeVertices
static boolean mergeVertices(Point pt_1, Point pt_2, double w_1, int rank_1, double w_2, int rank_2, Point pt_res, double[] w_res, int[] rank_res)
-
mergeVertices2D
static boolean mergeVertices2D(Point2D pt_1, Point2D pt_2, double w_1, int rank_1, double w_2, int rank_2, Point2D pt_res, double[] w_res, int[] rank_res)
-
mergeVertices_
boolean mergeVertices_(int vert_1, int vert_2)
-
clusterNonReciprocal_
boolean clusterNonReciprocal_()
-
applyClusterPositions_
void applyClusterPositions_()
-
-