public void Test_HeightPalette_ChooseColour_NullElevation() { var palette = new HeightPalette(MIN_ELEVATION, MAX_ELEVATION); palette.Should().NotBeNull(); for (var i = 0; i < palette.ElevationPalette.Length; i++) { palette.ChooseColour(CellPassConsts.NullHeight).Should().Be(Color.Black); } }
public void Test_HeightPalette_ChooseColour() { const float START_ELEVATION = 110.0f; const float ELEVATION_INCREMENT = 13.33333333333333f; var palette = new HeightPalette(MIN_ELEVATION, MAX_ELEVATION); palette.Should().NotBeNull(); for (var i = 0; i < palette.ElevationPalette.Length; i++) { palette.ChooseColour(START_ELEVATION + i * ELEVATION_INCREMENT).Should().Be(palette.ElevationPalette[i]); } }
public void Test_HeightPalette_Creation() { var palette = new HeightPalette(); palette.Should().NotBeNull(); palette.PaletteTransitions.Should().BeNull(); palette.ElevationPalette.Should().NotBeNull(); palette.ElevationPalette.Length.Should().Be(31); palette.ElevationPalette[0].Should().Be(Color.FromArgb(200, 0, 0)); palette.ElevationPalette[1].Should().Be(Color.FromArgb(255, 0, 0)); palette.ElevationPalette[2].Should().Be(Color.FromArgb(225, 60, 0)); palette.ElevationPalette[3].Should().Be(Color.FromArgb(255, 90, 0)); palette.ElevationPalette[4].Should().Be(Color.FromArgb(255, 130, 0)); palette.ElevationPalette[5].Should().Be(Color.FromArgb(255, 170, 0)); palette.ElevationPalette[6].Should().Be(Color.FromArgb(255, 200, 0)); palette.ElevationPalette[7].Should().Be(Color.FromArgb(255, 220, 0)); palette.ElevationPalette[8].Should().Be(Color.FromArgb(250, 230, 0)); palette.ElevationPalette[9].Should().Be(Color.FromArgb(220, 230, 0)); palette.ElevationPalette[10].Should().Be(Color.FromArgb(210, 230, 0)); palette.ElevationPalette[11].Should().Be(Color.FromArgb(200, 230, 0)); palette.ElevationPalette[12].Should().Be(Color.FromArgb(180, 230, 0)); palette.ElevationPalette[13].Should().Be(Color.FromArgb(150, 230, 0)); palette.ElevationPalette[14].Should().Be(Color.FromArgb(130, 230, 0)); palette.ElevationPalette[15].Should().Be(Color.FromArgb(100, 240, 0)); palette.ElevationPalette[16].Should().Be(Color.FromArgb(0, 255, 0)); palette.ElevationPalette[17].Should().Be(Color.FromArgb(0, 240, 100)); palette.ElevationPalette[18].Should().Be(Color.FromArgb(0, 230, 130)); palette.ElevationPalette[19].Should().Be(Color.FromArgb(0, 230, 150)); palette.ElevationPalette[20].Should().Be(Color.FromArgb(0, 230, 180)); palette.ElevationPalette[21].Should().Be(Color.FromArgb(0, 230, 200)); palette.ElevationPalette[22].Should().Be(Color.FromArgb(0, 230, 210)); palette.ElevationPalette[23].Should().Be(Color.FromArgb(0, 220, 220)); palette.ElevationPalette[24].Should().Be(Color.FromArgb(0, 200, 230)); palette.ElevationPalette[25].Should().Be(Color.FromArgb(0, 180, 240)); palette.ElevationPalette[26].Should().Be(Color.FromArgb(0, 150, 245)); palette.ElevationPalette[27].Should().Be(Color.FromArgb(0, 120, 250)); palette.ElevationPalette[28].Should().Be(Color.FromArgb(0, 90, 255)); palette.ElevationPalette[29].Should().Be(Color.FromArgb(0, 70, 255)); palette.ElevationPalette[30].Should().Be(Color.FromArgb(0, 0, 255)); }
private PaletteBase ConvertColorPalettes(DisplayMode mode, ISiteModel siteModel, OverrideParameters overrides) { const double PERCENTAGE_RANGE_MIN = 0.0; const double PERCENTAGE_RANGE_MAX = 100.0; const ushort PASS_COUNT_TARGET_RANGE_MIN = 1; const ushort PASS_COUNT_TARGET_RANGE_MAX = ushort.MaxValue; const ushort TEMPERATURE_LEVELS_MIN = 0; const ushort TEMPERATURE_LEVELS_MAX = 100; PaletteBase convertedPalette; switch (mode) { case DisplayMode.CCA: convertedPalette = new CCAPalette(); break; case DisplayMode.CCASummary: convertedPalette = new CCASummaryPalette(); break; case DisplayMode.CCV: convertedPalette = new CMVPalette(); var cmvPalette = ((CMVPalette)convertedPalette); cmvPalette.CMVPercentageRange.Min = overrides?.CMVRange.Min ?? PERCENTAGE_RANGE_MIN; cmvPalette.CMVPercentageRange.Max = overrides?.CMVRange.Max ?? PERCENTAGE_RANGE_MAX; cmvPalette.UseMachineTargetCMV = !overrides?.OverrideMachineCCV ?? true; cmvPalette.AbsoluteTargetCMV = overrides?.OverridingMachineCCV ?? 0; cmvPalette.TargetCCVColour = Color.Green; cmvPalette.DefaultDecoupledCMVColour = Color.Black; break; case DisplayMode.CCVPercent: case DisplayMode.CCVPercentSummary: case DisplayMode.CCVPercentChange: convertedPalette = new CCVPercentPalette(); var cmvSummaryPalette = ((CCVPercentPalette)convertedPalette); cmvSummaryPalette.CMVPercentageRange.Min = overrides?.CMVRange.Min ?? PERCENTAGE_RANGE_MIN; cmvSummaryPalette.CMVPercentageRange.Max = overrides?.CMVRange.Max ?? PERCENTAGE_RANGE_MAX; cmvSummaryPalette.UseMachineTargetCMV = !overrides?.OverrideMachineCCV ?? true; cmvSummaryPalette.AbsoluteTargetCMV = overrides?.OverridingMachineCCV ?? 0; break; case DisplayMode.CMVChange: convertedPalette = new CMVChangePalette(); var cmvPercentChangePalette = ((CMVChangePalette)convertedPalette); cmvPercentChangePalette.CMVPercentageRange.Min = overrides?.CMVRange.Min ?? PERCENTAGE_RANGE_MIN; cmvPercentChangePalette.CMVPercentageRange.Max = overrides?.CMVRange.Max ?? PERCENTAGE_RANGE_MAX; cmvPercentChangePalette.UseAbsoluteValues = false; cmvPercentChangePalette.UseMachineTargetCMV = !overrides?.OverrideMachineCCV ?? true; cmvPercentChangePalette.AbsoluteTargetCMV = overrides?.OverridingMachineCCV ?? 0; cmvPercentChangePalette.TargetCCVColour = Color.Green; cmvPercentChangePalette.DefaultDecoupledCMVColour = Color.Black; break; case DisplayMode.CutFill: convertedPalette = new CutFillPalette(); break; case DisplayMode.Height: var extent = siteModel.GetAdjustedDataModelSpatialExtents(new Guid[0]); convertedPalette = new HeightPalette(extent.MinZ, extent.MaxZ); break; case DisplayMode.MDP: convertedPalette = new MDPPalette(); var mdpPalette = ((MDPPalette)convertedPalette); mdpPalette.MDPPercentageRange.Min = overrides?.MDPRange.Min ?? PERCENTAGE_RANGE_MIN; mdpPalette.MDPPercentageRange.Max = overrides?.MDPRange.Max ?? PERCENTAGE_RANGE_MAX; mdpPalette.UseMachineTargetMDP = !overrides?.OverrideMachineMDP ?? true; mdpPalette.AbsoluteTargetMDP = overrides?.OverridingMachineMDP ?? 0; mdpPalette.TargetMDPColour = Color.Green; break; case DisplayMode.MDPPercentSummary: convertedPalette = new MDPSummaryPalette(); var mdpSummaryPalette = ((MDPSummaryPalette)convertedPalette); mdpSummaryPalette.MDPPercentageRange.Min = overrides?.MDPRange.Min ?? PERCENTAGE_RANGE_MIN; mdpSummaryPalette.MDPPercentageRange.Max = overrides?.MDPRange.Max ?? PERCENTAGE_RANGE_MAX; mdpSummaryPalette.UseMachineTargetMDP = !overrides?.OverrideMachineMDP ?? true; mdpSummaryPalette.AbsoluteTargetMDP = overrides?.OverridingMachineMDP ?? 0; break; case DisplayMode.PassCount: convertedPalette = new PassCountPalette(); break; case DisplayMode.PassCountSummary: convertedPalette = new PassCountSummaryPalette(); var passCountPalette = ((PassCountSummaryPalette)convertedPalette); passCountPalette.UseMachineTargetPass = !overrides?.OverrideTargetPassCount ?? true; passCountPalette.TargetPassCountRange.Min = overrides?.OverridingTargetPassCountRange.Min ?? PASS_COUNT_TARGET_RANGE_MIN; passCountPalette.TargetPassCountRange.Max = overrides?.OverridingTargetPassCountRange.Max ?? PASS_COUNT_TARGET_RANGE_MAX; break; case DisplayMode.MachineSpeed: convertedPalette = new SpeedPalette(); break; case DisplayMode.TargetSpeedSummary: convertedPalette = new SpeedSummaryPalette(); var speedSummaryPalette = ((SpeedSummaryPalette)convertedPalette); speedSummaryPalette.MachineSpeedTarget.Min = overrides?.TargetMachineSpeed.Min ?? CellPassConsts.NullMachineSpeed; speedSummaryPalette.MachineSpeedTarget.Max = overrides?.TargetMachineSpeed.Max ?? CellPassConsts.NullMachineSpeed; break; case DisplayMode.TemperatureDetail: convertedPalette = new TemperaturePalette(); break; case DisplayMode.TemperatureSummary: convertedPalette = new TemperatureSummaryPalette(); var temperatureSummaryPalette = ((TemperatureSummaryPalette)convertedPalette); temperatureSummaryPalette.UseMachineTempWarningLevels = !overrides?.OverrideTemperatureWarningLevels ?? true; temperatureSummaryPalette.TemperatureLevels.Min = overrides?.OverridingTemperatureWarningLevels.Min ?? TEMPERATURE_LEVELS_MIN; temperatureSummaryPalette.TemperatureLevels.Max = overrides?.OverridingTemperatureWarningLevels.Max ?? TEMPERATURE_LEVELS_MAX; break; default: throw new TRexException($"No implemented color palette for this mode ({mode})"); } return(convertedPalette); }