diff options
| author | Victoria Plitt <Victoria.Plitt@twine-s.com> | 2021-01-24 08:11:52 +0200 |
|---|---|---|
| committer | Victoria Plitt <Victoria.Plitt@twine-s.com> | 2021-01-24 08:11:52 +0200 |
| commit | 120165cf7b7f164d7a4e83dfafb79cecbf2998cb (patch) | |
| tree | be0f661325594807939c35a7cc56835e65ab17cc | |
| parent | 6faa0e140a4203c13d60b93aa1bad62b37b8ddb9 (diff) | |
| download | Tango-120165cf7b7f164d7a4e83dfafb79cecbf2998cb.tar.gz Tango-120165cf7b7f164d7a4e83dfafb79cecbf2998cb.zip | |
Created Test project - OutOfGamutTest.CLI. Implement functions in C# GetRecommendedProcessParameters and IsOutOfGamut
Related Work Items: #4376
11 files changed, 636 insertions, 14 deletions
diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/ColorConverter.cpp b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/ColorConverter.cpp index 4da243745..5a8a1dbd2 100644 --- a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/ColorConverter.cpp +++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/ColorConverter.cpp @@ -2332,6 +2332,9 @@ size_t Tango::ColorLib::ColorConverter::P_IsInGamut(uint8_t * input_buffer, size //count number if inks int numofInks = 0; int numLightInks = 0; + if (m_colortable == NULL) + m_colortable = new ColorTable(); + CountNumberofInks(conversionInput, numofInks, numLightInks); readColorTransformations(conversionInput); @@ -2339,7 +2342,7 @@ size_t Tango::ColorLib::ColorConverter::P_IsInGamut(uint8_t * input_buffer, size int n_inputliquids = numofInks - numLightInks; InputLiquid **inputliquid = conversionInput->inputcoordinates->inputliquids; //Read CMYK Calibration Tables only. Light Inks have no calibration tables - + readCalibrationTables(inputliquid, n_inputliquids); //Initialize CIECAM02 transformation diff --git a/Software/Visual_Studio/Tango.ColorConversion/DefaultColorConverter.cs b/Software/Visual_Studio/Tango.ColorConversion/DefaultColorConverter.cs index 91f39c503..182ee9aaf 100644 --- a/Software/Visual_Studio/Tango.ColorConversion/DefaultColorConverter.cs +++ b/Software/Visual_Studio/Tango.ColorConversion/DefaultColorConverter.cs @@ -252,11 +252,90 @@ namespace Tango.ColorConversion public bool IsOutOfGamut(BrushStop stop) { - return Convert(stop, false).OutOfGamut; + //return Convert(stop, false).OutOfGamut; + if (stop == null) + { + throw new ArgumentNullException("Specified brush stop is a null reference."); + } + if (stop.Segment == null || stop.Segment.Job == null) + { + throw new ArgumentNullException("The specified brush stop must be a part of a job segment."); + } + + if (stop.Segment.Job.Machine == null || stop.Segment.Job.Machine.Configuration == null) + { + throw new ArgumentNullException("The specified brush stop is associated with a job that is not a part of any machine or the machine does not have any configuration."); + } OutOfGamutInput input = new OutOfGamutInput(); input.ColorSpace = (PMR.ColorLab.ColorSpace)stop.BrushColorSpace; + var rml = stop.Segment.Job.Rml; + if (rml == null) + { + throw new ArgumentNullException("Specified RML is a null reference."); + } + + if (rml.Cct == null || rml.Cct.Data == null) + { + throw new ArgumentNullException("Specified RML CCT data is null."); + } + + Configuration configuration = stop.Segment.Job.Machine.Configuration; + + input.ThreadL = rml.WhitePointL; + input.ThreadA = rml.WhitePointA; + input.ThreadB = rml.WhitePointB; + + input.InputCoordinates = new InputCoordinates(); + + input.InputCoordinates.Red = Math.Max(stop.Red, 1); + input.InputCoordinates.Green = Math.Max(stop.Green, 1); + input.InputCoordinates.Blue = Math.Max(stop.Blue, 1); + + input.InputCoordinates.L = stop.L; + input.InputCoordinates.A = stop.A; + input.InputCoordinates.B = stop.B; + + input.InputCoordinates.Cyan = stop.Cyan; + input.InputCoordinates.Magenta = stop.Magenta; + input.InputCoordinates.Yellow = stop.Yellow; + input.InputCoordinates.Key = stop.Black; + + + input.ForwardData = ByteString.CopyFrom(rml.Cct.Data); + foreach (var prTable in rml.GetActiveProcessGroup().ProcessParametersTables) + { + input.ProcessRanges.Add(new ProcessRange() + { + MinInkUptake = prTable.MinInkUptake, + MaxInkUptake = prTable.MaxInkUptake, + }); + } + foreach (var ids_pack in configuration.GetSupportedIdsPacks(rml)) + { + CalibrationData calibrationData = Cat.CreateDemoCalibrationData((PMR.ColorLab.LiquidType)ids_pack.LiquidType.Code); + + var rml_cat = rml.LiquidTypesRmls.SingleOrDefault(x => x.LiquidType.Code == ids_pack.LiquidType.Code); + + if (rml_cat != null) + { + calibrationData = rml_cat.GetCalibrationData(); + } + + input.InputCoordinates.InputLiquids.Add(new InputLiquid() + { + LiquidType = (PMR.ColorLab.LiquidType)ids_pack.LiquidType.Code, + MaxNanoliterPerCentimeter = ids_pack.LiquidType.LiquidTypesRmls.Single(x => x.Rml == rml).MaxNlPerCm, + Volume = stop.GetVolume(ids_pack.PackIndex), + CalibrationData = calibrationData, + }); + } + + OutOfGamutOutput outOfGamutOutput = IsOutOfGamut( input, 4); + + return outOfGamutOutput.OutOfGamut; + //TODO: Use IsOutOfGamut(OutOfGamutInput input, 4); } @@ -302,26 +381,99 @@ namespace Tango.ColorConversion RecommendedProcessTableInput input = new RecommendedProcessTableInput(); var stops = job.Segments.SelectMany(x => x.BrushStops).Where(x => x.BrushColorSpace != ColorSpaces.Catalog).ToList(); + if (stops.Count == 0) + { + throw new ArgumentOutOfRangeException("THe number of brush stops cannot be zero."); + } + var rml = job.Rml; + if (rml == null) + { + throw new ArgumentNullException("Specified RML is a null reference."); + } + + if (rml.Cct == null || rml.Cct.Data == null) + { + throw new ArgumentNullException("Specified RML CCT data is null."); + } + var configuration = job.Machine.Configuration; + if (configuration == null) + { + throw new ArgumentNullException("Specified machine configuration is a null reference."); + } foreach (var stop in stops) { - input.Stops.Add(new GradientInputStop() - { + GradientInputStop istop = new GradientInputStop(); + istop.ColorSpace = (PMR.ColorLab.ColorSpace)stop.ColorSpace.Code; + istop.Offset = stop.OffsetPercent / 100d; + istop.L = stop.L; + istop.A = stop.A; + istop.B = stop.B; + istop.Red = stop.Red; + istop.Green = stop.Green; + istop.Blue = stop.Blue; + istop.Cyan = stop.Cyan; + istop.Magenta = stop.Magenta; + istop.Yellow = stop.Yellow; + istop.Key = stop.Black; + foreach (var liquidVolume in stop.LiquidVolumesOrderedPigmented) + { + istop.LiquidVolumes.Add(new PMR.ColorLab.LiquidVolume() + { + LiquidType = (PMR.ColorLab.LiquidType)liquidVolume.LiquidType, + Volume = liquidVolume.Volume + }); + } + input.Stops.Add(istop); + } + input.ThreadL = rml.WhitePointL; + input.ThreadA = rml.WhitePointA; + input.ThreadB = rml.WhitePointB; + input.ForwardData = ByteString.CopyFrom(rml.Cct.Data); + foreach (var prTable in rml.GetActiveProcessGroup().ProcessParametersTables) + { + input.ProcessRanges.Add(new ProcessRange() + { + MinInkUptake = prTable.MinInkUptake, + MaxInkUptake = prTable.MaxInkUptake, }); } - RecommendedProcessTableOutput output = GetRecommendedProcessParameters(input, job.Rml.ColorConversionVersion); + foreach (var ids_pack in configuration.GetSupportedIdsPacks(rml)) + { + CalibrationData calibrationData = Cat.CreateDemoCalibrationData((PMR.ColorLab.LiquidType)ids_pack.LiquidType.Code); + + var rml_cat = rml.LiquidTypesRmls.SingleOrDefault(x => x.LiquidType.Code == ids_pack.LiquidType.Code); - var catalogIndex = job.Segments.SelectMany(x => x.BrushStops).Where(x => x.BrushColorSpace == ColorSpaces.Catalog).Max(x => x.ColorCatalogsItem.ProcessParametersTableIndex); + if (rml_cat != null) + { + calibrationData = rml_cat.GetCalibrationData(); + } + + input.InputLiquids.Add(new InputLiquid() + { + LiquidType = (PMR.ColorLab.LiquidType)ids_pack.LiquidType.Code, + MaxNanoliterPerCentimeter = ids_pack.LiquidType.LiquidTypesRmls.Single(x => x.Rml == rml).MaxNlPerCm, + CalibrationData = calibrationData, + }); + } - var maxIndex = Math.Max(output.ProcessParametersTableIndex, catalogIndex); + RecommendedProcessTableOutput output = GetRecommendedProcessParameters(input, job.Rml.ColorConversionVersion); + var maxIndex = output.ProcessParametersTableIndex; + var catalogBrushStops = job.Segments.SelectMany(x => x.BrushStops).Where(x => x.BrushColorSpace == ColorSpaces.Catalog); + if(catalogBrushStops.Count() > 0) + { + var catalogIndex = catalogBrushStops.Max(x => x.ColorCatalogsItem.ProcessParametersTableIndex); + maxIndex = Math.Max(output.ProcessParametersTableIndex, catalogIndex); + } + var processTable = group.ProcessParametersTables.FirstOrDefault(x => x.TableIndex == maxIndex); if (processTable == null) { - //Handle + processTable = group.ProcessParametersTables.FirstOrDefault(); } return processTable; diff --git a/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/App.config b/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/App.config new file mode 100644 index 000000000..332e7dbda --- /dev/null +++ b/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/App.config @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="utf-8"?> +<configuration> + <startup> + <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" /> + </startup> + <runtime> + <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> + <dependentAssembly> + <assemblyIdentity name="Microsoft.IdentityModel.Clients.ActiveDirectory" publicKeyToken="31bf3856ad364e35" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-5.0.5.0" newVersion="5.0.5.0" /> + </dependentAssembly> + </assemblyBinding> + </runtime> +</configuration>
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/ColorFunctionGenerator.cs b/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/ColorFunctionGenerator.cs new file mode 100644 index 000000000..f6d560652 --- /dev/null +++ b/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/ColorFunctionGenerator.cs @@ -0,0 +1,113 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading.Tasks; +using Tango.Core.Helpers; +using Tango.PMR; +using Tango.PMR.ColorLab; + +namespace Tango.ColorLib.OutOfGamutTest.CLI +{ + public class ColorFunctionGenerator + { + static class NativeMethods + { + [DllImport("kernel32.dll")] + public static extern IntPtr LoadLibrary(string dllToLoad); + + [DllImport("kernel32.dll")] + public static extern IntPtr GetProcAddress(IntPtr hModule, string procedureName); + + [DllImport("kernel32.dll")] + public static extern bool FreeLibrary(IntPtr hModule); + } + + public OutOfGamutOutput CheckOutOfGamut(OutOfGamutInput input) + { + String fileName = $"{AssemblyHelper.GetCurrentAssemblyFolder()}\\Tango.ColorLib_v4.dll"; + + if (!File.Exists(fileName)) + { + throw new FileNotFoundException($"Could not find color conversion library '{fileName}'."); + } + + IntPtr pDll = NativeMethods.LoadLibrary(fileName); + IntPtr pAddressOfFunctionToCall = NativeMethods.GetProcAddress(pDll, "CheckOutOfGamut"); + NativeMethodDelegate generateIsOutOfGamut = (NativeMethodDelegate)Marshal.GetDelegateForFunctionPointer( + pAddressOfFunctionToCall, + typeof(NativeMethodDelegate)); + + NativePMR<OutOfGamutInput, OutOfGamutOutput> nativePMR = new NativePMR<OutOfGamutInput, OutOfGamutOutput>(generateIsOutOfGamut); + OutOfGamutOutput output = nativePMR.Invoke(input); + + bool result = NativeMethods.FreeLibrary(pDll); + + if (output.HasError) + { + throw new ExternalException($"Out Of Gamut Check Error: {output.ErrorMessage}!"); + } + + return output; + } + + public ConversionOutput P_IsInGamut(ConversionInput input) + { + String fileName = $"{AssemblyHelper.GetCurrentAssemblyFolder()}\\Tango.ColorLib_v4.dll"; + + if (!File.Exists(fileName)) + { + throw new FileNotFoundException($"Could not find color conversion library '{fileName}'."); + } + + IntPtr pDll = NativeMethods.LoadLibrary(fileName); + IntPtr pAddressOfFunctionToCall = NativeMethods.GetProcAddress(pDll, "P_IsInGamut"); + NativeMethodDelegate generateIsOutOfGamut = (NativeMethodDelegate)Marshal.GetDelegateForFunctionPointer( + pAddressOfFunctionToCall, + typeof(NativeMethodDelegate)); + + NativePMR<ConversionInput, ConversionOutput> nativePMR = new NativePMR<ConversionInput, ConversionOutput>(generateIsOutOfGamut); + ConversionOutput output = nativePMR.Invoke(input); + + bool result = NativeMethods.FreeLibrary(pDll); + if (output.HasError) + { + throw new ExternalException($"Out Of Gamut Check Error: {output.ErrorMessage}!"); + } + + return output; + } + + public RecommendedProcessTableOutput GetRecommendedProcessParameters(RecommendedProcessTableInput input, int version) + { + if (version < 4) version = 4; + + String fileName = $"{AssemblyHelper.GetCurrentAssemblyFolder()}\\Tango.ColorLib_v{version}.dll"; + + if (!File.Exists(fileName)) + { + throw new FileNotFoundException($"Could not find color conversion library '{fileName}'."); + } + + IntPtr pDll = NativeMethods.LoadLibrary(fileName); + IntPtr pAddressOfFunctionToCall = NativeMethods.GetProcAddress(pDll, "GetRecommendedProcessParameters"); + NativeMethodDelegate convert = (NativeMethodDelegate)Marshal.GetDelegateForFunctionPointer( + pAddressOfFunctionToCall, + typeof(NativeMethodDelegate)); + + NativePMR<RecommendedProcessTableInput, RecommendedProcessTableOutput> nativePMR = new NativePMR<RecommendedProcessTableInput, RecommendedProcessTableOutput>(convert); + RecommendedProcessTableOutput output = nativePMR.Invoke(input); + + bool result = NativeMethods.FreeLibrary(pDll); + + if (output.HasError) + { + throw new ExternalException($"Recommended Process Parameters Calculation Error: {output.ErrorMessage}!"); + } + + return output; + } + } +} diff --git a/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/Program.cs b/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/Program.cs new file mode 100644 index 000000000..8628f5b4e --- /dev/null +++ b/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/Program.cs @@ -0,0 +1,191 @@ +using Google.Protobuf; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +using Tango.Core.ExtensionMethods; +using Tango.PMR.ColorLab; + +namespace Tango.ColorLib.OutOfGamutTest.CLI +{ + class Program + { + public static Random _s_random = new Random(); + static void Main(string[] args) + { + ColorFunctionGenerator generator = new ColorFunctionGenerator(); + + Stopwatch watch = new Stopwatch(); + //watch.Start(); + //for (int i = 0; i < 200; i++) + //{ + // bool result = CheckOutOfGamut(generator); + //} + //watch.Stop(); + // Console.WriteLine($"Processing CheckOutOfGamut for 200 brush stops completed after: {watch.Elapsed.Milliseconds.ToString("00000.00")} mseconds."); + // Console.WriteLine(); + watch.Start(); + for (int i = 0; i < 200; i++) + { + bool result = IsInGamut(generator); + } + watch.Stop(); + Console.WriteLine($"Processing IsInGamut for 200 brush stops completed after: {watch.Elapsed.Milliseconds.ToString()} milliseconds."); + Console.WriteLine(); + + Console.WriteLine("Press return to exit..."); + Console.ReadLine(); + } + + public static bool CheckOutOfGamut(ColorFunctionGenerator generator) + { + OutOfGamutInput input = new OutOfGamutInput(); + + input.ThreadL = 92.7867; + input.ThreadA = -0.2519; + input.ThreadB = 0.6968; + + input.ColorSpace = PMR.ColorLab.ColorSpace.Rgb; + input.InputCoordinates = new InputCoordinates(); + + input.InputCoordinates.Red = _s_random.Next(0, 255); + input.InputCoordinates.Green = _s_random.Next(0, 255); + input.InputCoordinates.Blue = _s_random.Next(0, 255); + + //input.InputCoordinates.L = stop.L; + //input.InputCoordinates.A = stop.A; + //input.InputCoordinates.B = stop.B; + + //input.InputCoordinates.Cyan = stop.Cyan; + //input.InputCoordinates.Magenta = stop.Magenta; + //input.InputCoordinates.Yellow = stop.Yellow; + //input.InputCoordinates.Key = stop.Black; + + //Process Ranges + input.ProcessRanges.Add(new ProcessRange() + { + MinInkUptake = 200, + MaxInkUptake = 200, + }); + + input.ProcessRanges.Add(new ProcessRange() + { + MinInkUptake = 200, + MaxInkUptake = 400, + }); + + input.ForwardData = ByteString.CopyFrom(File.ReadAllBytes(@"Sylko_HV_IL350R.cct")); + + //RML Liquid Factors + input.InputCoordinates.InputLiquids.Add(new InputLiquid() + { + LiquidType = LiquidType.Cyan, + CalibrationData = BL.Entities.Cat.CreateDemoCalibrationData(LiquidType.Cyan), + MaxNanoliterPerCentimeter = 200, + }); + + input.InputCoordinates.InputLiquids.Add(new InputLiquid() + { + LiquidType = LiquidType.Magenta, + CalibrationData = BL.Entities.Cat.CreateDemoCalibrationData(LiquidType.Magenta), + MaxNanoliterPerCentimeter = 200, + }); + + input.InputCoordinates.InputLiquids.Add(new InputLiquid() + { + LiquidType = LiquidType.Yellow, + CalibrationData = BL.Entities.Cat.CreateDemoCalibrationData(LiquidType.Yellow), + MaxNanoliterPerCentimeter = 200, + }); + + input.InputCoordinates.InputLiquids.Add(new InputLiquid() + { + LiquidType = LiquidType.Black, + CalibrationData = BL.Entities.Cat.CreateDemoCalibrationData(LiquidType.Black), + MaxNanoliterPerCentimeter = 200, + }); + + OutOfGamutOutput outOfGamutOutput = generator.CheckOutOfGamut(input); + + return outOfGamutOutput.OutOfGamut; + } + + public static bool IsInGamut(ColorFunctionGenerator generator) + { + ConversionInput input = new ConversionInput(); + + input.ThreadL = 92.7867; + input.ThreadA = -0.2519; + input.ThreadB = 0.6968; + + input.ColorSpace = PMR.ColorLab.ColorSpace.Rgb; + input.InputCoordinates = new InputCoordinates(); + + input.InputCoordinates.Red = _s_random.Next(0, 255); + input.InputCoordinates.Green = _s_random.Next(0, 255); + input.InputCoordinates.Blue = _s_random.Next(0, 255); + + //input.InputCoordinates.L = stop.L; + //input.InputCoordinates.A = stop.A; + //input.InputCoordinates.B = stop.B; + + //input.InputCoordinates.Cyan = stop.Cyan; + //input.InputCoordinates.Magenta = stop.Magenta; + //input.InputCoordinates.Yellow = stop.Yellow; + //input.InputCoordinates.Key = stop.Black; + + //Process Ranges + input.ProcessRanges.Add(new ProcessRange() + { + MinInkUptake = 200, + MaxInkUptake = 200, + }); + + input.ProcessRanges.Add(new ProcessRange() + { + MinInkUptake = 200, + MaxInkUptake = 400, + }); + + input.ForwardData = ByteString.CopyFrom(File.ReadAllBytes(@"Sylko_HV_IL350R.cct")); + + //RML Liquid Factors + input.InputCoordinates.InputLiquids.Add(new InputLiquid() + { + LiquidType = LiquidType.Cyan, + CalibrationData = BL.Entities.Cat.CreateDemoCalibrationData(LiquidType.Cyan), + MaxNanoliterPerCentimeter = 200, + }); + + input.InputCoordinates.InputLiquids.Add(new InputLiquid() + { + LiquidType = LiquidType.Magenta, + CalibrationData = BL.Entities.Cat.CreateDemoCalibrationData(LiquidType.Magenta), + MaxNanoliterPerCentimeter = 200, + }); + + input.InputCoordinates.InputLiquids.Add(new InputLiquid() + { + LiquidType = LiquidType.Yellow, + CalibrationData = BL.Entities.Cat.CreateDemoCalibrationData(LiquidType.Yellow), + MaxNanoliterPerCentimeter = 200, + }); + + input.InputCoordinates.InputLiquids.Add(new InputLiquid() + { + LiquidType = LiquidType.Black, + CalibrationData = BL.Entities.Cat.CreateDemoCalibrationData(LiquidType.Black), + MaxNanoliterPerCentimeter = 200, + }); + input.GenerateHive = false; + + ConversionOutput outOfGamutOutput = generator.P_IsInGamut(input); + + return outOfGamutOutput.OutOfGamut; + } + } +} diff --git a/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..eee4cc680 --- /dev/null +++ b/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Tango.ColorLib.OutOfGamutTest.CLI")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Tango.ColorLib.OutOfGamutTest.CLI")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("6b13e186-ade2-4d97-9643-8132e00fc207")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/Sylko_HV_IL350R.cct b/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/Sylko_HV_IL350R.cct Binary files differnew file mode 100644 index 000000000..d164d7c84 --- /dev/null +++ b/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/Sylko_HV_IL350R.cct diff --git a/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/Sylko_HV_IL400Bl95R_1.cct b/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/Sylko_HV_IL400Bl95R_1.cct Binary files differnew file mode 100644 index 000000000..5802a14eb --- /dev/null +++ b/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/Sylko_HV_IL400Bl95R_1.cct diff --git a/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/Tango.ColorLib.OutOfGamutTest.CLI.csproj b/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/Tango.ColorLib.OutOfGamutTest.CLI.csproj new file mode 100644 index 000000000..0080143e5 --- /dev/null +++ b/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/Tango.ColorLib.OutOfGamutTest.CLI.csproj @@ -0,0 +1,86 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProjectGuid>{6B13E186-ADE2-4D97-9643-8132E00FC207}</ProjectGuid> + <OutputType>Exe</OutputType> + <RootNamespace>Tango.ColorLib.OutOfGamutTest.CLI</RootNamespace> + <AssemblyName>Tango.ColorLib.OutOfGamutTest.CLI</AssemblyName> + <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion> + <FileAlignment>512</FileAlignment> + <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> + <Deterministic>true</Deterministic> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <PlatformTarget>AnyCPU</PlatformTarget> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Debug\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <PlatformTarget>AnyCPU</PlatformTarget> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>bin\Release\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <ItemGroup> + <Reference Include="System" /> + <Reference Include="System.Core" /> + <Reference Include="System.Xml.Linq" /> + <Reference Include="System.Data.DataSetExtensions" /> + <Reference Include="Microsoft.CSharp" /> + <Reference Include="System.Data" /> + <Reference Include="System.Net.Http" /> + <Reference Include="System.Xml" /> + </ItemGroup> + <ItemGroup> + <Compile Include="ColorFunctionGenerator.cs" /> + <Compile Include="Program.cs" /> + <Compile Include="Properties\AssemblyInfo.cs" /> + </ItemGroup> + <ItemGroup> + <None Include="App.config" /> + <None Include="packages.config" /> + <None Include="Sylko_HV_IL350R.cct"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="Sylko_HV_IL400Bl95R_1.cct"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + </ItemGroup> + <ItemGroup> + <PackageReference Include="Google.Protobuf"> + <Version>3.4.1</Version> + </PackageReference> + </ItemGroup> + <ItemGroup> + <Content Include="..\Build\ColorLib\Debug\Tango.ColorLib_v4.dll"> + <Link>Tango.ColorLib_v4.dll</Link> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\Tango.BL\Tango.BL.csproj"> + <Project>{f441feee-322a-4943-b566-110e12fd3b72}</Project> + <Name>Tango.BL</Name> + </ProjectReference> + <ProjectReference Include="..\Tango.Core\Tango.Core.csproj"> + <Project>{a34ee0f0-649d-41c8-8489-b6f1cc6924ee}</Project> + <Name>Tango.Core</Name> + </ProjectReference> + <ProjectReference Include="..\Tango.PMR\Tango.PMR.csproj"> + <Project>{e4927038-348d-4295-aaf4-861c58cb3943}</Project> + <Name>Tango.PMR</Name> + </ProjectReference> + </ItemGroup> + <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> +</Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/packages.config b/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/packages.config new file mode 100644 index 000000000..fa3c0d58d --- /dev/null +++ b/Software/Visual_Studio/Tango.ColorLib.OutOfGamutTest.CLI/packages.config @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<packages> + <package id="Google.Protobuf" version="3.4.1" targetFramework="net461" /> +</packages>
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.sln b/Software/Visual_Studio/Tango.sln index 655c00e56..c318d0e60 100644 --- a/Software/Visual_Studio/Tango.sln +++ b/Software/Visual_Studio/Tango.sln @@ -461,6 +461,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.StubsUtils.ProcedureC EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.CsvToJobTester.CLI", "Utilities\Tango.CsvToJobTester.CLI\Tango.CsvToJobTester.CLI.csproj", "{4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.ColorLib.OutOfGamutTest.CLI", "Tango.ColorLib.OutOfGamutTest.CLI\Tango.ColorLib.OutOfGamutTest.CLI.csproj", "{6B13E186-ADE2-4D97-9643-8132E00FC207}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -4376,6 +4378,26 @@ Global {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Release|x64.Build.0 = Release|Any CPU {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Release|x86.ActiveCfg = Release|Any CPU {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Release|x86.Build.0 = Release|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Debug|ARM.ActiveCfg = Debug|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Debug|ARM.Build.0 = Debug|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Debug|ARM64.Build.0 = Debug|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Debug|x64.ActiveCfg = Debug|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Debug|x64.Build.0 = Debug|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Debug|x86.ActiveCfg = Debug|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Debug|x86.Build.0 = Debug|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Release|Any CPU.Build.0 = Release|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Release|ARM.ActiveCfg = Release|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Release|ARM.Build.0 = Release|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Release|ARM64.ActiveCfg = Release|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Release|ARM64.Build.0 = Release|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Release|x64.ActiveCfg = Release|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Release|x64.Build.0 = Release|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Release|x86.ActiveCfg = Release|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -4538,14 +4560,15 @@ Global {5C9A4F46-263D-4C23-B361-F09E14BB109E} = {4A8BD6EC-41CF-46A9-B2CD-9D0DF6465963} {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE} = {4A8BD6EC-41CF-46A9-B2CD-9D0DF6465963} {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B} = {5F6BBAA8-EAD0-4B18-97E5-55B4F56DD760} + {6B13E186-ADE2-4D97-9643-8132E00FC207} = {8336A702-9C49-4C9E-ADCC-1886A666D3BD} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {7986F7F4-A86A-4994-B1B6-0988D7F057B6} - BuildVersion_BuildVersioningStyle = None.None.Increment.DeltaBaseYearDayOfYear - BuildVersion_UpdateAssemblyVersion = True - BuildVersion_UpdateFileVersion = False - BuildVersion_StartDate = 2000/1/1 - BuildVersion_AssemblyInfoFilename = Properties\AssemblyInfo.cs BuildVersion_UseGlobalSettings = False + BuildVersion_AssemblyInfoFilename = Properties\AssemblyInfo.cs + BuildVersion_StartDate = 2000/1/1 + BuildVersion_UpdateFileVersion = False + BuildVersion_UpdateAssemblyVersion = True + BuildVersion_BuildVersioningStyle = None.None.Increment.DeltaBaseYearDayOfYear + SolutionGuid = {7986F7F4-A86A-4994-B1B6-0988D7F057B6} EndGlobalSection EndGlobal |
