private string[] GetLegendLabels(PlotDataType datatype) { string solverString = null; OpticalProperties opticalProperties = null; string modelString = null; ForwardSolverType forwardSolver; switch (datatype) { case PlotDataType.Simulated: solverString = "\nSimulated:"; opticalProperties = MeasuredOpticalPropertyVM.GetOpticalProperties(); forwardSolver = MeasuredForwardSolverTypeOptionVM.SelectedValue; break; case PlotDataType.Calculated: solverString = "\nCalculated:"; opticalProperties = ResultOpticalPropertyVM.GetOpticalProperties(); forwardSolver = MeasuredForwardSolverTypeOptionVM.SelectedValue; break; case PlotDataType.Guess: solverString = "\nGuess:"; opticalProperties = InitialGuessOpticalPropertyVM.GetOpticalProperties(); forwardSolver = InverseForwardSolverTypeOptionVM.SelectedValue; break; default: throw new ArgumentOutOfRangeException("datatype"); } var opString = "\rμa=" + opticalProperties.Mua.ToString("F4") + " \rμs'=" + opticalProperties.Musp.ToString("F4"); switch (forwardSolver) { case ForwardSolverType.DistributedGaussianSourceSDA: case ForwardSolverType.DistributedPointSourceSDA: case ForwardSolverType.PointSourceSDA: modelString = "\rModel - SDA"; break; case ForwardSolverType.MonteCarlo: modelString = "\rModel - scaled MC"; break; case ForwardSolverType.Nurbs: modelString = "\rModel - nurbs"; break; case ForwardSolverType.TwoLayerSDA: modelString = "\rModel - 2 layer SDA"; break; } if (_allRangeVMs.Length > 1) { var isWavelengthPlot = _allRangeVMs.Any(vm => vm.AxisType == IndependentVariableAxis.Wavelength); var secondaryRangeVM = isWavelengthPlot ? _allRangeVMs.Where(vm => vm.AxisType != IndependentVariableAxis.Wavelength).First() : _allRangeVMs.Where(vm => vm.AxisType != IndependentVariableAxis.Time && vm.AxisType != IndependentVariableAxis.Ft).First(); string[] secondaryAxesStrings = secondaryRangeVM.Values.Select(value => "\r" + secondaryRangeVM.AxisType.GetInternationalizedString() + " = " + value.ToString()).ToArray(); return secondaryAxesStrings.Select(sas => solverString + modelString + sas + (isWavelengthPlot ? "\r(spectral μa,μs')" : opString)).ToArray(); } return new []{ solverString + modelString + opString }; }
private object GetMeasuredOpticalProperties() { return GetOpticalPropertiesFromSpectralPanel() ?? new[] { MeasuredOpticalPropertyVM.GetOpticalProperties() }; }