public void AddHeightControl(IObject3D item, DoubleOrExpression width, DoubleOrExpression depth, DoubleOrExpression height) { Func <double> getWidth = () => width.Value(item); Action <double> setWidth = (newWidth) => width.Expression = newWidth.ToString(); Func <double> getDepth = () => depth.Value(item); Action <double> setDepth = (newDepth) => depth.Expression = newDepth.ToString(); Func <double> getHeight = null; Action <double> setHeight = null; if (height != null) { getHeight = () => height.Value(item); setHeight = (newHeight) => height.Expression = newHeight.ToString(); } Object3DControls.Add(new ScaleHeightControl(this, getWidth, setWidth, getDepth, setDepth, getHeight, setHeight)); }
public void AddWidthDepthControls(IObject3D item, DoubleOrExpression width, DoubleOrExpression depth, DoubleOrExpression height) { Func <double> getWidth = () => width.Value(item); Action <double> setWidth = (newWidth) => width.Expression = newWidth.ToString(); Func <double> getDepth = () => depth.Value(item); Action <double> setDepth = (newDepth) => depth.Expression = newDepth.ToString(); Func <double> getHeight = null; Action <double> setHeight = null; if (height != null) { getHeight = () => height.Value(item); setHeight = (newHeight) => height.Expression = newHeight.ToString(); } if (width != null && !width.IsEquation && depth != null && !depth.IsEquation) { for (int i = 0; i < 4; i++) { Object3DControls.Add(new ScaleWidthDepthCornerControl(this, getWidth, setWidth, getDepth, setDepth, getHeight, setHeight, i)); Object3DControls.Add(new ScaleWidthDepthEdgeControl(this, getWidth, setWidth, getDepth, setDepth, getHeight, setHeight, i)); } } else { // if the width is set and a constant if (width != null && !width.IsEquation) { // add width side controls Object3DControls.Add(new ScaleWidthDepthEdgeControl(this, getWidth, setWidth, null, null, getHeight, setHeight, 1)); Object3DControls.Add(new ScaleWidthDepthEdgeControl(this, getWidth, setWidth, null, null, getHeight, setHeight, 3)); } // if the depth is set and a constant if (depth != null && !depth.IsEquation) { // add depth side controls Object3DControls.Add(new ScaleWidthDepthEdgeControl(this, null, null, getDepth, setDepth, getHeight, setHeight, 0)); Object3DControls.Add(new ScaleWidthDepthEdgeControl(this, null, null, getDepth, setDepth, getHeight, setHeight, 2)); } } }