public BoundingBox GetBoundingBox(Coordinate startPosition) => BoundingBox.Compose(startPosition, EndPosition);
IDiagram IRotatable.PerformRotate(Angle angle) => Diagrams.Select(diagram => diagram.RotateAbout(Bounds.Center(), angle)) .ToImmutableList() .Pipe(x => new CompositeDiagram(x, BoundingBox.Compose(x.Select(y => y.Bounds))));
public PolygonDiagram(IEnumerable <Coordinate> coordinates) { Coordinates = coordinates.AsCollection(); Bounds = BoundingBox.Compose(Coordinates); }