Maven module :un.api : api-geometry :
Class : un.impl.geometry.Geometries
Extends/Implements : -
Subclasses : -

Utilities for geometries.
author  Johann Sorel


Variables : -
Functions : calculateNormal, calculateNormal, calculateNormal, calculateCircleCenter, calculatePointSymmetry, calculateAxisSymmetry, isConvex, isOnLine, isAtRightOf, isAtRightOf, isCounterClockwise, isCounterClockwise, lineSide, inCircle, inTriangle, calculatePlanD, projectPointOnPlan, isClockWise, isClockWise, isClockWise, calculateArea, calculateArea, transform, flatten, toTupleBuffer, toTupleBuffer, toTupleArray




Calculate normal of triangle made of given 3 points.
param  a
param  b
param  c
return  normal
public Vector calculateNormal (Tuple a, Tuple b, Tuple c)


Calculate normal of triangle made of given 3 points.
param  a
param  b
param  c
return  normal
public double[] calculateNormal (double[] a, double[] b, double[] c)


Calculate normal of triangle made of given 3 points.
param  a
param  b
param  c
param  buffer
return  normal
public float[] calculateNormal (float[] a, float[] b, float[] c, float[] buffer)

public double[] calculateCircleCenter (double[] a, double[] b, double[] c)


param  c symmetry center
param  p point to reflect
return  reflected point
public double[] calculatePointSymmetry (double[] c, double[] p)


param  a symmetry axis a
param  b symmetry axis b
param  p point to reflect
return  reflected point
public double[] calculateAxisSymmetry (double[] a, double[] b, double[] p)


Test if given a,b,c,d quad is convex.
param  a
param  b
param  c
param  d
return  true if convex, false otherwise.
public boolean isConvex (Tuple a, Tuple b, Tuple c, Tuple d)


Test if the Point p is on the line porting the edge
param  a line origine
param  b line end
param  p Point to test
return  true/false
public boolean isOnLine (Point a, Point b, Point p)


Test if the Point P is at the right of the line A-B.
param  a line origine
param  b line end
param  p Point to test
return  true/false
public boolean isAtRightOf (Point a, Point b, Point p)


Test if the Point P is at the right of the line A-B.
param  a line origine
param  b line end
param  p Point to test
return  true/false
public boolean isAtRightOf (double[] a, double[] b, double[] p)


return true if a, b and c turn in Counter Clockwise direction
param  a,b,c the 3 points to test
return  true if a, b and c turn in Counter Clockwise direction
public boolean isCounterClockwise (Point a, Point b, Point c)


return true if a, b and c turn in Counter Clockwise direction
param  a,b,c the 3 points to test
return  true if a, b and c turn in Counter Clockwise direction
public boolean isCounterClockwise (double[] a, double[] b, double[] c)


Test the side of a point compare to a line.

@param a line start
@param b line end
@param c to test
@return > 0 if point is on the left side
= 0 if point is on the line
< 0 if point is on the right side
public double lineSide (double[] a, double[] b, double[] c)


The Delaunay criteria:
test if the point d is inside the circumscribed circle of triangle a,b,c
param  a,b,c triangle
param  d point to test
return  true/false
public boolean inCircle (Point a, Point b, Point c, Point d)


Test if a point is inside given triangle.
param  a
param  b
param  c
param  p
return
public boolean inTriangle (double[] a, double[] b, double[] c, double[] p)


Calculate constant D of a plan.
Same as normal.dot(point).
param  normal
param  pointOnPlan
return
public double calculatePlanD (double[] normal, double[] pointOnPlan)


Calculate projection of a point on a plan.
param  point point to project
param  planNormal plan normal
param  planD
return  projected point
public double[] projectPointOnPlan (double[] point, double[] planNormal, double planD)


Test if given sequence of tuple is in clockwise direction.
This method expect the coordinates to be a closed line.
param  coordinates
return
public boolean isClockWise (Sequence coordinates)

public boolean isClockWise (TupleBuffer1D coordinates)


Test if given path iterator is in clockwise direction.
This method expect the coordinates to be a closed line.
param  pathIterator
return  true if clockwise
public boolean isClockWise (PathIterator pathIterator)


Test if given sequence of tuple is in clockwise direction.
This method expect the coordinates to be a closed line.
param  coordinates
return
public double calculateArea (Sequence coordinates)


Test if given sequence of tuple is in clockwise direction.
This method expect the coordinates to be a closed line.
param  coordinates
return
public double calculateArea (TupleBuffer1D coordinates)

public BBox transform (BBox bbox, Matrix trs, BBox buffer)

public Geometry2D flatten (Geometry2D geom, double[] resolution)

public TupleBuffer1D toTupleBuffer (Tuple[] tuples)

public TupleBuffer1D toTupleBuffer (Sequence tuples)

public Tuple[] toTupleArray (TupleBuffer1D buffer)