test_class.file: display/renderbasic/src/test/java/org/openscience/cdk/renderer/generators/standard/ConvexHullTest.java
test_class.identifier: ConvexHullTest
test_case.body: @Test
      public void testShapeOf() throws Exception {
          List<Point2D> points = Arrays.<Point2D> asList(new Point2D.Double(-5d, -5d), new Point2D.Double(-5d, 5d),
                  new Point2D.Double(5d, 5d), new Point2D.Double(5d, -5d));
          Rectangle2D bounds = ConvexHull.shapeOf(points).getBounds2D();
          assertThat(bounds.getMinX(), closeTo(-5, 0.01));
          assertThat(bounds.getMinY(), closeTo(-5, 0.01));
          assertThat(bounds.getMaxX(), closeTo(5, 0.01));
          assertThat(bounds.getMaxY(), closeTo(5, 0.01));
      }
test_case.class_method_signature: ConvexHullTest.testShapeOf()
test_case.full_signature: @Test public void testShapeOf()
test_case.identifier: testShapeOf
test_case.invocations: asList getBounds2D shapeOf assertThat getMinX closeTo assertThat getMinY closeTo assertThat getMaxX closeTo assertThat getMaxY closeTo
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testShapeOf()
focal_class.declarator: hull
focal_class.modifier: private final
focal_class.original_string: private final Shape hull;
focal_class.type: Shape
focal_class.var_name: hull
focal_class.file: display/renderbasic/src/main/java/org/openscience/cdk/renderer/generators/standard/ConvexHull.java
focal_class.identifier: ConvexHull
focal_class.class_method_signature: ConvexHull.ConvexHull(final Shape hull)
focal_class.full_signature: private  ConvexHull(final Shape hull)
focal_class.identifier: ConvexHull
focal_class.modifiers: private
focal_class.parameters: (final Shape hull)
focal_class.signature:  ConvexHull(final Shape hull)
focal_class.class_method_signature: ConvexHull.ofShape(final Shape shape)
focal_class.full_signature: public static ConvexHull ofShape(final Shape shape)
focal_class.identifier: ofShape
focal_class.modifiers: public static
focal_class.parameters: (final Shape shape)
focal_class.return: ConvexHull
focal_class.signature: ConvexHull ofShape(final Shape shape)
focal_class.class_method_signature: ConvexHull.ofShapes(final List<Shape> shapes)
focal_class.full_signature: public static ConvexHull ofShapes(final List<Shape> shapes)
focal_class.identifier: ofShapes
focal_class.modifiers: public static
focal_class.parameters: (final List<Shape> shapes)
focal_class.return: ConvexHull
focal_class.signature: ConvexHull ofShapes(final List<Shape> shapes)
focal_class.class_method_signature: ConvexHull.outline()
focal_class.full_signature:  Shape outline()
focal_class.identifier: outline
focal_class.parameters: ()
focal_class.return: Shape
focal_class.signature: Shape outline()
focal_class.class_method_signature: ConvexHull.transform(final AffineTransform transform)
focal_class.full_signature:  ConvexHull transform(final AffineTransform transform)
focal_class.identifier: transform
focal_class.parameters: (final AffineTransform transform)
focal_class.return: ConvexHull
focal_class.signature: ConvexHull transform(final AffineTransform transform)
focal_class.class_method_signature: ConvexHull.shapeOf(List<Point2D> points)
focal_class.full_signature: static Shape shapeOf(List<Point2D> points)
focal_class.identifier: shapeOf
focal_class.modifiers: static
focal_class.parameters: (List<Point2D> points)
focal_class.return: Shape
focal_class.signature: Shape shapeOf(List<Point2D> points)
focal_class.class_method_signature: ConvexHull.pointsOf(final Shape shape)
focal_class.full_signature: static List<Point2D> pointsOf(final Shape shape)
focal_class.identifier: pointsOf
focal_class.modifiers: static
focal_class.parameters: (final Shape shape)
focal_class.return: List<Point2D>
focal_class.signature: List<Point2D> pointsOf(final Shape shape)
focal_class.class_method_signature: ConvexHull.grahamScan(final List<Point2D> points)
focal_class.full_signature: static List<Point2D> grahamScan(final List<Point2D> points)
focal_class.identifier: grahamScan
focal_class.modifiers: static
focal_class.parameters: (final List<Point2D> points)
focal_class.return: List<Point2D>
focal_class.signature: List<Point2D> grahamScan(final List<Point2D> points)
focal_class.class_method_signature: ConvexHull.intersect(List<Point2D> outline, Line2D line)
focal_class.full_signature: private Point2D intersect(List<Point2D> outline, Line2D line)
focal_class.identifier: intersect
focal_class.modifiers: private
focal_class.parameters: (List<Point2D> outline, Line2D line)
focal_class.return: Point2D
focal_class.signature: Point2D intersect(List<Point2D> outline, Line2D line)
focal_class.class_method_signature: ConvexHull.intersect(Point2D a, Point2D b)
focal_class.full_signature:  Point2D intersect(Point2D a, Point2D b)
focal_class.identifier: intersect
focal_class.parameters: (Point2D a, Point2D b)
focal_class.return: Point2D
focal_class.signature: Point2D intersect(Point2D a, Point2D b)
focal_class.class_method_signature: ConvexHull.lineLineIntersect(final Line2D lineA, final Line2D lineB)
focal_class.full_signature: public static Point2D lineLineIntersect(final Line2D lineA, final Line2D lineB)
focal_class.identifier: lineLineIntersect
focal_class.modifiers: public static
focal_class.parameters: (final Line2D lineA, final Line2D lineB)
focal_class.return: Point2D
focal_class.signature: Point2D lineLineIntersect(final Line2D lineA, final Line2D lineB)
focal_class.class_method_signature: ConvexHull.lineLineIntersect(final double x1, final double y1, final double x2, final double y2,
              final double x3, final double y3, final double x4, final double y4)
focal_class.full_signature: static Point2D lineLineIntersect(final double x1, final double y1, final double x2, final double y2,
              final double x3, final double y3, final double x4, final double y4)
focal_class.identifier: lineLineIntersect
focal_class.modifiers: static
focal_class.parameters: (final double x1, final double y1, final double x2, final double y2,
              final double x3, final double y3, final double x4, final double y4)
focal_class.return: Point2D
focal_class.signature: Point2D lineLineIntersect(final double x1, final double y1, final double x2, final double y2,
              final double x3, final double y3, final double x4, final double y4)
focal_class.class_method_signature: ConvexHull.isLeftTurn(Point2D a, Point2D b, Point2D c)
focal_class.full_signature: private static boolean isLeftTurn(Point2D a, Point2D b, Point2D c)
focal_class.identifier: isLeftTurn
focal_class.modifiers: private static
focal_class.parameters: (Point2D a, Point2D b, Point2D c)
focal_class.return: boolean
focal_class.signature: boolean isLeftTurn(Point2D a, Point2D b, Point2D c)
focal_class.class_method_signature: ConvexHull.winding(Point2D a, Point2D b, Point2D c)
focal_class.full_signature: private static int winding(Point2D a, Point2D b, Point2D c)
focal_class.identifier: winding
focal_class.modifiers: private static
focal_class.parameters: (Point2D a, Point2D b, Point2D c)
focal_class.return: int
focal_class.signature: int winding(Point2D a, Point2D b, Point2D c)
focal_method.body: static Shape shapeOf(List<Point2D> points) {
          Path2D path = new Path2D.Double();
          if (!points.isEmpty()) {
              path.moveTo(points.get(0).getX(), points.get(0).getY());
              for (Point2D point : points)
                  path.lineTo(point.getX(), point.getY());
              path.closePath();
          }
          return path;
      }
focal_method.class_method_signature: ConvexHull.shapeOf(List<Point2D> points)
focal_method.full_signature: static Shape shapeOf(List<Point2D> points)
focal_method.identifier: shapeOf
focal_method.invocations: isEmpty moveTo getX get getY get lineTo getX getY closePath
focal_method.modifiers: static
focal_method.parameters: (List<Point2D> points)
focal_method.return: Shape
focal_method.signature: Shape shapeOf(List<Point2D> points)