protected override IEnumerable <DxfPoint> GetExtentsPoints() { if (GetEntities != null) { var boundingBoxes = GetEntities().Select(e => e.GetBoundingBox()).Where(bb => bb.HasValue).Select(bb => bb.GetValueOrDefault()).ToList(); if (boundingBoxes.Count == 0) { yield break; } var boundingBox = DxfBoundingBox.FromEnumerable(boundingBoxes); var minX = boundingBox.MinimumPoint.X * XScaleFactor + Location.X; var minY = boundingBox.MinimumPoint.Y * YScaleFactor + Location.Y; var minZ = boundingBox.MinimumPoint.Z * ZScaleFactor + Location.Z; var maxX = boundingBox.MaximumPoint.X * XScaleFactor + Location.X; var maxY = boundingBox.MaximumPoint.Y * YScaleFactor + Location.Y; var maxZ = boundingBox.MaximumPoint.Z * ZScaleFactor + Location.Z; var minP = new DxfPoint(minX, minY, minZ); var maxP = new DxfPoint(maxX, maxY, maxZ); yield return(minP); yield return(maxP); } }