Package net.dermetfan.gdx.math
Class BayazitDecomposer.SimplifyTools
java.lang.Object
net.dermetfan.gdx.math.BayazitDecomposer.SimplifyTools
- Enclosing class:
- BayazitDecomposer
public static class BayazitDecomposer.SimplifyTools
extends java.lang.Object
-
Constructor Summary
Constructors Constructor Description SimplifyTools()
-
Method Summary
Modifier and Type Method Description static boolean
collinear(com.badlogic.gdx.math.Vector2 a, com.badlogic.gdx.math.Vector2 b, com.badlogic.gdx.math.Vector2 c, float tolerance)
static com.badlogic.gdx.utils.Array<com.badlogic.gdx.math.Vector2>
collinearSimplify(com.badlogic.gdx.utils.Array<com.badlogic.gdx.math.Vector2> vertices)
Removes all collinear points on the polygon.static com.badlogic.gdx.utils.Array<com.badlogic.gdx.math.Vector2>
collinearSimplify(com.badlogic.gdx.utils.Array<com.badlogic.gdx.math.Vector2> vertices, float collinearityTolerance)
Removes all collinear points on the polygon.static java.lang.Float
cross(com.badlogic.gdx.math.Vector2 a, com.badlogic.gdx.math.Vector2 b)
static com.badlogic.gdx.utils.Array<com.badlogic.gdx.math.Vector2>
douglasPeuckerSimplify(com.badlogic.gdx.utils.Array<com.badlogic.gdx.math.Vector2> vertices, float distanceTolerance)
Ramer-Douglas-Peucker polygon simplification algorithm.static boolean
floatInRange(float value, float min, float max)
static com.badlogic.gdx.utils.Array<com.badlogic.gdx.math.Vector2>
mergeIdenticalPoints(com.badlogic.gdx.utils.Array<com.badlogic.gdx.math.Vector2> vertices)
Merges the identical points in the polygon.static void
mergeParallelEdges(com.badlogic.gdx.utils.Array<com.badlogic.gdx.math.Vector2> vertices, float tolerance)
From Eric Jordan's convex decomposition library Merges all parallel edges in the list of verticesstatic com.badlogic.gdx.utils.Array<com.badlogic.gdx.math.Vector2>
reduceByArea(com.badlogic.gdx.utils.Array<com.badlogic.gdx.math.Vector2> vertices, float areaTolerance)
static com.badlogic.gdx.utils.Array<com.badlogic.gdx.math.Vector2>
reduceByDistance(com.badlogic.gdx.utils.Array<com.badlogic.gdx.math.Vector2> vertices, float distance)
Reduces the polygon by distance.static com.badlogic.gdx.utils.Array<com.badlogic.gdx.math.Vector2>
reduceByNth(com.badlogic.gdx.utils.Array<com.badlogic.gdx.math.Vector2> vertices, int nth)
Reduces the polygon by removing the Nth vertex in the vertices list.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Constructor Details
-
SimplifyTools
public SimplifyTools()
-
-
Method Details
-
collinearSimplify
public static com.badlogic.gdx.utils.Array<com.badlogic.gdx.math.Vector2> collinearSimplify(com.badlogic.gdx.utils.Array<com.badlogic.gdx.math.Vector2> vertices, float collinearityTolerance)Removes all collinear points on the polygon.- Parameters:
vertices
- The polygon that needs simplification.collinearityTolerance
- The collinearity tolerance.- Returns:
- A simplified polygon.
-
collinear
public static boolean collinear(com.badlogic.gdx.math.Vector2 a, com.badlogic.gdx.math.Vector2 b, com.badlogic.gdx.math.Vector2 c, float tolerance) -
floatInRange
public static boolean floatInRange(float value, float min, float max) -
collinearSimplify
public static com.badlogic.gdx.utils.Array<com.badlogic.gdx.math.Vector2> collinearSimplify(com.badlogic.gdx.utils.Array<com.badlogic.gdx.math.Vector2> vertices)Removes all collinear points on the polygon. Has a default bias of 0- Parameters:
vertices
- The polygon that needs simplification- Returns:
- A simplified polygon.
-
douglasPeuckerSimplify
public static com.badlogic.gdx.utils.Array<com.badlogic.gdx.math.Vector2> douglasPeuckerSimplify(com.badlogic.gdx.utils.Array<com.badlogic.gdx.math.Vector2> vertices, float distanceTolerance)Ramer-Douglas-Peucker polygon simplification algorithm. This is the general recursive version that does not use the speed-up technique by using the Melkman convex hull. If you pass in 0, it will remove all collinear points- Parameters:
vertices
-distanceTolerance
-- Returns:
- The simplified polygon
-
reduceByArea
public static com.badlogic.gdx.utils.Array<com.badlogic.gdx.math.Vector2> reduceByArea(com.badlogic.gdx.utils.Array<com.badlogic.gdx.math.Vector2> vertices, float areaTolerance) -
cross
public static java.lang.Float cross(com.badlogic.gdx.math.Vector2 a, com.badlogic.gdx.math.Vector2 b) -
mergeParallelEdges
public static void mergeParallelEdges(com.badlogic.gdx.utils.Array<com.badlogic.gdx.math.Vector2> vertices, float tolerance)From Eric Jordan's convex decomposition library Merges all parallel edges in the list of vertices -
mergeIdenticalPoints
public static com.badlogic.gdx.utils.Array<com.badlogic.gdx.math.Vector2> mergeIdenticalPoints(com.badlogic.gdx.utils.Array<com.badlogic.gdx.math.Vector2> vertices)Merges the identical points in the polygon. -
reduceByDistance
public static com.badlogic.gdx.utils.Array<com.badlogic.gdx.math.Vector2> reduceByDistance(com.badlogic.gdx.utils.Array<com.badlogic.gdx.math.Vector2> vertices, float distance)Reduces the polygon by distance.- Parameters:
vertices
-distance
- The distance between points. Points closer than this will be 'joined'
-
reduceByNth
public static com.badlogic.gdx.utils.Array<com.badlogic.gdx.math.Vector2> reduceByNth(com.badlogic.gdx.utils.Array<com.badlogic.gdx.math.Vector2> vertices, int nth)Reduces the polygon by removing the Nth vertex in the vertices list.- Parameters:
vertices
-nth
- The Nth point to remove. Example: 5.
-