us.ihmc.utilities.math.geometry
Class GrahamScanConvexHullCalculator2d

java.lang.Object
  extended by us.ihmc.utilities.math.geometry.GrahamScanConvexHullCalculator2d

public class GrahamScanConvexHullCalculator2d
extends java.lang.Object

Adapted from http://algs4.cs.princeton.edu/99hull/GrahamScan.java.html TODO: make it return the points in clockwise order instead of counterclockwise TODO: reduce garbage generation


Constructor Summary
GrahamScanConvexHullCalculator2d(java.util.List<javax.vecmath.Point2d> pointList)
           
 
Method Summary
static int ccw(javax.vecmath.Point2d a, javax.vecmath.Point2d b, javax.vecmath.Point2d c)
           
static GrahamScanConvexHullCalculator2d createFromPointList(double[][] pointList)
           
static boolean equals(javax.vecmath.Point2d p1, javax.vecmath.Point2d p2)
           
 java.util.List<javax.vecmath.Point2d> getClockwiseOrderedListOfPoints()
           
 java.lang.Iterable<javax.vecmath.Point2d> hull()
           
static void main(java.lang.String[] args)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GrahamScanConvexHullCalculator2d

public GrahamScanConvexHullCalculator2d(java.util.List<javax.vecmath.Point2d> pointList)
Method Detail

createFromPointList

public static GrahamScanConvexHullCalculator2d createFromPointList(double[][] pointList)

hull

public java.lang.Iterable<javax.vecmath.Point2d> hull()

equals

public static boolean equals(javax.vecmath.Point2d p1,
                             javax.vecmath.Point2d p2)

ccw

public static int ccw(javax.vecmath.Point2d a,
                      javax.vecmath.Point2d b,
                      javax.vecmath.Point2d c)

main

public static void main(java.lang.String[] args)

getClockwiseOrderedListOfPoints

public java.util.List<javax.vecmath.Point2d> getClockwiseOrderedListOfPoints()