private ShapeBoundBox ComputeEnclosingBoundingBox() { var bounding = new ShapeBoundBox(); foreach (var shapeNode in _document.Root.Children.Values) { var builder = new NodeBuilder(shapeNode); bounding = CombineBoundingBoxWithShape(builder, bounding); } return(bounding); }
private NodeBuilder BuildFloor(ShapeBoundBox bounding) { var floorRectangle = new NodeBuilder(_mirrorDocument, FunctionNames.Rectangle); var startFloorPoint = new Point3D(bounding.Coordinate.X - _range, bounding.Coordinate.Y - _range, bounding.Coordinate.Z); var dir = new gpDir(0, 0, 1); var endFloorPoint = new Point3D( bounding.Coordinate.X + bounding.Dimensions.X + _range, bounding.Coordinate.Y + bounding.Dimensions.Y + _range, bounding.Coordinate.Z); floorRectangle[0].Axis3D = new Axis(new gpAx1(startFloorPoint.GpPnt, dir)); floorRectangle[1].TransformedPoint3D = endFloorPoint; floorRectangle.Color = Color.White; floorRectangle.Transparency = 0.8; floorRectangle.ExecuteFunction(); _mirrorDocument.Commit("tranparent floor"); return(floorRectangle); }
private static ShapeBoundBox CombineBoundingBoxWithShape(NodeBuilder builder, ShapeBoundBox bounding) { var shapeBoundBox = builder.BoundingBox; if (shapeBoundBox != null) { bounding = bounding.Combine(shapeBoundBox); } return(bounding); }