private void ResizeClick(object sender, RoutedEventArgs e) { Size3D originalSize = myHull.GetSize(); originalSize.X *= 2; // compensate because this is a half-hull ResizeWindow resize = new ResizeWindow(myHull); resize.ShowDialog(); if (resize.OK) { ResizeWindowData resizeData = (ResizeWindowData)resize.FindResource("ResizeData"); double scale_x = 1.0; double scale_y = 1.0; double scale_z = 1.0; if (resizeData != null) { scale_x = resizeData.Width / originalSize.X; scale_y = resizeData.Height / originalSize.Y; scale_z = resizeData.Length / originalSize.Z; myHull.Scale(scale_x, scale_y, scale_z); UpdateDisplays(); } } }
public ResizeWindow(Hull hull) { InitializeComponent(); ResizeWindowData resizeData = (ResizeWindowData)this.FindResource("ResizeData"); if (resizeData != null) { bool proportional = resizeData.Proportional; // Need to turn off Proportional for initial setup resizeData.Proportional = false; Size3D size = hull.GetSize(); resizeData.Width = size.X * 2; // multiply by 2 because this is half-hull resizeData.Height = size.Y; resizeData.Length = size.Z; resizeData.Proportional = true; // Reset proportional resizeData.Proportional = proportional; } }