Exemple #1
0
    public void Test_PassCountSummaryPalette_ChooseColour_MachineTargetRange()
    {
      var palette = new PassCountSummaryPalette();

      palette.Should().NotBeNull();

      palette.UseMachineTargetPass = true;
      palette.UseMachineTargetPass.Should().Be(true);

      var data = new SubGridCellPassDataPassCountEntryRecord(MEASURED_PASS_COUNT, TARGET_PASS_COUNT);
      var colors = new[]
      {
        palette.BelowPassTargetRangeColour,
        palette.BelowPassTargetRangeColour,
        palette.BelowPassTargetRangeColour,
        palette.BelowPassTargetRangeColour,
        palette.BelowPassTargetRangeColour,
        palette.BelowPassTargetRangeColour,
        palette.WithinPassTargetRangeColour,
        palette.AbovePassTargetRangeColour,
        palette.AbovePassTargetRangeColour
      };

      for (var i = 0; i < colors.Length; i++)
      {
        data.MeasuredPassCount = (ushort)(MEASURED_PASS_COUNT + i * PASS_COUNT_INCREMENT);
        palette.ChooseColour(data.MeasuredPassCount, data.TargetPassCount, data.TargetPassCount).Should().Be(colors[i]);
      }
    }
Exemple #2
0
    public void Test_PassCountSummaryPalette_Creation()
    {
      var palette = new PassCountSummaryPalette();

      palette.Should().NotBeNull();

      palette.TargetPassCountRange.Min.Should().Be(3);
      palette.TargetPassCountRange.Max.Should().Be(5);
      palette.UseMachineTargetPass.Should().Be(false);

      palette.AbovePassTargetRangeColour.Should().Be(Color.Red);
      palette.WithinPassTargetRangeColour.Should().Be(Color.Lime);
      palette.BelowPassTargetRangeColour.Should().Be(Color.Blue);

      palette.PaletteTransitions.Should().BeNull();
    }
Exemple #3
0
    public void Test_PassCountSummaryPalette_ChooseColour_NullOverrideTargetRange()
    {
      var palette = new PassCountSummaryPalette();

      palette.Should().NotBeNull();

      palette.TargetPassCountRange = new PassCountRangeRecord(CellPassConsts.NullPassCountValue, CellPassConsts.NullPassCountValue);
      palette.TargetPassCountRange.Min.Should().Be(CellPassConsts.NullPassCountValue);
      palette.TargetPassCountRange.Max.Should().Be(CellPassConsts.NullPassCountValue);

      var data = new SubGridCellPassDataPassCountEntryRecord(MEASURED_PASS_COUNT, TARGET_PASS_COUNT);
      var colors = new[] { Color.Empty, Color.Empty, Color.Empty, Color.Empty, Color.Empty, Color.Empty, Color.Empty, Color.Empty, Color.Empty };

      for (var i = 0; i < colors.Length; i++)
      {
        data.MeasuredPassCount = (ushort)(MEASURED_PASS_COUNT + i * PASS_COUNT_INCREMENT);
        palette.ChooseColour(data.MeasuredPassCount, data.TargetPassCount, data.TargetPassCount).Should().Be(colors[i]);
      }
    }
Exemple #4
0
        private PaletteBase ConvertColorPalettes(TRexTileRequest request, ISiteModel siteModel)
        {
            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;

            var overrides = AutoMapperUtility.Automapper.Map <OverrideParameters>(request.Overrides);

            PaletteBase convertedPalette;

            var availableTransitions = request.Palettes != null?request.Palettes.Select(p => new Transition(p.Value, ColorUtility.UIntToColor(p.Color))).ToArray() : new Transition[0];

            switch (request.Mode)
            {
            case DisplayMode.CCA:
                convertedPalette = new CCAPalette();
                convertedPalette.PaletteTransitions = availableTransitions;
                break;

            case DisplayMode.CCASummary:
                convertedPalette = new CCASummaryPalette();

                var ccaSummaryPalette = ((CCASummaryPalette)convertedPalette);

                if (request.Palettes != null)
                {
                    ccaSummaryPalette.UndercompactedColour = ColorUtility.UIntToColor(request.Palettes[0].Color);
                    ccaSummaryPalette.CompactedColour      = ColorUtility.UIntToColor(request.Palettes[1].Color);
                    ccaSummaryPalette.OvercompactedColour  = ColorUtility.UIntToColor(request.Palettes[2].Color);
                }

                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;

                cmvPalette.PaletteTransitions = availableTransitions;
                break;

            case DisplayMode.CCVPercent:
            case DisplayMode.CCVPercentSummary:
            case DisplayMode.CCVPercentChange:
                convertedPalette = new CCVPercentPalette();

                var cmvPercentPalette = ((CCVPercentPalette)convertedPalette);

                cmvPercentPalette.CMVPercentageRange.Min = overrides?.CMVRange.Min ?? PERCENTAGE_RANGE_MIN;
                cmvPercentPalette.CMVPercentageRange.Max = overrides?.CMVRange.Max ?? PERCENTAGE_RANGE_MAX;

                cmvPercentPalette.UseMachineTargetCMV = !overrides?.OverrideMachineCCV ?? true;
                cmvPercentPalette.AbsoluteTargetCMV   = overrides?.OverridingMachineCCV ?? 0;

                if (request.Palettes != null)
                {
                    cmvPercentPalette.WithinCMVTargetRangeColour = ColorUtility.UIntToColor(request.Palettes[0].Color);
                    cmvPercentPalette.BelowCMVTargetRangeColour  = ColorUtility.UIntToColor(request.Palettes[2].Color);
                    cmvPercentPalette.AboveCMVTargetRangeColour  = ColorUtility.UIntToColor(request.Palettes[3].Color);
                }

                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;

                cmvPercentChangePalette.PaletteTransitions = availableTransitions;
                break;

            case DisplayMode.CutFill:
                convertedPalette = new CutFillPalette();
                convertedPalette.PaletteTransitions = availableTransitions;
                break;

            case DisplayMode.Height:
                convertedPalette = request.Palettes != null ? new HeightPalette(request.Palettes.First().Value, request.Palettes.Last().Value) : new HeightPalette();

                ((HeightPalette)convertedPalette).ElevationPalette = request.Palettes?.Select(p => ColorUtility.UIntToColor(p.Color)).ToArray();

                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;

                mdpPalette.PaletteTransitions = availableTransitions;
                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;

                if (request.Palettes != null)
                {
                    mdpSummaryPalette.WithinMDPTargetRangeColour = ColorUtility.UIntToColor(request.Palettes[0].Color);
                    mdpSummaryPalette.BelowMDPTargetRangeColour  = ColorUtility.UIntToColor(request.Palettes[2].Color);
                    mdpSummaryPalette.AboveMDPTargetRangeColour  = ColorUtility.UIntToColor(request.Palettes[3].Color);
                }

                break;

            case DisplayMode.PassCount:
                convertedPalette = new PassCountPalette();
                convertedPalette.PaletteTransitions = availableTransitions;
                break;

            case DisplayMode.PassCountSummary:
                convertedPalette = new PassCountSummaryPalette();

                var passCountPalette = ((PassCountSummaryPalette)convertedPalette);

                if (request.Palettes != null)
                {
                    passCountPalette.AbovePassTargetRangeColour  = ColorUtility.UIntToColor(request.Palettes[2].Color);
                    passCountPalette.WithinPassTargetRangeColour = ColorUtility.UIntToColor(request.Palettes[1].Color);
                    passCountPalette.BelowPassTargetRangeColour  = ColorUtility.UIntToColor(request.Palettes[0].Color);
                }

                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();
                convertedPalette.PaletteTransitions = availableTransitions;
                break;

            case DisplayMode.TargetSpeedSummary:
                convertedPalette = new SpeedSummaryPalette();

                var speedSummaryPalette = ((SpeedSummaryPalette)convertedPalette);

                if (request.Palettes != null)
                {
                    speedSummaryPalette.LowerSpeedRangeColour  = ColorUtility.UIntToColor(request.Palettes[0].Color);
                    speedSummaryPalette.WithinSpeedRangeColour = ColorUtility.UIntToColor(request.Palettes[1].Color);
                    speedSummaryPalette.OverSpeedRangeColour   = ColorUtility.UIntToColor(request.Palettes[2].Color);
                }

                speedSummaryPalette.MachineSpeedTarget.Min = overrides?.TargetMachineSpeed.Min ?? CellPassConsts.NullMachineSpeed;
                speedSummaryPalette.MachineSpeedTarget.Max = overrides?.TargetMachineSpeed.Max ?? CellPassConsts.NullMachineSpeed;
                break;

            case DisplayMode.TemperatureDetail:
                convertedPalette = new TemperaturePalette();
                convertedPalette.PaletteTransitions = availableTransitions;
                break;

            case DisplayMode.TemperatureSummary:
                convertedPalette = new TemperatureSummaryPalette();

                var temperatureSummaryPalette = ((TemperatureSummaryPalette)convertedPalette);

                if (request.Palettes != null)
                {
                    temperatureSummaryPalette.AboveMaxLevelColour = ColorUtility.UIntToColor(request.Palettes[2].Color);
                    temperatureSummaryPalette.WithinLevelsColour  = ColorUtility.UIntToColor(request.Palettes[1].Color);
                    temperatureSummaryPalette.BelowMinLevelColour = ColorUtility.UIntToColor(request.Palettes[0].Color);
                }

                temperatureSummaryPalette.UseMachineTempWarningLevels = !overrides?.OverrideTemperatureWarningLevels ?? true;
                temperatureSummaryPalette.TemperatureLevels.Min       = overrides?.OverridingTemperatureWarningLevels.Min ?? TEMPERATURE_LEVELS_MIN;
                temperatureSummaryPalette.TemperatureLevels.Max       = overrides?.OverridingTemperatureWarningLevels.Max ?? TEMPERATURE_LEVELS_MAX;
                break;

            case DisplayMode.CompactionCoverage:
                convertedPalette = new CompactionCoveragePalette();

                var compactionCoveragePalette = ((CompactionCoveragePalette)convertedPalette);
                compactionCoveragePalette.HasCMVData   = availableTransitions[0].Color;
                compactionCoveragePalette.HasNoCMVData = availableTransitions[1].Color;
                break;

            default:
                // when adding modes, there are various other places in the code which will need work
                throw new TRexException($"No implemented colour palette for this mode ({request.Mode})");
            }

            return(convertedPalette);
        }
Exemple #5
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);
        }