Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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]);
            }
        }
Beispiel #3
0
        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));
        }
Beispiel #4
0
        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);
        }