test_class.file: runelite-api/src/test/java/net/runelite/api/model/JarvisTest.java
test_class.identifier: JarvisTest
test_case.body: @Test
  	public void testCollinear()
  	{
  		Point[] points = new Point[]
  		{
  			new Point(604, 76),
  			new Point(609, 81),
  			new Point(606, 78),
  			new Point(602, 74),
  			new Point(610, 74),
  			new Point(609, 77),
  			new Point(602, 72),
  			new Point(606, 77),
  			new Point(611, 77),
  			new Point(607, 72),
  			new Point(616, 74),
  			new Point(611, 70),
  			new Point(611, 71),
  			new Point(610, 73),
  			new Point(614, 82),
  			new Point(615, 79),
  			new Point(615, 77),
  			new Point(615, 76),
  			new Point(634, 71),
  			new Point(604, 76)
  		};
  		Jarvis.convexHull(Arrays.asList(points));
  	}
test_case.class_method_signature: JarvisTest.testCollinear()
test_case.full_signature: @Test public void testCollinear()
test_case.identifier: testCollinear
test_case.invocations: convexHull asList
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testCollinear()
focal_class.file: runelite-api/src/main/java/net/runelite/api/model/Jarvis.java
focal_class.identifier: Jarvis
focal_class.class_method_signature: Jarvis.convexHull(List<Point> points)
focal_class.full_signature: @Deprecated public static List<Point> convexHull(List<Point> points)
focal_class.identifier: convexHull
focal_class.modifiers: @Deprecated public static
focal_class.parameters: (List<Point> points)
focal_class.return: List<Point>
focal_class.signature: List<Point> convexHull(List<Point> points)
focal_class.class_method_signature: Jarvis.convexHull(int[] xs, int[] ys)
focal_class.full_signature: public static SimplePolygon convexHull(int[] xs, int[] ys)
focal_class.identifier: convexHull
focal_class.modifiers: public static
focal_class.parameters: (int[] xs, int[] ys)
focal_class.return: SimplePolygon
focal_class.signature: SimplePolygon convexHull(int[] xs, int[] ys)
focal_class.class_method_signature: Jarvis.square(int x)
focal_class.full_signature: private static int square(int x)
focal_class.identifier: square
focal_class.modifiers: private static
focal_class.parameters: (int x)
focal_class.return: int
focal_class.signature: int square(int x)
focal_class.class_method_signature: Jarvis.findLeftMost(int[] xs, int[] ys, int length)
focal_class.full_signature: private static int findLeftMost(int[] xs, int[] ys, int length)
focal_class.identifier: findLeftMost
focal_class.modifiers: private static
focal_class.parameters: (int[] xs, int[] ys, int length)
focal_class.return: int
focal_class.signature: int findLeftMost(int[] xs, int[] ys, int length)
focal_class.class_method_signature: Jarvis.crossProduct(int px, int py, int qx, int qy, int rx, int ry)
focal_class.full_signature: private static long crossProduct(int px, int py, int qx, int qy, int rx, int ry)
focal_class.identifier: crossProduct
focal_class.modifiers: private static
focal_class.parameters: (int px, int py, int qx, int qy, int rx, int ry)
focal_class.return: long
focal_class.signature: long crossProduct(int px, int py, int qx, int qy, int rx, int ry)
focal_method.body: @Deprecated
  	public static List<Point> convexHull(List<Point> points)
  	{
  		int[] xs = new int[points.size()];
  		int[] ys = new int[xs.length];
  		for (int i = 0; i < xs.length; i++)
  		{
  			Point p = points.get(i);
  			xs[i] = p.getX();
  			ys[i] = p.getY();
  		}
  
  		SimplePolygon poly = convexHull(xs, ys);
  		if (poly == null)
  		{
  			return null;
  		}
  
  		return poly.toRuneLitePointList();
  	}
focal_method.class_method_signature: Jarvis.convexHull(List<Point> points)
focal_method.full_signature: @Deprecated public static List<Point> convexHull(List<Point> points)
focal_method.identifier: convexHull
focal_method.invocations: size get getX getY convexHull toRuneLitePointList
focal_method.modifiers: @Deprecated public static
focal_method.parameters: (List<Point> points)
focal_method.return: List<Point>
focal_method.signature: List<Point> convexHull(List<Point> points)