public void Polygon_Extrude() { Point basePoint = Point.Origin; Point topLeftPoint = Point.MakePointWithInches(0, 4, 0); Point bottomRightPoint = Point.MakePointWithInches(8, 0, 0); Point topRightPoint = Point.MakePointWithInches(8, 4, 0); Point backbasepoint = Point.MakePointWithInches(0, 0, -4); Point backtopleftpoint = Point.MakePointWithInches(0, 4, -4); Point backbottomrightpoint = Point.MakePointWithInches(8, 0, -4); Point backtoprightpoint = Point.MakePointWithInches(8, 4, -4); LineSegment left = new LineSegment(basePoint, topLeftPoint); LineSegment right = new LineSegment(bottomRightPoint, topRightPoint); LineSegment top = new LineSegment(topLeftPoint, topRightPoint); LineSegment bottom = new LineSegment(basePoint, bottomRightPoint); LineSegment backLeft = new LineSegment(backbasepoint, backtopleftpoint); LineSegment backRight = new LineSegment(backbottomrightpoint, backtoprightpoint); LineSegment backTop = new LineSegment(backtopleftpoint, backtoprightpoint); LineSegment backBottom = new LineSegment(backbasepoint, backbottomrightpoint); LineSegment topleftConnector = new LineSegment(topLeftPoint, backtopleftpoint); LineSegment toprightConnector = new LineSegment(topRightPoint, backtoprightpoint); LineSegment baseConnector = new LineSegment(basePoint, backbasepoint); LineSegment bottomRightConnector = new LineSegment(bottomRightPoint, backbottomrightpoint); Polygon frontRegion = new Polygon(new List<LineSegment> { left, top, bottom, right }); Polygon backRegion = new Polygon(new List<LineSegment> { backLeft, backRight, backTop, backBottom }); Polygon topRegion = new Polygon(new List<LineSegment> { top, backTop, topleftConnector, toprightConnector }); Polygon bottomRegion = new Polygon(new List<LineSegment> { bottom, backBottom, baseConnector, bottomRightConnector }); Polygon leftRegion = new Polygon(new List<LineSegment> { left, backLeft, baseConnector, topleftConnector }); Polygon rightRegion = new Polygon(new List<LineSegment> { right, backRight, toprightConnector, bottomRightConnector }); Polyhedron extrudedResult = frontRegion.Extrude(new Vector(Point.MakePointWithInches(0, 0, -4))); extrudedResult.Polygons.Contains(frontRegion).Should().BeTrue(); extrudedResult.Polygons.Contains(backRegion).Should().BeTrue(); extrudedResult.Polygons.Contains(topRegion).Should().BeTrue(); extrudedResult.Polygons.Contains(bottomRegion).Should().BeTrue(); extrudedResult.Polygons.Contains(leftRegion).Should().BeTrue(); extrudedResult.Polygons.Contains(rightRegion).Should().BeTrue(); }