private IMoveableSection getSliceOfArea(double Area, SLiceType sliceType) { double ConvergenceTolerance = this.A * 0.0001; double targetAreaDelta = 0.0; double AxisLocationDistanceMin = 0.0; double AxisLocationDistanceMax = this.YMax - this.YMin; //Iterate until the slice area is as required targetArea = Area; if (sliceType == SLiceType.Bottom) { double SliceAxisOffsetFromTop = RootFinding.Brent(new FunctionOfOneVariable(BottomAreaDeltaCalculationFunction), AxisLocationDistanceMin, AxisLocationDistanceMax, ConvergenceTolerance, targetAreaDelta); } else { double SliceAxisOffsetFromTop = RootFinding.Brent(new FunctionOfOneVariable(TopAreaDeltaCalculationFunction), AxisLocationDistanceMin, AxisLocationDistanceMax, ConvergenceTolerance, targetAreaDelta); } return(cutSection); //the section was stored during the iteration }
private IMoveableSection getSliceOfArea(double Area, SLiceType sliceType) { double ConvergenceTolerance = this.A * 0.0001; double targetAreaDelta = 0.0; double AxisLocationDistanceMin = 0.0; double AxisLocationDistanceMax = this.YMax - this.YMin; //Iterate until the slice area is as required targetArea = Area; if (sliceType == SLiceType.Bottom) { double SliceAxisOffsetFromTop = RootFinding.Brent(new FunctionOfOneVariable(BottomAreaDeltaCalculationFunction), AxisLocationDistanceMin, AxisLocationDistanceMax, ConvergenceTolerance, targetAreaDelta); } else { double SliceAxisOffsetFromTop = RootFinding.Brent(new FunctionOfOneVariable(TopAreaDeltaCalculationFunction), AxisLocationDistanceMin, AxisLocationDistanceMax, ConvergenceTolerance, targetAreaDelta); } return cutSection; //the section was stored during the iteration }