assertTrue(ConvexPolygon2dCalculator.doesLineIntersectEdge(line1, 0, polygon)); assertFalse(ConvexPolygon2dCalculator.doesLineIntersectEdge(line1, 1, polygon)); assertFalse(ConvexPolygon2dCalculator.doesLineIntersectEdge(line1, 2, polygon)); assertFalse(ConvexPolygon2dCalculator.doesLineIntersectEdge(line1, 3, polygon)); assertTrue(ConvexPolygon2dCalculator.doesLineIntersectEdge(line1, 4, polygon)); assertTrue(ConvexPolygon2dCalculator.doesLineIntersectEdge(line2, 0, polygon)); assertFalse(ConvexPolygon2dCalculator.doesLineIntersectEdge(line2, 1, polygon)); assertTrue(ConvexPolygon2dCalculator.doesLineIntersectEdge(line2, 2, polygon)); assertFalse(ConvexPolygon2dCalculator.doesLineIntersectEdge(line2, 3, polygon)); assertFalse(ConvexPolygon2dCalculator.doesLineIntersectEdge(line2, 4, polygon)); assertFalse(ConvexPolygon2dCalculator.doesLineIntersectEdge(line3, 0, polygon)); assertTrue(ConvexPolygon2dCalculator.doesLineIntersectEdge(line3, 1, polygon)); assertFalse(ConvexPolygon2dCalculator.doesLineIntersectEdge(line3, 2, polygon)); assertFalse(ConvexPolygon2dCalculator.doesLineIntersectEdge(line3, 3, polygon)); assertTrue(ConvexPolygon2dCalculator.doesLineIntersectEdge(line3, 4, polygon)); assertTrue(ConvexPolygon2dCalculator.doesLineIntersectEdge(line4, 0, polygon)); assertFalse(ConvexPolygon2dCalculator.doesLineIntersectEdge(line4, 1, polygon)); assertFalse(ConvexPolygon2dCalculator.doesLineIntersectEdge(line4, 2, polygon)); assertTrue(ConvexPolygon2dCalculator.doesLineIntersectEdge(line4, 3, polygon)); assertFalse(ConvexPolygon2dCalculator.doesLineIntersectEdge(line4, 4, polygon));
@ContinuousIntegrationTest(estimatedDuration = 0.0) @Test(timeout = 30000) public void testDoesLineIntersectEdge2() { // add in order so update does not change indices: ConvexPolygon2D polygon = new ConvexPolygon2D(); polygon.addVertex(new Point2D(0.0, 1.0)); polygon.addVertex(new Point2D(1.0, 1.0)); polygon.update(); Line2D line1 = new Line2D(new Point2D(0.0, 0.3), new Vector2D(1.0, 0.0)); assertFalse(ConvexPolygon2dCalculator.doesLineIntersectEdge(line1, 0, polygon)); assertFalse(ConvexPolygon2dCalculator.doesLineIntersectEdge(line1, 1, polygon)); Line2D line2 = new Line2D(new Point2D(0.0, 0.3), new Vector2D(0.0, 1.0)); assertTrue(ConvexPolygon2dCalculator.doesLineIntersectEdge(line2, 0, polygon)); assertTrue(ConvexPolygon2dCalculator.doesLineIntersectEdge(line2, 1, polygon)); Line2D line3 = new Line2D(new Point2D(0.0, 0.3), new Vector2D(0.0, -1.0)); assertTrue(ConvexPolygon2dCalculator.doesLineIntersectEdge(line3, 0, polygon)); assertTrue(ConvexPolygon2dCalculator.doesLineIntersectEdge(line3, 1, polygon)); Line2D line4 = new Line2D(new Point2D(2.0, 0.3), new Vector2D(0.0, -1.0)); assertFalse(ConvexPolygon2dCalculator.doesLineIntersectEdge(line4, 0, polygon)); assertFalse(ConvexPolygon2dCalculator.doesLineIntersectEdge(line4, 1, polygon)); Line2D line5 = new Line2D(new Point2D(-1.0e-6, 0.3), new Vector2D(0.0, -1.0)); assertFalse(ConvexPolygon2dCalculator.doesLineIntersectEdge(line5, 0, polygon)); assertFalse(ConvexPolygon2dCalculator.doesLineIntersectEdge(line5, 1, polygon)); Line2D line6 = new Line2D(new Point2D(0.0, 0.3), new Vector2D(1.0, 0.0)); assertFalse(ConvexPolygon2dCalculator.doesLineIntersectEdge(line6, 0, polygon)); assertFalse(ConvexPolygon2dCalculator.doesLineIntersectEdge(line6, 1, polygon)); }
@ContinuousIntegrationTest(estimatedDuration = 0.0) @Test(timeout = 30000) public void testDoesLineIntersectEdge3() { ConvexPolygon2D polygon = new ConvexPolygon2D(); Line2D line5 = new Line2D(new Point2D(0.0, 0.0), new Vector2D(1.0, 0.0)); assertFalse(ConvexPolygon2dCalculator.doesLineIntersectEdge(line5, 0, polygon)); }
continue; if (doesLineIntersectEdge(line, i, polygon) || line.isPointOnLine(endVertex))
continue; if (doesLineIntersectEdge(line, i, polygon) || line.isPointOnLine(endVertex))
for (int i = 0; i < polygon.getNumberOfVertices(); i++) if (doesLineIntersectEdge(line, i, polygon))