diff options
| author | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2024-11-24 23:28:19 +0200 |
|---|---|---|
| committer | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2024-11-24 23:28:19 +0200 |
| commit | 9e9a565b76877c7bcedd82639c4b5f851196ea90 (patch) | |
| tree | 81e111fa5cd84d48d9b4aadfeaf6cdcf29267c31 /Software/Visual_Studio | |
| parent | 331266b13685e16520ae5baa8a7aff50789c31df (diff) | |
| download | Tango-9e9a565b76877c7bcedd82639c4b5f851196ea90.tar.gz Tango-9e9a565b76877c7bcedd82639c4b5f851196ea90.zip | |
Added Extra Inks + Color Blending + MS Handling.
Removed Violet Impl.
Updated Inks LAB.
Diffstat (limited to 'Software/Visual_Studio')
45 files changed, 998 insertions, 2047 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml index c9842d494..5d9325145 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml @@ -802,7 +802,9 @@ <Grid HorizontalAlignment="Right" Margin="0 0 0 0"> <StackPanel HorizontalAlignment="Right" Margin="0 0 0 0"> <StackPanel Margin="0 10 0 0" Orientation="Horizontal" VerticalAlignment="Center"> - <ItemsControl ItemsSource="{Binding LiquidTypesRmlsOrdered}" IsEnabled="{Binding AuthenticationProvider.CurrentUser,Converter={StaticResource UserRoleToBooleanConverter},ConverterParameter='Researcher'}"> + + <Viewbox Width="700" MaxHeight="65" HorizontalAlignment="Right"> + <ItemsControl ItemsSource="{Binding LiquidTypesRmlsOrdered}" IsEnabled="{Binding AuthenticationProvider.CurrentUser,Converter={StaticResource UserRoleToBooleanConverter},ConverterParameter='Researcher'}"> <ItemsControl.ItemsPanel> <ItemsPanelTemplate> <WrapPanel IsItemsHost="True"></WrapPanel> @@ -828,7 +830,7 @@ </DataTemplate> </ItemsControl.ItemTemplate> </ItemsControl> - + </Viewbox> <StackPanel Margin="0 20 0 0"> <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Margin="0 0 0 5" ToolTip="Sort the liquid volumes by their liquid type preferred index"> <Viewbox Width="25"> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/ViewModels/ColorConversionViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/ViewModels/ColorConversionViewVM.cs index be7dc3a67..b9e2ebf5d 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/ViewModels/ColorConversionViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/ViewModels/ColorConversionViewVM.cs @@ -248,12 +248,6 @@ namespace Tango.MachineStudio.RML.ViewModels input.UseLubricantTransform = RML.UseLubricantTransform; input.VMax = RML.VMax; - input.SetPredictionType(RML.PredictionType); - input.SetPredictionMethod(RML.PredictionMethod); - input.CMYKVHueThreshhold = RML.CmykvHueThreshold; - input.CMYKVK = RML.KNearestK; - input.SimpleRGBPreviewFactor = RML.SimpleRgbPreviewFactor; - //Validate calibration data foreach (var vm in LiquidsCalibrationData.Where(x => x.LiquidType.HasPigment)) { @@ -288,6 +282,8 @@ namespace Tango.MachineStudio.RML.ViewModels inputLiquid.LiquidType = (PMR.ColorLab.LiquidType)vm.LiquidType.Code; inputLiquid.MaxNanoliterPerCentimeter = LiquidTypesRmls.SingleOrDefault(x => x.LiquidType.Code == vm.LiquidType.Code).MaxNlPerCm; + inputLiquid.IsExtraInk = vm.LiquidType.IsExtraInk; + inputLiquid.Color = vm.LiquidType.Color; input.InputCoordinates.InputLiquids.Add(inputLiquid); } @@ -393,12 +389,6 @@ namespace Tango.MachineStudio.RML.ViewModels input.UseLubricantTransform = RML.UseLubricantTransform; input.VMax = RML.VMax; - input.SetPredictionType(RML.PredictionType); - input.SetPredictionMethod(RML.PredictionMethod); - input.CMYKVHueThreshhold = RML.CmykvHueThreshold; - input.CMYKVK = RML.KNearestK; - input.SimpleRGBPreviewFactor = RML.SimpleRgbPreviewFactor; - foreach (var vm in LiquidsCalibrationData.Where(x => x.LiquidType.HasPigment)) { InputLiquid inputLiquid = new InputLiquid(); @@ -412,6 +402,8 @@ namespace Tango.MachineStudio.RML.ViewModels inputLiquid.LiquidType = (PMR.ColorLab.LiquidType)vm.LiquidType.Code; inputLiquid.MaxNanoliterPerCentimeter = LiquidTypesRmls.SingleOrDefault(x => x.LiquidType.Code == vm.LiquidType.Code).MaxNlPerCm; inputLiquid.Volume = LiquidVolumes.SingleOrDefault(x => x.LiquidType == vm.LiquidType).Volume; + inputLiquid.IsExtraInk = vm.LiquidType.IsExtraInk; + inputLiquid.Color = vm.LiquidType.Color; input.InputCoordinates.InputLiquids.Add(inputLiquid); } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/ViewModels/MainViewVM.cs index db0d7e2aa..0962cd4d1 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/ViewModels/MainViewVM.cs @@ -350,31 +350,7 @@ namespace Tango.MachineStudio.RML.ViewModels public override async void OnApplicationReady() { - using (_notification.PushTaskItem("Loading color measurements...")) - { - using (var db = ObservablesContext.CreateDefault()) - { - var measurements = await db.ColorMeasurements.ToListAsync(); - - List<PMR.ColorLab.ColorMeasurement> pmrMeasurements = new List<PMR.ColorLab.ColorMeasurement>(); - foreach (var m in measurements) - { - pmrMeasurements.Add(new PMR.ColorLab.ColorMeasurement() - { - C = m.C, - M = m.M, - Y = m.Y, - K = m.K, - V = m.V, - L = m.L, - A = m.A, - B = m.B, - }); - } - - DefaultColorConverter.SetMeasurements(pmrMeasurements); - } - } + } private async Task LoadRmls() diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/ColorConversionView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/ColorConversionView.xaml index c3816e93f..a86707319 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/ColorConversionView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/ColorConversionView.xaml @@ -243,7 +243,8 @@ </StackPanel> </StackPanel> - <ItemsControl ItemsSource="{Binding LiquidVolumes}" VerticalAlignment="Center" MinWidth="420" > + <Viewbox MaxHeight="80" HorizontalAlignment="Right"> + <ItemsControl ItemsSource="{Binding LiquidVolumes}" VerticalAlignment="Center"> <ItemsControl.ItemsPanel> <ItemsPanelTemplate> <StackPanel VerticalAlignment="Center" Orientation="Horizontal" IsItemsHost="True"></StackPanel> @@ -267,6 +268,7 @@ </DataTemplate> </ItemsControl.ItemTemplate> </ItemsControl> + </Viewbox> <Image Source="../Images/arrow-long-down.png" Grid.Column="1" Grid.Row="1" Margin="0 0 10 -170" Height="70" Width="40" Opacity="0.8" Stretch="Fill" HorizontalAlignment="Right" ></Image> <TextBlock FontSize="14" FontWeight="SemiBold" FontStyle="Italic" VerticalAlignment="Bottom" HorizontalAlignment="Center" Margin="0 0 0 15"> @@ -284,30 +286,32 @@ </StackPanel> </StackPanel> - <ItemsControl ItemsSource="{Binding LiquidVolumes}" VerticalAlignment="Center" MinWidth="420" IsEnabled="{Binding IsFree}"> - <ItemsControl.ItemsPanel> - <ItemsPanelTemplate> - <StackPanel VerticalAlignment="Center" Orientation="Horizontal" IsItemsHost="True"></StackPanel> - </ItemsPanelTemplate> - </ItemsControl.ItemsPanel> - <ItemsControl.ItemTemplate> - <DataTemplate> - <StackPanel> - <TextBlock HorizontalAlignment="Center" TextAlignment="Center" Text="{Binding Name}" FontSize="10" Margin="0 0 0 5"></TextBlock> - <ContentControl Focusable="False" Style="{StaticResource numberBorder}" Width="60" Height="60" Margin="10 0 0 0"> - <ContentControl.Foreground> - <SolidColorBrush Color="{Binding Color,Converter={StaticResource ColorToIntegerConverter}}"></SolidColorBrush> - </ContentControl.Foreground> - <mahapps:NumericUpDown FontSize="16" FontFamily="{StaticResource digital-7}" HorizontalAlignment="Center" Value="{Binding Volume, Mode=TwoWay}" Background="Transparent" Width="40" StringFormat="0.00" HideUpDownButtons="True" Minimum="0" Maximum="1000" InterceptArrowKeys="True" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="True" HorizontalContentAlignment="Center"> - <!--<mahapps:NumericUpDown.Resources> + <Viewbox MaxHeight="80" HorizontalAlignment="Right"> + <ItemsControl ItemsSource="{Binding LiquidVolumes}" VerticalAlignment="Center" IsEnabled="{Binding IsFree}"> + <ItemsControl.ItemsPanel> + <ItemsPanelTemplate> + <StackPanel VerticalAlignment="Center" Orientation="Horizontal" IsItemsHost="True"></StackPanel> + </ItemsPanelTemplate> + </ItemsControl.ItemsPanel> + <ItemsControl.ItemTemplate> + <DataTemplate> + <StackPanel> + <TextBlock HorizontalAlignment="Center" TextAlignment="Center" Text="{Binding Name}" FontSize="10" Margin="0 0 0 5"></TextBlock> + <ContentControl Focusable="False" Style="{StaticResource numberBorder}" Width="60" Height="60" Margin="10 0 0 0"> + <ContentControl.Foreground> + <SolidColorBrush Color="{Binding Color,Converter={StaticResource ColorToIntegerConverter}}"></SolidColorBrush> + </ContentControl.Foreground> + <mahapps:NumericUpDown FontSize="16" FontFamily="{StaticResource digital-7}" HorizontalAlignment="Center" Value="{Binding Volume, Mode=TwoWay}" Background="Transparent" Width="40" StringFormat="0.00" HideUpDownButtons="True" Minimum="0" Maximum="1000" InterceptArrowKeys="True" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="True" HorizontalContentAlignment="Center"> + <!--<mahapps:NumericUpDown.Resources> <StaticResource ResourceKey="SelectAllTextBoxResource"></StaticResource> </mahapps:NumericUpDown.Resources>--> - </mahapps:NumericUpDown> - </ContentControl> - </StackPanel> - </DataTemplate> - </ItemsControl.ItemTemplate> - </ItemsControl> + </mahapps:NumericUpDown> + </ContentControl> + </StackPanel> + </DataTemplate> + </ItemsControl.ItemTemplate> + </ItemsControl> + </Viewbox> </StackPanel> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/RmlView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/RmlView.xaml index cdacbae60..8447a3899 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/RmlView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/RmlView.xaml @@ -227,107 +227,82 @@ <Grid DockPanel.Dock="Top" Background="#35B5B5B5" Margin="20 0"> <ScrollViewer HorizontalScrollBarVisibility="Disabled"> <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center"> - <Grid> - <StackPanel Orientation="Vertical" HorizontalAlignment="Left"> - <Image Source="../Images/data-table.png" Height="20" Opacity="0.8" ></Image> - <StackPanel VerticalAlignment="Center" Margin="5 20 5 10"> + <Grid> + <StackPanel Orientation="Vertical" HorizontalAlignment="Left"> + <Image Source="../Images/data-table.png" Height="20" Opacity="0.8" ></Image> + <StackPanel VerticalAlignment="Center" Margin="5 20 5 10"> - <StackPanel> <StackPanel> - <ComboBox materialDesign:HintAssist.Hint="No CCT Defined" Margin="0 5 0 0" HorizontalContentAlignment="Center" ItemsSource="{Binding CCTS}" SelectedItem="{Binding SelectedCCT}" DisplayMemberPath="FileName" Style="{StaticResource TransparentComboBoxStyle}"></ComboBox> - <UniformGrid Columns="2" Margin="0 5 0 0" HorizontalAlignment="Center"> - <Button Style="{StaticResource MaterialDesignFlatButton}" Padding="0" Command="{Binding ImportForwardDataCommand}"> - <StackPanel Orientation="Horizontal" Margin="0 0 20 0"> - <materialDesign:PackIcon Kind="Upload" VerticalAlignment="Center" /> - <TextBlock Margin="5 0 0 0">IMPORT</TextBlock> - </StackPanel> - </Button> - <Button Style="{StaticResource MaterialDesignFlatButton}" Padding="0" Command="{Binding ExportForwardDataCommand}"> - <StackPanel Orientation="Horizontal"> - <materialDesign:PackIcon Kind="Download" VerticalAlignment="Center" /> - <TextBlock Margin="5 0 0 0">EXPORT</TextBlock> - </StackPanel> - </Button> - </UniformGrid> - </StackPanel> + <StackPanel> + <ComboBox materialDesign:HintAssist.Hint="No CCT Defined" Margin="0 5 0 0" HorizontalContentAlignment="Center" ItemsSource="{Binding CCTS}" SelectedItem="{Binding SelectedCCT}" DisplayMemberPath="FileName" Style="{StaticResource TransparentComboBoxStyle}"></ComboBox> + <UniformGrid Columns="2" Margin="0 5 0 0" HorizontalAlignment="Center"> + <Button Style="{StaticResource MaterialDesignFlatButton}" Padding="0" Command="{Binding ImportForwardDataCommand}"> + <StackPanel Orientation="Horizontal" Margin="0 0 20 0"> + <materialDesign:PackIcon Kind="Upload" VerticalAlignment="Center" /> + <TextBlock Margin="5 0 0 0">IMPORT</TextBlock> + </StackPanel> + </Button> + <Button Style="{StaticResource MaterialDesignFlatButton}" Padding="0" Command="{Binding ExportForwardDataCommand}"> + <StackPanel Orientation="Horizontal"> + <materialDesign:PackIcon Kind="Download" VerticalAlignment="Center" /> + <TextBlock Margin="5 0 0 0">EXPORT</TextBlock> + </StackPanel> + </Button> + </UniformGrid> + </StackPanel> - <StackPanel> - <ComboBox materialDesign:HintAssist.Hint="No GBD Defined" Margin="0 5 0 0" HorizontalContentAlignment="Center" ItemsSource="{Binding GBDS}" SelectedItem="{Binding SelectedGBD}" DisplayMemberPath="FileName" Style="{StaticResource TransparentComboBoxStyle}"></ComboBox> - <UniformGrid Columns="2" Margin="0 5 0 0" HorizontalAlignment="Center"> - <Button Style="{StaticResource MaterialDesignFlatButton}" Padding="0" Command="{Binding ImportGBDCommand}"> - <StackPanel Orientation="Horizontal" Margin="0 0 20 0"> - <materialDesign:PackIcon Kind="Upload" VerticalAlignment="Center" /> - <TextBlock Margin="5 0 0 0">IMPORT</TextBlock> - </StackPanel> - </Button> - <Button Style="{StaticResource MaterialDesignFlatButton}" Padding="0" Command="{Binding ExportGBDCommand}"> - <StackPanel Orientation="Horizontal"> - <materialDesign:PackIcon Kind="Download" VerticalAlignment="Center" /> - <TextBlock Margin="5 0 0 0">EXPORT</TextBlock> - </StackPanel> - </Button> - </UniformGrid> - </StackPanel> + <StackPanel> + <ComboBox materialDesign:HintAssist.Hint="No GBD Defined" Margin="0 5 0 0" HorizontalContentAlignment="Center" ItemsSource="{Binding GBDS}" SelectedItem="{Binding SelectedGBD}" DisplayMemberPath="FileName" Style="{StaticResource TransparentComboBoxStyle}"></ComboBox> + <UniformGrid Columns="2" Margin="0 5 0 0" HorizontalAlignment="Center"> + <Button Style="{StaticResource MaterialDesignFlatButton}" Padding="0" Command="{Binding ImportGBDCommand}"> + <StackPanel Orientation="Horizontal" Margin="0 0 20 0"> + <materialDesign:PackIcon Kind="Upload" VerticalAlignment="Center" /> + <TextBlock Margin="5 0 0 0">IMPORT</TextBlock> + </StackPanel> + </Button> + <Button Style="{StaticResource MaterialDesignFlatButton}" Padding="0" Command="{Binding ExportGBDCommand}"> + <StackPanel Orientation="Horizontal"> + <materialDesign:PackIcon Kind="Download" VerticalAlignment="Center" /> + <TextBlock Margin="5 0 0 0">EXPORT</TextBlock> + </StackPanel> + </Button> + </UniformGrid> + </StackPanel> - <StackPanel> - <ComboBox materialDesign:HintAssist.Hint="No LUB Defined" Margin="0 5 0 0" HorizontalContentAlignment="Center" ItemsSource="{Binding LUBS}" SelectedItem="{Binding SelectedLUB}" DisplayMemberPath="FileName" Style="{StaticResource TransparentComboBoxStyle}"></ComboBox> - <UniformGrid Columns="2" Margin="0 5 0 0" HorizontalAlignment="Center"> - <Button Style="{StaticResource MaterialDesignFlatButton}" Padding="0" Command="{Binding ImportLUBCommand}"> - <StackPanel Orientation="Horizontal" Margin="0 0 20 0"> - <materialDesign:PackIcon Kind="Upload" VerticalAlignment="Center" /> - <TextBlock Margin="5 0 0 0">IMPORT</TextBlock> - </StackPanel> - </Button> - <Button Style="{StaticResource MaterialDesignFlatButton}" Padding="0" Command="{Binding ExportLUBCommand}"> - <StackPanel Orientation="Horizontal"> - <materialDesign:PackIcon Kind="Download" VerticalAlignment="Center" /> - <TextBlock Margin="5 0 0 0">EXPORT</TextBlock> - </StackPanel> - </Button> - </UniformGrid> + <StackPanel> + <ComboBox materialDesign:HintAssist.Hint="No LUB Defined" Margin="0 5 0 0" HorizontalContentAlignment="Center" ItemsSource="{Binding LUBS}" SelectedItem="{Binding SelectedLUB}" DisplayMemberPath="FileName" Style="{StaticResource TransparentComboBoxStyle}"></ComboBox> + <UniformGrid Columns="2" Margin="0 5 0 0" HorizontalAlignment="Center"> + <Button Style="{StaticResource MaterialDesignFlatButton}" Padding="0" Command="{Binding ImportLUBCommand}"> + <StackPanel Orientation="Horizontal" Margin="0 0 20 0"> + <materialDesign:PackIcon Kind="Upload" VerticalAlignment="Center" /> + <TextBlock Margin="5 0 0 0">IMPORT</TextBlock> + </StackPanel> + </Button> + <Button Style="{StaticResource MaterialDesignFlatButton}" Padding="0" Command="{Binding ExportLUBCommand}"> + <StackPanel Orientation="Horizontal"> + <materialDesign:PackIcon Kind="Download" VerticalAlignment="Center" /> + <TextBlock Margin="5 0 0 0">EXPORT</TextBlock> + </StackPanel> + </Button> + </UniformGrid> + </StackPanel> </StackPanel> - </StackPanel> - - <TextBlock Margin="0 20 0 0" Text="Color Conversion Version:" HorizontalAlignment="Center"></TextBlock> - <mahapps:NumericUpDown Minimum="1" Maximum="6" Value="{Binding ActiveRML.ColorConversionVersion}" HorizontalContentAlignment="Center" Background="Transparent" BorderBrush="{StaticResource DimGrayBrush}" HasDecimals="False" Margin="0 5 0 0" /> - <CheckBox ToolTip="Use the color conversion engine to generate gradients" IsChecked="{Binding ActiveRML.UseColorLibGradients}" HorizontalAlignment="Left" Margin="0 20 0 0">Enable Gradient Generation</CheckBox> - <CheckBox ToolTip="Use light inks when converting colors to liquid volumes" IsChecked="{Binding ActiveRML.UseLightInks}" HorizontalAlignment="Left" Margin="0 10 0 0">Use Light Inks</CheckBox> - <CheckBox ToolTip="Use lubricant transformation when converting to liquid volumes" IsChecked="{Binding ActiveRML.UseLubricantTransform}" HorizontalAlignment="Left" Margin="0 10 0 0">Use Lubricant Transform</CheckBox> + <TextBlock Margin="0 20 0 0" Text="Color Conversion Version:" HorizontalAlignment="Center"></TextBlock> + <mahapps:NumericUpDown Minimum="1" Maximum="6" Value="{Binding ActiveRML.ColorConversionVersion}" HorizontalContentAlignment="Center" Background="Transparent" BorderBrush="{StaticResource DimGrayBrush}" HasDecimals="False" Margin="0 5 0 0" /> - <DockPanel Margin="0 10 0 0"> - <TextBlock VerticalAlignment="Center" Text="V-Max:" ></TextBlock> - <mahapps:NumericUpDown Minimum="1" Maximum="100" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="True" HorizontalContentAlignment="Left" HorizontalAlignment="Right" Width="100" Value="{Binding ActiveRML.VMax,Mode=TwoWay}"></mahapps:NumericUpDown> - </DockPanel> + <CheckBox ToolTip="Use the color conversion engine to generate gradients" IsChecked="{Binding ActiveRML.UseColorLibGradients}" HorizontalAlignment="Left" Margin="0 20 0 0">Enable Gradient Generation</CheckBox> + <CheckBox ToolTip="Use light inks when converting colors to liquid volumes" IsChecked="{Binding ActiveRML.UseLightInks}" HorizontalAlignment="Left" Margin="0 10 0 0">Use Light Inks</CheckBox> + <CheckBox ToolTip="Use lubricant transformation when converting to liquid volumes" IsChecked="{Binding ActiveRML.UseLubricantTransform}" HorizontalAlignment="Left" Margin="0 10 0 0">Use Lubricant Transform</CheckBox> - <Separator Margin="0 40 0 0" Foreground="Cyan" Background="Violet" Height="2" /> - <TextBlock Margin="0 10 0 0" Text="CMYKV Prediction Type" FontSize="10"></TextBlock> - <ComboBox Margin="0 5 0 0" Style="{StaticResource TransparentComboBoxStyle}" ItemsSource="{Binding Source={x:Type enumerations:CMYKVPredictionTypes},Converter={StaticResource EnumToItemsSourceConverter}}" SelectedValue="{Binding ActiveRML.PredictionType}" SelectedValuePath="Value" DisplayMemberPath="DisplayName"></ComboBox> - - <StackPanel Visibility="{Binding ActiveRML.PredictionType,Converter={StaticResource EnumToVisibilityConverter},ConverterParameter='Predict_CMYKV,Predict_RGB,PredictAll'}"> - <TextBlock Margin="0 20 0 0" Text="CMYKV Prediction Method" FontSize="10"></TextBlock> - <ComboBox Margin="0 5 0 0" Style="{StaticResource TransparentComboBoxStyle}" ItemsSource="{Binding Source={x:Type enumerations:CMYKVPredictionMethods},Converter={StaticResource EnumToItemsSourceConverter}}" SelectedValue="{Binding ActiveRML.PredictionMethod}" SelectedValuePath="Value" DisplayMemberPath="DisplayName"></ComboBox> - - <StackPanel Margin="0 20 0 0" Visibility="{Binding ActiveRML.PredictionMethod,Converter={StaticResource EnumToVisibilityConverter},ConverterParameter='KNearestNeighbors'}"> - <TextBlock FontSize="10" Text="K-Value:"></TextBlock> - <mahapps:NumericUpDown Minimum="5" Maximum="1000" Value="{Binding ActiveRML.KNearestK}" HorizontalContentAlignment="Center" Background="Transparent" BorderBrush="{StaticResource DimGrayBrush}" HasDecimals="False" Margin="0 5 0 0" /> - </StackPanel> - - <TextBlock FontSize="10" Margin="0 20 0 0" Text="Hue Threshold:"></TextBlock> - <mahapps:NumericUpDown Minimum="0" Maximum="360" Value="{Binding ActiveRML.CmykvHueThreshold}" HorizontalContentAlignment="Center" Background="Transparent" BorderBrush="{StaticResource DimGrayBrush}" HasDecimals="True" Margin="0 5 0 0" /> - </StackPanel> - - <StackPanel Visibility="{Binding ActiveRML.PredictionType,Converter={StaticResource EnumToVisibilityConverter},ConverterParameter='SimpleRGBPreview'}"> - <TextBlock FontSize="10" Margin="0 20 0 0"> - <Run>Blending Factor:</Run> - <Run Text="{Binding ActiveRML.SimpleRgbPreviewFactor,StringFormat=N2,Mode=OneWay}"></Run> - </TextBlock> - <Slider Minimum="0.1" Maximum="1" Value="{Binding ActiveRML.SimpleRgbPreviewFactor}" Margin="0 5 0 0" SmallChange="0.01" /> - </StackPanel> + <DockPanel Margin="0 10 0 0"> + <TextBlock VerticalAlignment="Center" Text="V-Max:" ></TextBlock> + <mahapps:NumericUpDown Minimum="1" Maximum="100" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="True" HorizontalContentAlignment="Left" HorizontalAlignment="Right" Width="100" Value="{Binding ActiveRML.VMax,Mode=TwoWay}"></mahapps:NumericUpDown> + </DockPanel> </StackPanel> - </StackPanel> - </Grid> - </StackPanel> + </StackPanel> + </Grid> + </StackPanel> </ScrollViewer> </Grid> </DockPanel> diff --git a/Software/Visual_Studio/Tango.BL/DTO/BrushStopDTOBase.cs b/Software/Visual_Studio/Tango.BL/DTO/BrushStopDTOBase.cs index de8dfdb08..5fae54af4 100644 --- a/Software/Visual_Studio/Tango.BL/DTO/BrushStopDTOBase.cs +++ b/Software/Visual_Studio/Tango.BL/DTO/BrushStopDTOBase.cs @@ -326,6 +326,70 @@ namespace Tango.BL.DTO } /// <summary> + /// v12 + /// </summary> + public Double V12 + { + get; set; + } + + /// <summary> + /// v12 div + /// </summary> + public Int32 V12Div + { + get; set; + } + + /// <summary> + /// v13 + /// </summary> + public Double V13 + { + get; set; + } + + /// <summary> + /// v13 div + /// </summary> + public Int32 V13Div + { + get; set; + } + + /// <summary> + /// v14 + /// </summary> + public Double V14 + { + get; set; + } + + /// <summary> + /// v14 div + /// </summary> + public Int32 V14Div + { + get; set; + } + + /// <summary> + /// v15 + /// </summary> + public Double V15 + { + get; set; + } + + /// <summary> + /// v15 div + /// </summary> + public Int32 V15Div + { + get; set; + } + + /// <summary> /// corrected /// </summary> public Boolean Corrected diff --git a/Software/Visual_Studio/Tango.BL/DTO/LiquidTypeDTOBase.cs b/Software/Visual_Studio/Tango.BL/DTO/LiquidTypeDTOBase.cs index 265d68789..1cb00d6bc 100644 --- a/Software/Visual_Studio/Tango.BL/DTO/LiquidTypeDTOBase.cs +++ b/Software/Visual_Studio/Tango.BL/DTO/LiquidTypeDTOBase.cs @@ -85,5 +85,13 @@ namespace Tango.BL.DTO get; set; } + /// <summary> + /// is extra ink + /// </summary> + public Boolean IsExtraInk + { + get; set; + } + } } diff --git a/Software/Visual_Studio/Tango.BL/DTO/RmlDTOBase.cs b/Software/Visual_Studio/Tango.BL/DTO/RmlDTOBase.cs index 2b842f59b..e3b9f676c 100644 --- a/Software/Visual_Studio/Tango.BL/DTO/RmlDTOBase.cs +++ b/Software/Visual_Studio/Tango.BL/DTO/RmlDTOBase.cs @@ -437,45 +437,5 @@ namespace Tango.BL.DTO get; set; } - /// <summary> - /// cmykv prediction type - /// </summary> - public Int32 CmykvPredictionType - { - get; set; - } - - /// <summary> - /// cmykv prediction method - /// </summary> - public Int32 CmykvPredictionMethod - { - get; set; - } - - /// <summary> - /// cmykv hue threshold - /// </summary> - public Double CmykvHueThreshold - { - get; set; - } - - /// <summary> - /// k nearest k - /// </summary> - public Int32 KNearestK - { - get; set; - } - - /// <summary> - /// simple rgb preview factor - /// </summary> - public Double SimpleRgbPreviewFactor - { - get; set; - } - } } diff --git a/Software/Visual_Studio/Tango.BL/Entities/BrushStopBase.cs b/Software/Visual_Studio/Tango.BL/Entities/BrushStopBase.cs index 60de12338..864393461 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/BrushStopBase.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/BrushStopBase.cs @@ -99,6 +99,22 @@ namespace Tango.BL.Entities public event EventHandler<Int32> V11DivChanged; + public event EventHandler<Double> V12Changed; + + public event EventHandler<Int32> V12DivChanged; + + public event EventHandler<Double> V13Changed; + + public event EventHandler<Int32> V13DivChanged; + + public event EventHandler<Double> V14Changed; + + public event EventHandler<Int32> V14DivChanged; + + public event EventHandler<Double> V15Changed; + + public event EventHandler<Int32> V15DivChanged; + public event EventHandler<Boolean> CorrectedChanged; public event EventHandler<Boolean> IsTransparentChanged; @@ -1141,6 +1157,222 @@ namespace Tango.BL.Entities } } + protected Double _v12; + + /// <summary> + /// Gets or sets the brushstopbase v12. + /// </summary> + + [Column("V12")] + + public Double V12 + { + get + { + return _v12; + } + + set + { + if (_v12 != value) + { + _v12 = value; + + OnV12Changed(value); + + } + } + } + + protected Int32 _v12div; + + /// <summary> + /// Gets or sets the brushstopbase v12 div. + /// </summary> + + [Column("V12_DIV")] + + public Int32 V12Div + { + get + { + return _v12div; + } + + set + { + if (_v12div != value) + { + _v12div = value; + + OnV12DivChanged(value); + + } + } + } + + protected Double _v13; + + /// <summary> + /// Gets or sets the brushstopbase v13. + /// </summary> + + [Column("V13")] + + public Double V13 + { + get + { + return _v13; + } + + set + { + if (_v13 != value) + { + _v13 = value; + + OnV13Changed(value); + + } + } + } + + protected Int32 _v13div; + + /// <summary> + /// Gets or sets the brushstopbase v13 div. + /// </summary> + + [Column("V13_DIV")] + + public Int32 V13Div + { + get + { + return _v13div; + } + + set + { + if (_v13div != value) + { + _v13div = value; + + OnV13DivChanged(value); + + } + } + } + + protected Double _v14; + + /// <summary> + /// Gets or sets the brushstopbase v14. + /// </summary> + + [Column("V14")] + + public Double V14 + { + get + { + return _v14; + } + + set + { + if (_v14 != value) + { + _v14 = value; + + OnV14Changed(value); + + } + } + } + + protected Int32 _v14div; + + /// <summary> + /// Gets or sets the brushstopbase v14 div. + /// </summary> + + [Column("V14_DIV")] + + public Int32 V14Div + { + get + { + return _v14div; + } + + set + { + if (_v14div != value) + { + _v14div = value; + + OnV14DivChanged(value); + + } + } + } + + protected Double _v15; + + /// <summary> + /// Gets or sets the brushstopbase v15. + /// </summary> + + [Column("V15")] + + public Double V15 + { + get + { + return _v15; + } + + set + { + if (_v15 != value) + { + _v15 = value; + + OnV15Changed(value); + + } + } + } + + protected Int32 _v15div; + + /// <summary> + /// Gets or sets the brushstopbase v15 div. + /// </summary> + + [Column("V15_DIV")] + + public Int32 V15Div + { + get + { + return _v15div; + } + + set + { + if (_v15div != value) + { + _v15div = value; + + OnV15DivChanged(value); + + } + } + } + protected Boolean _corrected; /// <summary> @@ -1781,6 +2013,78 @@ namespace Tango.BL.Entities } /// <summary> + /// Called when the V12 has changed. + /// </summary> + protected virtual void OnV12Changed(Double v12) + { + V12Changed?.Invoke(this, v12); + RaisePropertyChanged(nameof(V12)); + } + + /// <summary> + /// Called when the V12Div has changed. + /// </summary> + protected virtual void OnV12DivChanged(Int32 v12div) + { + V12DivChanged?.Invoke(this, v12div); + RaisePropertyChanged(nameof(V12Div)); + } + + /// <summary> + /// Called when the V13 has changed. + /// </summary> + protected virtual void OnV13Changed(Double v13) + { + V13Changed?.Invoke(this, v13); + RaisePropertyChanged(nameof(V13)); + } + + /// <summary> + /// Called when the V13Div has changed. + /// </summary> + protected virtual void OnV13DivChanged(Int32 v13div) + { + V13DivChanged?.Invoke(this, v13div); + RaisePropertyChanged(nameof(V13Div)); + } + + /// <summary> + /// Called when the V14 has changed. + /// </summary> + protected virtual void OnV14Changed(Double v14) + { + V14Changed?.Invoke(this, v14); + RaisePropertyChanged(nameof(V14)); + } + + /// <summary> + /// Called when the V14Div has changed. + /// </summary> + protected virtual void OnV14DivChanged(Int32 v14div) + { + V14DivChanged?.Invoke(this, v14div); + RaisePropertyChanged(nameof(V14Div)); + } + + /// <summary> + /// Called when the V15 has changed. + /// </summary> + protected virtual void OnV15Changed(Double v15) + { + V15Changed?.Invoke(this, v15); + RaisePropertyChanged(nameof(V15)); + } + + /// <summary> + /// Called when the V15Div has changed. + /// </summary> + protected virtual void OnV15DivChanged(Int32 v15div) + { + V15DivChanged?.Invoke(this, v15div); + RaisePropertyChanged(nameof(V15Div)); + } + + /// <summary> /// Called when the Corrected has changed. /// </summary> protected virtual void OnCorrectedChanged(Boolean corrected) diff --git a/Software/Visual_Studio/Tango.BL/Entities/LiquidTypeBase.cs b/Software/Visual_Studio/Tango.BL/Entities/LiquidTypeBase.cs index ea4d18f9b..bfdc8cfb7 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/LiquidTypeBase.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/LiquidTypeBase.cs @@ -43,6 +43,8 @@ namespace Tango.BL.Entities public event EventHandler<Boolean> AvailableForStandardUserChanged; + public event EventHandler<Boolean> IsExtraInkChanged; + public event EventHandler<SynchronizedObservableCollection<Cat>> CatsChanged; public event EventHandler<SynchronizedObservableCollection<IdsPack>> IdsPacksChanged; @@ -267,6 +269,33 @@ namespace Tango.BL.Entities } } + protected Boolean _isextraink; + + /// <summary> + /// Gets or sets the liquidtypebase is extra ink. + /// </summary> + + [Column("IS_EXTRA_INK")] + + public Boolean IsExtraInk + { + get + { + return _isextraink; + } + + set + { + if (_isextraink != value) + { + _isextraink = value; + + OnIsExtraInkChanged(value); + + } + } + } + protected SynchronizedObservableCollection<Cat> _cats; /// <summary> @@ -440,6 +469,15 @@ namespace Tango.BL.Entities } /// <summary> + /// Called when the IsExtraInk has changed. + /// </summary> + protected virtual void OnIsExtraInkChanged(Boolean isextraink) + { + IsExtraInkChanged?.Invoke(this, isextraink); + RaisePropertyChanged(nameof(IsExtraInk)); + } + + /// <summary> /// Called when the Cats has changed. /// </summary> protected virtual void OnCatsChanged(SynchronizedObservableCollection<Cat> cats) diff --git a/Software/Visual_Studio/Tango.BL/Entities/Rml.cs b/Software/Visual_Studio/Tango.BL/Entities/Rml.cs index 9c672fd3b..fdeb8f05e 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/Rml.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/Rml.cs @@ -342,39 +342,5 @@ namespace Tango.BL.Entities } #endregion - - #region CMYKV - - [NotMapped] - [JsonIgnore] - public CMYKVPredictionTypes PredictionType - { - get - { - return (CMYKVPredictionTypes)CmykvPredictionType; - } - set - { - CmykvPredictionType = value.ToInt32(); - RaisePropertyChangedAuto(); - } - } - - [NotMapped] - [JsonIgnore] - public CMYKVPredictionMethods PredictionMethod - { - get - { - return (CMYKVPredictionMethods)CmykvPredictionMethod; - } - set - { - CmykvPredictionMethod = value.ToInt32(); - RaisePropertyChangedAuto(); - } - } - - #endregion } } diff --git a/Software/Visual_Studio/Tango.BL/Entities/RmlBase.cs b/Software/Visual_Studio/Tango.BL/Entities/RmlBase.cs index ec34e0254..17b29d691 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/RmlBase.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/RmlBase.cs @@ -109,16 +109,6 @@ namespace Tango.BL.Entities public event EventHandler<Double> BtsrTensionErrorChanged; - public event EventHandler<Int32> CmykvPredictionTypeChanged; - - public event EventHandler<Int32> CmykvPredictionMethodChanged; - - public event EventHandler<Double> CmykvHueThresholdChanged; - - public event EventHandler<Int32> KNearestKChanged; - - public event EventHandler<Double> SimpleRgbPreviewFactorChanged; - public event EventHandler<BtsrApplicationType> BtsrApplicationTypeChanged; public event EventHandler<BtsrYarnType> BtsrYarnTypeChanged; @@ -1550,141 +1540,6 @@ namespace Tango.BL.Entities } } - protected Int32 _cmykvpredictiontype; - - /// <summary> - /// Gets or sets the rmlbase cmykv prediction type. - /// </summary> - - [Column("CMYKV_PREDICTION_TYPE")] - - public Int32 CmykvPredictionType - { - get - { - return _cmykvpredictiontype; - } - - set - { - if (_cmykvpredictiontype != value) - { - _cmykvpredictiontype = value; - - OnCmykvPredictionTypeChanged(value); - - } - } - } - - protected Int32 _cmykvpredictionmethod; - - /// <summary> - /// Gets or sets the rmlbase cmykv prediction method. - /// </summary> - - [Column("CMYKV_PREDICTION_METHOD")] - - public Int32 CmykvPredictionMethod - { - get - { - return _cmykvpredictionmethod; - } - - set - { - if (_cmykvpredictionmethod != value) - { - _cmykvpredictionmethod = value; - - OnCmykvPredictionMethodChanged(value); - - } - } - } - - protected Double _cmykvhuethreshold; - - /// <summary> - /// Gets or sets the rmlbase cmykv hue threshold. - /// </summary> - - [Column("CMYKV_HUE_THRESHOLD")] - - public Double CmykvHueThreshold - { - get - { - return _cmykvhuethreshold; - } - - set - { - if (_cmykvhuethreshold != value) - { - _cmykvhuethreshold = value; - - OnCmykvHueThresholdChanged(value); - - } - } - } - - protected Int32 _knearestk; - - /// <summary> - /// Gets or sets the rmlbase k nearest k. - /// </summary> - - [Column("K_NEAREST_K")] - - public Int32 KNearestK - { - get - { - return _knearestk; - } - - set - { - if (_knearestk != value) - { - _knearestk = value; - - OnKNearestKChanged(value); - - } - } - } - - protected Double _simplergbpreviewfactor; - - /// <summary> - /// Gets or sets the rmlbase simple rgb preview factor. - /// </summary> - - [Column("SIMPLE_RGB_PREVIEW_FACTOR")] - - public Double SimpleRgbPreviewFactor - { - get - { - return _simplergbpreviewfactor; - } - - set - { - if (_simplergbpreviewfactor != value) - { - _simplergbpreviewfactor = value; - - OnSimpleRgbPreviewFactorChanged(value); - - } - } - } - protected BtsrApplicationType _btsrapplicationtype; /// <summary> @@ -2607,51 +2462,6 @@ namespace Tango.BL.Entities } /// <summary> - /// Called when the CmykvPredictionType has changed. - /// </summary> - protected virtual void OnCmykvPredictionTypeChanged(Int32 cmykvpredictiontype) - { - CmykvPredictionTypeChanged?.Invoke(this, cmykvpredictiontype); - RaisePropertyChanged(nameof(CmykvPredictionType)); - } - - /// <summary> - /// Called when the CmykvPredictionMethod has changed. - /// </summary> - protected virtual void OnCmykvPredictionMethodChanged(Int32 cmykvpredictionmethod) - { - CmykvPredictionMethodChanged?.Invoke(this, cmykvpredictionmethod); - RaisePropertyChanged(nameof(CmykvPredictionMethod)); - } - - /// <summary> - /// Called when the CmykvHueThreshold has changed. - /// </summary> - protected virtual void OnCmykvHueThresholdChanged(Double cmykvhuethreshold) - { - CmykvHueThresholdChanged?.Invoke(this, cmykvhuethreshold); - RaisePropertyChanged(nameof(CmykvHueThreshold)); - } - - /// <summary> - /// Called when the KNearestK has changed. - /// </summary> - protected virtual void OnKNearestKChanged(Int32 knearestk) - { - KNearestKChanged?.Invoke(this, knearestk); - RaisePropertyChanged(nameof(KNearestK)); - } - - /// <summary> - /// Called when the SimpleRgbPreviewFactor has changed. - /// </summary> - protected virtual void OnSimpleRgbPreviewFactorChanged(Double simplergbpreviewfactor) - { - SimpleRgbPreviewFactorChanged?.Invoke(this, simplergbpreviewfactor); - RaisePropertyChanged(nameof(SimpleRgbPreviewFactor)); - } - - /// <summary> /// Called when the BtsrApplicationType has changed. /// </summary> protected virtual void OnBtsrApplicationTypeChanged(BtsrApplicationType btsrapplicationtype) diff --git a/Software/Visual_Studio/Tango.BL/Enumerations/CMYKVPredictionMethods.cs b/Software/Visual_Studio/Tango.BL/Enumerations/CMYKVPredictionMethods.cs deleted file mode 100644 index 0b97b34bf..000000000 --- a/Software/Visual_Studio/Tango.BL/Enumerations/CMYKVPredictionMethods.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Tango.BL.Enumerations -{ - public enum CMYKVPredictionMethods - { - [Description("K-Nearest Neighbors (KNN)")] - KNearestNeighbors = 0, - [Description("Linear Interpolation")] - LinearInterpolation = 1, - [Description("Linear Regression")] - LinearRegression = 2, - [Description("Spline Interpolation")] - SplineInterpolation = 3 - } -} diff --git a/Software/Visual_Studio/Tango.BL/Enumerations/CMYKVPredictionTypes.cs b/Software/Visual_Studio/Tango.BL/Enumerations/CMYKVPredictionTypes.cs deleted file mode 100644 index 7d83e1f63..000000000 --- a/Software/Visual_Studio/Tango.BL/Enumerations/CMYKVPredictionTypes.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Tango.BL.Enumerations -{ - public enum CMYKVPredictionTypes - { - [Description("None")] - None = 0, - [Description("Predict CMYKV")] - Predict_CMYKV = 1, - [Description("Predict RGB")] - Predict_RGB = 2, - [Description("Predict All")] - PredictAll = 3, - [Description("Simple RGB Preview")] - SimpleRGBPreview = 4, - } -} diff --git a/Software/Visual_Studio/Tango.BL/Enumerations/LiquidTypes.cs b/Software/Visual_Studio/Tango.BL/Enumerations/LiquidTypes.cs index 5d84ad683..07b46869e 100644 --- a/Software/Visual_Studio/Tango.BL/Enumerations/LiquidTypes.cs +++ b/Software/Visual_Studio/Tango.BL/Enumerations/LiquidTypes.cs @@ -56,6 +56,48 @@ namespace Tango.BL.Enumerations LightMagenta = 8, /// <summary> + /// (Blue) + /// </summary> + [Description("Blue")] + Blue = 11, + + /// <summary> + /// (Light Blue) + /// </summary> + [Description("Light Blue")] + LightBlue = 12, + + /// <summary> + /// (Orange) + /// </summary> + [Description("Orange")] + Orange = 13, + + /// <summary> + /// (Light Orange) + /// </summary> + [Description("Light Orange")] + LightOrange = 14, + + /// <summary> + /// (Rubine) + /// </summary> + [Description("Rubine")] + Rubine = 15, + + /// <summary> + /// (Light Rubine) + /// </summary> + [Description("Light Rubine")] + LightRubine = 16, + + /// <summary> + /// (Navy) + /// </summary> + [Description("Navy")] + Navy = 17, + + /// <summary> /// (Light Yellow) /// </summary> [Description("Light Yellow")] diff --git a/Software/Visual_Studio/Tango.BL/Tango.BL.csproj b/Software/Visual_Studio/Tango.BL/Tango.BL.csproj index 9fc04b814..dabc0455e 100644 --- a/Software/Visual_Studio/Tango.BL/Tango.BL.csproj +++ b/Software/Visual_Studio/Tango.BL/Tango.BL.csproj @@ -586,8 +586,6 @@ <Compile Include="Enumerations\BtsrApplicationTypes.cs" /> <Compile Include="Enumerations\BtsrYarnTypes.cs" /> <Compile Include="Enumerations\CatalogDesignType.cs" /> - <Compile Include="Enumerations\CMYKVPredictionMethods.cs" /> - <Compile Include="Enumerations\CMYKVPredictionTypes.cs" /> <Compile Include="Enumerations\ColorCatalogsItems.cs" /> <Compile Include="Enumerations\FactorColors.cs" /> <Compile Include="Enumerations\FSEBuildVariants.cs" /> @@ -839,7 +837,7 @@ </Target> <ProjectExtensions> <VisualStudio> - <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" /> + <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" /> </VisualStudio> </ProjectExtensions> </Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.ColorConversion/CMYKV/CMYK.cs b/Software/Visual_Studio/Tango.ColorConversion/CMYKV/CMYK.cs deleted file mode 100644 index a720fe5c3..000000000 --- a/Software/Visual_Studio/Tango.ColorConversion/CMYKV/CMYK.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace Tango.ColorConversion -{ - public class CMYK - { - public double C { get; set; } - public double M { get; set; } - public double Y { get; set; } - public double K { get; set; } - } -} diff --git a/Software/Visual_Studio/Tango.ColorConversion/CMYKV/CMYKV.cs b/Software/Visual_Studio/Tango.ColorConversion/CMYKV/CMYKV.cs deleted file mode 100644 index fecfdb5c4..000000000 --- a/Software/Visual_Studio/Tango.ColorConversion/CMYKV/CMYKV.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace Tango.ColorConversion -{ - public class CMYKV : CMYK - { - public double V { get; set; } - } -} diff --git a/Software/Visual_Studio/Tango.ColorConversion/CMYKV/CMYKVColorConverter.cs b/Software/Visual_Studio/Tango.ColorConversion/CMYKV/CMYKVColorConverter.cs deleted file mode 100644 index bcb12602f..000000000 --- a/Software/Visual_Studio/Tango.ColorConversion/CMYKV/CMYKVColorConverter.cs +++ /dev/null @@ -1,121 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using Tango.BL.Enumerations; - -namespace Tango.ColorConversion -{ - public class CMYKVColorConverter - { - public List<CMYKVMeasurement> Measurements = new List<CMYKVMeasurement>(); - private int _k; - - public CMYKVColorConverter(int k = 5) - { - _k = k; - } - - public void AddMeasurement(CMYKV cmykv, LAB lab) - { - Measurements.Add(new CMYKVMeasurement { CMYKV = cmykv, LAB = lab }); - } - - public CMYKV ConvertRGBToCMYKV(RGB rgb, CMYKVPredictionMethods method) - { - IColorPrediction predictionMethod = GetPredictionMethod(method); - return predictionMethod.ConvertRGBToCMYKV(rgb); - } - - public CMYKV ConvertLABToCMYKV(LAB lab, CMYKVPredictionMethods method) - { - IColorPrediction predictionMethod = GetPredictionMethod(method); - return predictionMethod.PredictLABToCMYKV(lab); - } - - public RGB ConvertCMYKVToRGB(CMYKV cmykv, CMYKVPredictionMethods method) - { - IColorPrediction predictionMethod = GetPredictionMethod(method); - return predictionMethod.PredictCMYKVToRGB(cmykv); - } - - public LAB ConvertCMYKVToLAB(CMYKV cmykv, CMYKVPredictionMethods method) - { - IColorPrediction predictionMethod = GetPredictionMethod(method); - return predictionMethod.PredictCMYKVToLAB(cmykv); - } - - private IColorPrediction GetPredictionMethod(CMYKVPredictionMethods method) - { - switch (method) - { - case CMYKVPredictionMethods.KNearestNeighbors: - return new KNearestNeighborsPrediction(Measurements, _k); - case CMYKVPredictionMethods.LinearInterpolation: - return new LinearInterpolationPrediction(Measurements); - case CMYKVPredictionMethods.LinearRegression: - return new LinearRegressionPrediction(Measurements); - //case CMYKVPredictionMethods.SplineInterpolation: - //return new SplineInterpolationPrediction(measurements); - default: - throw new System.Exception("Unsupported prediction method"); - } - } - - private RGB MergeRGB(RGB baseRGB, RGB violetAdjustedRGB) - { - // Merge the base CMYK-derived RGB with the Violet-adjusted RGB. - // Here we can take the average of the values or a weighted blend. - return new RGB - { - R = (baseRGB.R + violetAdjustedRGB.R) / 2, - G = (baseRGB.G + violetAdjustedRGB.G) / 2, - B = (baseRGB.B + violetAdjustedRGB.B) / 2 - }; - } - - public double CalculateHueFromRGB(RGB rgb) - { - double r = rgb.R; // Keep 0-255 range - double g = rgb.G; - double b = rgb.B; - - double max = Math.Max(r, Math.Max(g, b)); - double min = Math.Min(r, Math.Min(g, b)); - - double hue = 0; - - if (max == min) - { - hue = 0; // Gray - } - else if (max == r) - { - hue = (60 * ((g - b) / (max - min)) + 360) % 360; - } - else if (max == g) - { - hue = (60 * ((b - r) / (max - min)) + 120) % 360; - } - else if (max == b) - { - hue = (60 * ((r - g) / (max - min)) + 240) % 360; - } - - return hue; - } - - public bool ShouldUseViolet(RGB rgb, double hueThreshold = 270.0) - { - double hue = CalculateHueFromRGB(rgb); - - // Trigger Violet if hue is within a range near purple - return hue >= hueThreshold && hue <= 300; - } - - - private float GetHue(RGB rgb) - { - return (float)Math.Atan2(Math.Sqrt(3) * (rgb.G - rgb.B), 2 * rgb.R - rgb.G - rgb.B); - } - } -} diff --git a/Software/Visual_Studio/Tango.ColorConversion/CMYKV/CMYKVMeasurement.cs b/Software/Visual_Studio/Tango.ColorConversion/CMYKV/CMYKVMeasurement.cs deleted file mode 100644 index 533ca0cc2..000000000 --- a/Software/Visual_Studio/Tango.ColorConversion/CMYKV/CMYKVMeasurement.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Tango.ColorConversion -{ - public class CMYKVMeasurement - { - public CMYKV CMYKV { get; set; } - public LAB LAB { get; set; } - } -} diff --git a/Software/Visual_Studio/Tango.ColorConversion/CMYKV/DemoData.cs b/Software/Visual_Studio/Tango.ColorConversion/CMYKV/DemoData.cs deleted file mode 100644 index ea0c91c1c..000000000 --- a/Software/Visual_Studio/Tango.ColorConversion/CMYKV/DemoData.cs +++ /dev/null @@ -1,47 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace Tango.ColorConversion -{ - public class DemoData - { - public List<CMYKVMeasurement> GetData() - { - var data = new List<CMYKVMeasurement>(); - - Random rand = new Random(); - - for (int i = 0; i < 100; i++) - { - // Random CMYKV values between 0 and 100 (representing % ink coverage) - double C = rand.NextDouble() * 100; - double M = rand.NextDouble() * 100; - double Y = rand.NextDouble() * 100; - double K = rand.NextDouble() * 100; - double V = rand.NextDouble() * 100; - - // Simulate LAB values based on CMYKV (simplified simulation) - // In a real-world scenario, you'd derive these from actual measurements. - // For now, I simulate LAB by assuming that lightness (L) decreases as more ink (K) is added, - // and A, B values are influenced by C, M, Y components. - - double L = 100 - K - (C + M + Y) * 0.3; // Simulating lightness decrease with more ink - double A = C * 0.5 - M * 0.5; // Simulating red-green axis - double B = Y * 0.6 - V * 0.4; // Simulating yellow-blue axis - - // Clamp LAB values within realistic ranges (L: 0-100, A/B: -128 to 127) - L = L.Clamp(0, 100); - A = A.Clamp(-128, 127); - B = B.Clamp(-128, 127); - - data.Add(new CMYKVMeasurement - { - CMYKV = new CMYKV { C = C, M = M, Y = Y, K = K, V = V }, - LAB = new LAB { L = L, A = A, B = B } - }); - } - - return data; - } - } -}
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.ColorConversion/CMYKV/ExtensionMethods.cs b/Software/Visual_Studio/Tango.ColorConversion/CMYKV/ExtensionMethods.cs deleted file mode 100644 index 4aa4c477a..000000000 --- a/Software/Visual_Studio/Tango.ColorConversion/CMYKV/ExtensionMethods.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Tango.ColorConversion; - -public static class ExtensionMethods -{ - public static RGB ToRGB(this LAB lab) - { - var rgb = new ColorMine.ColorSpaces.Lab(lab.L, lab.A, lab.B).To<ColorMine.ColorSpaces.Rgb>(); - return new RGB(rgb.R, rgb.G, rgb.B); - } - - public static LAB ToLAB(this RGB rgb) - { - var lab = new ColorMine.ColorSpaces.Rgb(rgb.R, rgb.G, rgb.B).To<ColorMine.ColorSpaces.Lab>(); - return new LAB(lab.L, lab.A, lab.B); - } -} diff --git a/Software/Visual_Studio/Tango.ColorConversion/CMYKV/IColorPrediction.cs b/Software/Visual_Studio/Tango.ColorConversion/CMYKV/IColorPrediction.cs deleted file mode 100644 index c2ec22132..000000000 --- a/Software/Visual_Studio/Tango.ColorConversion/CMYKV/IColorPrediction.cs +++ /dev/null @@ -1,11 +0,0 @@ - -namespace Tango.ColorConversion -{ - public interface IColorPrediction - { - CMYKV ConvertRGBToCMYKV(RGB rgb); - CMYKV PredictLABToCMYKV(LAB lab); - RGB PredictCMYKVToRGB(CMYKV cmykv); - LAB PredictCMYKVToLAB(CMYKV cmykv); - } -} diff --git a/Software/Visual_Studio/Tango.ColorConversion/CMYKV/KNearestNeighborsPrediction.cs b/Software/Visual_Studio/Tango.ColorConversion/CMYKV/KNearestNeighborsPrediction.cs deleted file mode 100644 index 5ceb4b63a..000000000 --- a/Software/Visual_Studio/Tango.ColorConversion/CMYKV/KNearestNeighborsPrediction.cs +++ /dev/null @@ -1,97 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; - -namespace Tango.ColorConversion -{ - public class KNearestNeighborsPrediction : IColorPrediction - { - private List<CMYKVMeasurement> measurements; - private int k; - - public KNearestNeighborsPrediction(List<CMYKVMeasurement> measurements, int k = 3) - { - this.measurements = measurements; - this.k = k; - } - - // Predict CMYKV from RGB by first converting RGB to LAB - public CMYKV ConvertRGBToCMYKV(RGB rgb) - { - // Convert RGB to LAB - LAB lab = rgb.ToLAB(); - - // Now predict CMYKV using the LAB prediction method - return PredictLABToCMYKV(lab); - } - - // Predict CMYKV from LAB (directly use LAB measurements) - public CMYKV PredictLABToCMYKV(LAB lab) - { - var nearestNeighbors = measurements - .OrderBy(m => EuclideanDistanceLAB(lab, m.LAB)) - .Take(k) - .ToList(); - - return AverageCMYKV(nearestNeighbors); - } - - // Predict RGB from CMYKV by first predicting LAB, then converting LAB to RGB - public RGB PredictCMYKVToRGB(CMYKV cmykv) - { - // Predict LAB from CMYKV - LAB lab = PredictCMYKVToLAB(cmykv); - - // Convert LAB to RGB - return lab.ToRGB(); - } - - // Predict LAB from CMYKV using nearest neighbors - public LAB PredictCMYKVToLAB(CMYKV cmykv) - { - var nearestNeighbors = measurements - .OrderBy(m => EuclideanDistanceCMYKV(cmykv, m.CMYKV)) - .Take(k) - .ToList(); - - return AverageLAB(nearestNeighbors); - } - - // Calculate Euclidean distance for LAB - private double EuclideanDistanceLAB(LAB lab1, LAB lab2) - { - return Math.Sqrt(Math.Pow(lab1.L - lab2.L, 2) + Math.Pow(lab1.A - lab2.A, 2) + Math.Pow(lab1.B - lab2.B, 2)); - } - - // Calculate Euclidean distance for CMYKV - private double EuclideanDistanceCMYKV(CMYKV cmykv1, CMYKV cmykv2) - { - return Math.Sqrt(Math.Pow(cmykv1.C - cmykv2.C, 2) + Math.Pow(cmykv1.M - cmykv2.M, 2) + - Math.Pow(cmykv1.Y - cmykv2.Y, 2) + Math.Pow(cmykv1.K - cmykv2.K, 2) + - Math.Pow(cmykv1.V - cmykv2.V, 2)); - } - - // Helper method to average CMYKV values from the k nearest neighbors - private CMYKV AverageCMYKV(List<CMYKVMeasurement> neighbors) - { - double C = neighbors.Average(m => m.CMYKV.C); - double M = neighbors.Average(m => m.CMYKV.M); - double Y = neighbors.Average(m => m.CMYKV.Y); - double K = neighbors.Average(m => m.CMYKV.K); - double V = neighbors.Average(m => m.CMYKV.V); - - return new CMYKV { C = C, M = M, Y = Y, K = K, V = V }; - } - - // Helper method to average LAB values from the k nearest neighbors - private LAB AverageLAB(List<CMYKVMeasurement> neighbors) - { - double L = neighbors.Average(m => m.LAB.L); - double A = neighbors.Average(m => m.LAB.A); - double B = neighbors.Average(m => m.LAB.B); - - return new LAB { L = L, A = A, B = B }; - } - } - -} diff --git a/Software/Visual_Studio/Tango.ColorConversion/CMYKV/LAB.cs b/Software/Visual_Studio/Tango.ColorConversion/CMYKV/LAB.cs deleted file mode 100644 index a34bee539..000000000 --- a/Software/Visual_Studio/Tango.ColorConversion/CMYKV/LAB.cs +++ /dev/null @@ -1,21 +0,0 @@ -namespace Tango.ColorConversion -{ - public class LAB - { - public LAB() - { - - } - - public LAB(double l, double a, double b) : this() - { - L = l; - A = a; - B = b; - } - - public double L { get; set; } - public double A { get; set; } - public double B { get; set; } - } -} diff --git a/Software/Visual_Studio/Tango.ColorConversion/CMYKV/LinearInterpolationPrediction.cs b/Software/Visual_Studio/Tango.ColorConversion/CMYKV/LinearInterpolationPrediction.cs deleted file mode 100644 index 3db69bb9c..000000000 --- a/Software/Visual_Studio/Tango.ColorConversion/CMYKV/LinearInterpolationPrediction.cs +++ /dev/null @@ -1,155 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; - -namespace Tango.ColorConversion -{ - public class LinearInterpolationPrediction : IColorPrediction - { - private List<CMYKVMeasurement> measurements; - - public LinearInterpolationPrediction(List<CMYKVMeasurement> measurements) - { - this.measurements = measurements; - } - - // Predict CMYKV from RGB by first converting RGB to LAB and then interpolating - public CMYKV ConvertRGBToCMYKV(RGB rgb) - { - // Convert RGB to LAB - LAB lab = rgb.ToLAB(); - - // Interpolate based on LAB - return PredictLABToCMYKV(lab); - } - - // Predict CMYKV from LAB using linear interpolation - public CMYKV PredictLABToCMYKV(LAB lab) - { - // Find the two closest measurements based on LAB distance - var lowerBound = FindLowerBoundLAB(lab); - var upperBound = FindUpperBoundLAB(lab); - - // Calculate interpolation factor 't' - double t = CalculateInterpolationFactorLAB(lab, lowerBound.LAB, upperBound.LAB); - - // Perform linear interpolation between the two closest CMYKV values - return InterpolateCMYKV(lowerBound.CMYKV, upperBound.CMYKV, t); - } - - // Predict RGB from CMYKV by first predicting LAB, then converting LAB to RGB - public RGB PredictCMYKVToRGB(CMYKV cmykv) - { - // Predict LAB using linear interpolation - LAB lab = PredictCMYKVToLAB(cmykv); - - // Convert LAB to RGB - return lab.ToRGB(); - } - - // Predict LAB from CMYKV using linear interpolation - public LAB PredictCMYKVToLAB(CMYKV cmykv) - { - // Find the two closest measurements based on CMYKV distance - var lowerBound = FindLowerBoundCMYKV(cmykv); - var upperBound = FindUpperBoundCMYKV(cmykv); - - // Calculate interpolation factor 't' - double t = CalculateInterpolationFactorCMYKV(cmykv, lowerBound.CMYKV, upperBound.CMYKV); - - // Perform linear interpolation between the two closest LAB values - return InterpolateLAB(lowerBound.LAB, upperBound.LAB, t); - } - - // Find the two closest LAB measurements below and above the input LAB - private CMYKVMeasurement FindLowerBoundLAB(LAB lab) - { - return measurements - .Where(m => EuclideanDistanceLAB(m.LAB, lab) <= 0) - .OrderBy(m => EuclideanDistanceLAB(m.LAB, lab)) - .FirstOrDefault(); - } - - private CMYKVMeasurement FindUpperBoundLAB(LAB lab) - { - return measurements - .Where(m => EuclideanDistanceLAB(m.LAB, lab) >= 0) - .OrderBy(m => EuclideanDistanceLAB(m.LAB, lab)) - .FirstOrDefault(); - } - - // Find the two closest CMYKV measurements below and above the input CMYKV - private CMYKVMeasurement FindLowerBoundCMYKV(CMYKV cmykv) - { - return measurements - .Where(m => EuclideanDistanceCMYKV(m.CMYKV, cmykv) <= 0) - .OrderBy(m => EuclideanDistanceCMYKV(m.CMYKV, cmykv)) - .FirstOrDefault(); - } - - private CMYKVMeasurement FindUpperBoundCMYKV(CMYKV cmykv) - { - return measurements - .Where(m => EuclideanDistanceCMYKV(m.CMYKV, cmykv) >= 0) - .OrderBy(m => EuclideanDistanceCMYKV(m.CMYKV, cmykv)) - .FirstOrDefault(); - } - - // Calculate the interpolation factor for LAB - private double CalculateInterpolationFactorLAB(LAB input, LAB lower, LAB upper) - { - double distInputToLower = EuclideanDistanceLAB(input, lower); - double distLowerToUpper = EuclideanDistanceLAB(lower, upper); - - return distInputToLower / distLowerToUpper; - } - - // Calculate the interpolation factor for CMYKV - private double CalculateInterpolationFactorCMYKV(CMYKV input, CMYKV lower, CMYKV upper) - { - double distInputToLower = EuclideanDistanceCMYKV(input, lower); - double distLowerToUpper = EuclideanDistanceCMYKV(lower, upper); - - return distInputToLower / distLowerToUpper; - } - - // Interpolate between two CMYKV values using factor t - private CMYKV InterpolateCMYKV(CMYKV lower, CMYKV upper, double t) - { - return new CMYKV - { - C = lower.C + t * (upper.C - lower.C), - M = lower.M + t * (upper.M - lower.M), - Y = lower.Y + t * (upper.Y - lower.Y), - K = lower.K + t * (upper.K - lower.K), - V = lower.V + t * (upper.V - lower.V) - }; - } - - // Interpolate between two LAB values using factor t - private LAB InterpolateLAB(LAB lower, LAB upper, double t) - { - return new LAB - { - L = lower.L + t * (upper.L - lower.L), - A = lower.A + t * (upper.A - lower.A), - B = lower.B + t * (upper.B - lower.B) - }; - } - - // Calculate Euclidean distance for LAB - private double EuclideanDistanceLAB(LAB lab1, LAB lab2) - { - return Math.Sqrt(Math.Pow(lab1.L - lab2.L, 2) + Math.Pow(lab1.A - lab2.A, 2) + Math.Pow(lab1.B - lab2.B, 2)); - } - - // Calculate Euclidean distance for CMYKV - private double EuclideanDistanceCMYKV(CMYKV cmykv1, CMYKV cmykv2) - { - return Math.Sqrt(Math.Pow(cmykv1.C - cmykv2.C, 2) + Math.Pow(cmykv1.M - cmykv2.M, 2) + - Math.Pow(cmykv1.Y - cmykv2.Y, 2) + Math.Pow(cmykv1.K - cmykv2.K, 2) + - Math.Pow(cmykv1.V - cmykv2.V, 2)); - } - } - -} diff --git a/Software/Visual_Studio/Tango.ColorConversion/CMYKV/LinearRegressionPrediction.cs b/Software/Visual_Studio/Tango.ColorConversion/CMYKV/LinearRegressionPrediction.cs deleted file mode 100644 index bf69f273a..000000000 --- a/Software/Visual_Studio/Tango.ColorConversion/CMYKV/LinearRegressionPrediction.cs +++ /dev/null @@ -1,104 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; - -namespace Tango.ColorConversion -{ - using MathNet.Numerics.LinearAlgebra; - - public class LinearRegressionPrediction : IColorPrediction - { - private List<CMYKVMeasurement> measurements; - private double[,] coefficients; - - public LinearRegressionPrediction(List<CMYKVMeasurement> measurements) - { - this.measurements = measurements; - coefficients = ComputeCoefficients(); - } - - public CMYKV ConvertRGBToCMYKV(RGB rgb) - { - var lab = rgb.ToLAB(); - return PerformLinearRegression(new double[] { lab.L, lab.A, lab.B }); - } - - public CMYKV PredictLABToCMYKV(LAB lab) - { - return PerformLinearRegression(new double[] { lab.L, lab.A, lab.B }); - } - - public RGB PredictCMYKVToRGB(CMYKV cmykv) - { - // First predict LAB, then convert to RGB - LAB lab = PerformInverseRegressionLAB(cmykv); - return lab.ToRGB(); - } - - public LAB PredictCMYKVToLAB(CMYKV cmykv) - { - return PerformInverseRegressionLAB(cmykv); - } - - private CMYKV PerformLinearRegression(double[] input) - { - double C = coefficients[0, 0] + coefficients[0, 1] * input[0] + coefficients[0, 2] * input[1] + coefficients[0, 3] * input[2]; - double M = coefficients[1, 0] + coefficients[1, 1] * input[0] + coefficients[1, 2] * input[1] + coefficients[1, 3] * input[2]; - double Y = coefficients[2, 0] + coefficients[2, 1] * input[0] + coefficients[2, 2] * input[1] + coefficients[2, 3] * input[2]; - double K = coefficients[3, 0]; - double V = coefficients[4, 0]; - - return new CMYKV { C = C, M = M, Y = Y, K = K, V = V }; - } - - // Inverse regression for LAB prediction from CMYKV - private LAB PerformInverseRegressionLAB(CMYKV cmykv) - { - // Use CMYKV values to predict LAB using the regression coefficients - double L = coefficients[0, 0] + coefficients[0, 1] * cmykv.C + coefficients[0, 2] * cmykv.M + coefficients[0, 3] * cmykv.Y; - double A = coefficients[1, 0] + coefficients[1, 1] * cmykv.C + coefficients[1, 2] * cmykv.M + coefficients[1, 3] * cmykv.Y; - double B = coefficients[2, 0] + coefficients[2, 1] * cmykv.C + coefficients[2, 2] * cmykv.M + coefficients[2, 3] * cmykv.Y; - - return new LAB { L = L, A = A, B = B }; - } - - // Now implementing the least-squares regression method based on LAB as input - private double[,] ComputeCoefficients() - { - int n = measurements.Count; - - // Create matrix X (n x 4) for input values (LAB values plus intercept term) - Matrix<double> X = Matrix<double>.Build.Dense(n, 4, (i, j) => - { - if (j == 0) return measurements[i].LAB.L; // LAB input as the available property - if (j == 1) return measurements[i].LAB.A; - if (j == 2) return measurements[i].LAB.B; - return 1.0; // Intercept term - }); - - // Create matrix Y (n x 5) for CMYKV values - Matrix<double> Y = Matrix<double>.Build.Dense(n, 5, (i, j) => - { - if (j == 0) return measurements[i].CMYKV.C; - if (j == 1) return measurements[i].CMYKV.M; - if (j == 2) return measurements[i].CMYKV.Y; - if (j == 3) return measurements[i].CMYKV.K; - return measurements[i].CMYKV.V; - }); - - // Compute the least-squares solution for the coefficients: β = (X^T X)^{-1} X^T Y - Matrix<double> Xt = X.Transpose(); - Matrix<double> XtX = Xt * X; - Matrix<double> XtX_inv = XtX.Inverse(); - Matrix<double> XtY = Xt * Y; - Matrix<double> B = XtX_inv * XtY; - - // Convert the result to a double[,] array for easy access in the model - return B.ToArray(); - } - } - - - - -} diff --git a/Software/Visual_Studio/Tango.ColorConversion/CMYKV/RGB.cs b/Software/Visual_Studio/Tango.ColorConversion/CMYKV/RGB.cs deleted file mode 100644 index d59a76fb6..000000000 --- a/Software/Visual_Studio/Tango.ColorConversion/CMYKV/RGB.cs +++ /dev/null @@ -1,21 +0,0 @@ -namespace Tango.ColorConversion -{ - public class RGB - { - public RGB() - { - - } - - public RGB(double r, double g, double b) : this() - { - R = r; - G = g; - B = b; - } - - public double R { get; set; } - public double G { get; set; } - public double B { get; set; } - } -} diff --git a/Software/Visual_Studio/Tango.ColorConversion/CMYKV/SplineInterpolationPrediction.cs b/Software/Visual_Studio/Tango.ColorConversion/CMYKV/SplineInterpolationPrediction.cs deleted file mode 100644 index 3b66d5d6c..000000000 --- a/Software/Visual_Studio/Tango.ColorConversion/CMYKV/SplineInterpolationPrediction.cs +++ /dev/null @@ -1,58 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using MathNet.Numerics.Interpolation; - -namespace Tango.ColorConversion -{ - public class SplineInterpolationPrediction - { - public LAB Predict(CMYKV cmykv, List<CMYKVMeasurement> measurements) - { - // Spline interpolation logic: Perform cubic spline interpolation - var cValues = measurements.Select(m => m.CMYKV.C).ToArray(); - var lValues = measurements.Select(m => m.LAB.L).ToArray(); - var aValues = measurements.Select(m => m.LAB.A).ToArray(); - var bValues = measurements.Select(m => m.LAB.B).ToArray(); - - var lSpline = CubicSpline.InterpolateNatural(cValues, lValues); - var aSpline = CubicSpline.InterpolateNatural(cValues, aValues); - var bSpline = CubicSpline.InterpolateNatural(cValues, bValues); - - return new LAB - { - L = (float)lSpline.Interpolate(cmykv.C), - A = (float)aSpline.Interpolate(cmykv.C), - B = (float)bSpline.Interpolate(cmykv.C) - }; - } - - public CMYKV PredictFromLAB(LAB lab, List<CMYKVMeasurement> measurements) - { - // Extract L values and corresponding CMYKV values for spline interpolation - var lValues = measurements.Select(m => m.LAB.L).ToArray(); - var cValues = measurements.Select(m => m.CMYKV.C).ToArray(); - var mValues = measurements.Select(m => m.CMYKV.M).ToArray(); - var yValues = measurements.Select(m => m.CMYKV.Y).ToArray(); - var kValues = measurements.Select(m => m.CMYKV.K).ToArray(); - var vValues = measurements.Select(m => m.CMYKV.V).ToArray(); - - // Create cubic splines for each component - var cSpline = CubicSpline.InterpolateNatural(lValues, cValues); - var mSpline = CubicSpline.InterpolateNatural(lValues, mValues); - var ySpline = CubicSpline.InterpolateNatural(lValues, yValues); - var kSpline = CubicSpline.InterpolateNatural(lValues, kValues); - var vSpline = CubicSpline.InterpolateNatural(lValues, vValues); - - // Interpolate to get CMYKV values for the given LAB L value - return new CMYKV - { - C = cSpline.Interpolate(lab.L), - M = mSpline.Interpolate(lab.L), - Y = ySpline.Interpolate(lab.L), - K = kSpline.Interpolate(lab.L), - V = vSpline.Interpolate(lab.L) - }; - } - } -} diff --git a/Software/Visual_Studio/Tango.ColorConversion/ColorBlending/BlendableColor.cs b/Software/Visual_Studio/Tango.ColorConversion/ColorBlending/BlendableColor.cs new file mode 100644 index 000000000..231c6602d --- /dev/null +++ b/Software/Visual_Studio/Tango.ColorConversion/ColorBlending/BlendableColor.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Media; +using Tango.Core.Helpers; + +namespace Tango.ColorConversion.ColorBlending +{ + public class BlendableColor + { + // RGB Color + public Color Color { get; set; } + // Blending level (0 to 100) + public double Volume { get; set; } + + public BlendableColor(Color color, double volume) + { + Color = color; + Volume = volume; + } + + public BlendableColor(int color, double volume) : this(ColorHelper.IntegerToColor(color), volume) + { + + } + } +} diff --git a/Software/Visual_Studio/Tango.ColorConversion/ColorBlending/ColorBlender.cs b/Software/Visual_Studio/Tango.ColorConversion/ColorBlending/ColorBlender.cs new file mode 100644 index 000000000..c344bdb08 --- /dev/null +++ b/Software/Visual_Studio/Tango.ColorConversion/ColorBlending/ColorBlender.cs @@ -0,0 +1,48 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Media; + +namespace Tango.ColorConversion.ColorBlending +{ + public class ColorBlender + { + public static Color BlendColors(Color baseColor, List<BlendableColor> colorsToBlend) + { + // Convert base color to [0, 1] range + double baseR = baseColor.R / 255.0; + double baseG = baseColor.G / 255.0; + double baseB = baseColor.B / 255.0; + + // Initialize blended color with base color + double blendedR = baseR; + double blendedG = baseG; + double blendedB = baseB; + + foreach (var blendableColor in colorsToBlend) + { + // Convert blendable color to [0, 1] range + double blendR = blendableColor.Color.R / 255.0; + double blendG = blendableColor.Color.G / 255.0; + double blendB = blendableColor.Color.B / 255.0; + + // Calculate the weight factor (volume scaled to [0, 1]) + double weight = blendableColor.Volume / 100.0; + + // Apply subtractive blending + blendedR = blendedR * (1 - weight) + blendR * weight; + blendedG = blendedG * (1 - weight) + blendG * weight; + blendedB = blendedB * (1 - weight) + blendB * weight; + } + + // Convert back to [0, 255] range and clamp + byte finalR = (byte)((blendedR * 255).Clamp(0, 255)); + byte finalG = (byte)((blendedG * 255).Clamp(0, 255)); + byte finalB = (byte)((blendedB * 255).Clamp(0, 255)); + + return Color.FromRgb(finalR, finalG, finalB); + } + } +} diff --git a/Software/Visual_Studio/Tango.ColorConversion/DefaultColorConverter.cs b/Software/Visual_Studio/Tango.ColorConversion/DefaultColorConverter.cs index bff01dd83..e6c28add5 100644 --- a/Software/Visual_Studio/Tango.ColorConversion/DefaultColorConverter.cs +++ b/Software/Visual_Studio/Tango.ColorConversion/DefaultColorConverter.cs @@ -16,6 +16,7 @@ using Tango.Logging; using System.IO; using Tango.Core.Helpers; using Tango.Settings; +using Tango.ColorConversion.ColorBlending; namespace Tango.ColorConversion { @@ -35,13 +36,6 @@ namespace Tango.ColorConversion #region Color Conversion - private static List<PMR.ColorLab.ColorMeasurement> _measurements = new List<PMR.ColorLab.ColorMeasurement>(); - - public static void SetMeasurements(List<PMR.ColorLab.ColorMeasurement> measurements) - { - _measurements = measurements; - } - public ConversionOutput Convert(ConversionInput conversionInput, int version) { if (version < 1) version = 1; @@ -53,6 +47,41 @@ namespace Tango.ColorConversion throw new FileNotFoundException($"Could not find color conversion library '{fileName}'."); } + ConversionOutput output = new ConversionOutput(); + + List<PMR.ColorLab.LiquidType> checkInks = new List<PMR.ColorLab.LiquidType>() + { + PMR.ColorLab.LiquidType.Cyan, + PMR.ColorLab.LiquidType.Magenta, + PMR.ColorLab.LiquidType.Yellow, + PMR.ColorLab.LiquidType.Black, + PMR.ColorLab.LiquidType.LightCyan, + PMR.ColorLab.LiquidType.LightMagenta, + PMR.ColorLab.LiquidType.LightYellow, + PMR.ColorLab.LiquidType.Violet, + PMR.ColorLab.LiquidType.Blue, + PMR.ColorLab.LiquidType.LightBlue, + PMR.ColorLab.LiquidType.Orange, + PMR.ColorLab.LiquidType.LightOrange, + PMR.ColorLab.LiquidType.Rubine, + PMR.ColorLab.LiquidType.LightRubine, + PMR.ColorLab.LiquidType.Navy + }; + + foreach (var ink in checkInks) + { + if (!conversionInput.InputCoordinates.InputLiquids.Any(x => x.LiquidType == ink)) + { + conversionInput.InputCoordinates.InputLiquids.Add(new InputLiquid() + { + CalibrationData = new CalibrationData(), + LiquidType = ink, + MaxNanoliterPerCentimeter = 2.4, + Volume = 0 + }); + } + } + IntPtr pDll = NativeMethods.LoadLibrary(fileName); IntPtr pAddressOfFunctionToCall = NativeMethods.GetProcAddress(pDll, "Convert"); NativeMethodDelegate convert = (NativeMethodDelegate)Marshal.GetDelegateForFunctionPointer( @@ -60,93 +89,55 @@ namespace Tango.ColorConversion typeof(NativeMethodDelegate)); NativePMR<ConversionInput, ConversionOutput> nativePMR = new NativePMR<ConversionInput, ConversionOutput>(convert); - ConversionOutput output = nativePMR.Invoke(conversionInput); + output = nativePMR.Invoke(conversionInput); - if (conversionInput.GetPredictionType() != CMYKVPredictionTypes.None) - { - CMYKVColorConverter cmykvConverter = new CMYKVColorConverter((int)conversionInput.CMYKVK); - - //Custom Measurements - if (conversionInput.ColorMeasurements.Count > 0) - { - foreach (var m in conversionInput.ColorMeasurements) - { - cmykvConverter.AddMeasurement(new CMYKV() { C = m.C, M = m.M, Y = m.Y, K = m.K, V = m.V }, new LAB(m.L, m.A, m.B)); - } - } - else //Global Measurements - { - foreach (var m in _measurements) - { - cmykvConverter.AddMeasurement(new CMYKV() { C = m.C, M = m.M, Y = m.Y, K = m.K, V = m.V }, new LAB(m.L, m.A, m.B)); - } - } + bool result = NativeMethods.FreeLibrary(pDll); + if (output.HasError) + { + throw new ExternalException($"Color Conversion Error: {output.ErrorMessage}!"); + } - if (conversionInput.ColorSpace == PMR.ColorLab.ColorSpace.Volume) + if (conversionInput.ColorSpace == PMR.ColorLab.ColorSpace.Volume) + { + if (conversionInput.InputCoordinates.InputLiquids.Any(x => x.IsExtraInk && x.Volume > 0)) { - var violetInput = conversionInput.InputCoordinates.InputLiquids.FirstOrDefault(x => x.LiquidType == PMR.ColorLab.LiquidType.Violet); + //Blend the extra ink volume to the output RGB and LAB. + List<BlendableColor> extraInkColors = new List<BlendableColor>(); - if (violetInput != null && violetInput.Volume > 0) + foreach (var input in conversionInput.InputCoordinates.InputLiquids.Where(x => x.IsExtraInk && x.Volume > 0)) { - if (conversionInput.GetPredictionType() == CMYKVPredictionTypes.SimpleRGBPreview) - { - //Blend violet to best match color. + extraInkColors.Add(new BlendableColor(input.Color, input.Volume)); + } - if (conversionInput.SimpleRGBPreviewFactor == 0) conversionInput.SimpleRGBPreviewFactor = 1; + BlendOutputCoordinates(output.SingleCoordinates, extraInkColors); - var color = BlendWithViolet(output.SingleCoordinates.Red, output.SingleCoordinates.Green, output.SingleCoordinates.Blue, (float)((violetInput.Volume * Math.Max(conversionInput.SimpleRGBPreviewFactor, 0.01)) / 100d)); - output.SingleCoordinates.Red = (int)color.R; - output.SingleCoordinates.Green = (int)color.G; - output.SingleCoordinates.Blue = (int)color.B; - } - else if (cmykvConverter.Measurements.Count > 0 && (conversionInput.GetPredictionType() == CMYKVPredictionTypes.Predict_RGB || conversionInput.GetPredictionType() == CMYKVPredictionTypes.PredictAll)) - { - RGB rgb = cmykvConverter.ConvertCMYKVToRGB(CreateCMYKVFromConversionInput(conversionInput), conversionInput.GetPredictionMethod()); - output.SingleCoordinates.Red = (int)rgb.R; - output.SingleCoordinates.Green = (int)rgb.G; - output.SingleCoordinates.Blue = (int)rgb.B; - } - } - } - else if (conversionInput.ColorSpace == PMR.ColorLab.ColorSpace.Rgb && cmykvConverter.Measurements.Count > 0) - { - if (conversionInput.GetPredictionType() == CMYKVPredictionTypes.Predict_CMYKV || conversionInput.GetPredictionType() == CMYKVPredictionTypes.PredictAll) + if (conversionInput.GenerateHive) { - var rgb = new RGB(conversionInput.InputCoordinates.Red, conversionInput.InputCoordinates.Green, conversionInput.InputCoordinates.Blue); - if (cmykvConverter.ShouldUseViolet(rgb, conversionInput.CMYKVHueThreshhold)) - { - var cmykv = cmykvConverter.ConvertRGBToCMYKV(rgb, conversionInput.GetPredictionMethod()); - SetCMYKVToConversionOutput(cmykv, output); - } - else + foreach (var coords in output.HiveCoordinates) { - ResetVioletVolume(output); + BlendOutputCoordinates(coords, extraInkColors); } } - else - { - ResetVioletVolume(output); - } } - else - { - ResetVioletVolume(output); - } - } - else if (conversionInput.ColorSpace != PMR.ColorLab.ColorSpace.Volume) - { - ResetVioletVolume(output); } - bool result = NativeMethods.FreeLibrary(pDll); + return output; + } - if (output.HasError) - { - throw new ExternalException($"Color Conversion Error: {output.ErrorMessage}!"); - } + private void BlendOutputCoordinates(OutputCoordinates output, List<BlendableColor> blendableColors) + { + Color baseColor = Color.FromRgb((byte)output.Red, (byte)output.Green, (byte)output.Blue); - return output; + var finalColor = ColorBlender.BlendColors(baseColor, blendableColors); + output.Red = finalColor.R; + output.Green = finalColor.G; + output.Blue = finalColor.B; + + var lab = new ColorMine.ColorSpaces.Rgb(output.Red, output.Green, output.Blue).To<ColorMine.ColorSpaces.Lab>(); + output.L = lab.L; + output.A = lab.A; + output.B = lab.B; } public ConversionOutput Convert(BrushStop stop, Configuration configuration, Rml rml, bool generateHive, bool lightInksInstalled, bool useLightInks = false, ConversionType conversionType = ConversionType.Default) @@ -246,13 +237,6 @@ namespace Tango.ColorConversion conversionInput.VMax = rml.VMax; - //CMYKV - conversionInput.SetPredictionType(rml.PredictionType); - conversionInput.SetPredictionMethod(rml.PredictionMethod); - conversionInput.CMYKVHueThreshhold = rml.CmykvHueThreshold; - conversionInput.CMYKVK = rml.KNearestK; - conversionInput.SimpleRGBPreviewFactor = rml.SimpleRgbPreviewFactor; - conversionInput.ForwardData = ByteString.CopyFrom(rml.Cct.Data); if (rml.Gbd != null) @@ -309,6 +293,8 @@ namespace Tango.ColorConversion MaxNanoliterPerCentimeter = ids_pack.LiquidType.LiquidTypesRmls.Single(x => x.Rml == rml).MaxNlPerCm, Volume = volume, CalibrationData = calibrationData, + IsExtraInk = ids_pack.LiquidType.IsExtraInk, + Color = ids_pack.LiquidType.Color }); } @@ -1084,136 +1070,71 @@ namespace Tango.ColorConversion private static Color Violet = Color.FromRgb(127, 0, 255); - public static RGB BlendWithViolet(int r, int g, int b, float violetFactor) - { - // Ensure violetFactor is between 0.0 and 1.0 - violetFactor = violetFactor.Clamp(0.0f, 1.0f); - // Violet color in RGB - int violetR = Violet.R; - int violetG = Violet.G; - int violetB = Violet.B; - // Blend the current color with violet using the factor - int blendedR = (int)((r * (1 - violetFactor)) + (violetR * violetFactor)); - int blendedG = (int)((g * (1 - violetFactor)) + (violetG * violetFactor)); - int blendedB = (int)((b * (1 - violetFactor)) + (violetB * violetFactor)); + //private void SetCMYKVToConversionOutput(ConversionOutput output) + //{ + // var violetOutput = new OutputLiquid() { LiquidType = PMR.ColorLab.LiquidType.Violet, Volume = 0 }; + // output.SingleCoordinates.OutputLiquids.Add(violetOutput); - // Clamp values to 0-255 range - blendedR = blendedR.Clamp(0, 255); - blendedG = blendedG.Clamp(0, 255); - blendedB = blendedB.Clamp(0, 255); + // foreach (var liquid in output.SingleCoordinates.OutputLiquids) + // { + // switch (liquid.LiquidType) + // { + // case PMR.ColorLab.LiquidType.Cyan: + // liquid.Volume = cmykv.C; + // break; + // case PMR.ColorLab.LiquidType.Magenta: + // liquid.Volume = cmykv.M; + // break; + // case PMR.ColorLab.LiquidType.Yellow: + // liquid.Volume = cmykv.Y; + // break; + // case PMR.ColorLab.LiquidType.Black: + // liquid.Volume = cmykv.K; + // break; + // case PMR.ColorLab.LiquidType.Violet: + // liquid.Volume = cmykv.V; + // break; + // default: + // break; + // } + // } - return new RGB(blendedR, blendedG, blendedB); - } + // if (output.HiveCoordinates.Count > 0) + // { + // var vOutput = new OutputLiquid() { LiquidType = PMR.ColorLab.LiquidType.Violet, Volume = 0 }; - private CMYKV CreateCMYKVFromConversionInput(ConversionInput input) - { - CMYKV cmykv = new CMYKV(); + // foreach (var cell in output.HiveCoordinates) + // { + // cell.OutputLiquids.Add(vOutput); - foreach (var liquid in input.InputCoordinates.InputLiquids) - { - switch (liquid.LiquidType) - { - case PMR.ColorLab.LiquidType.Cyan: - cmykv.C = liquid.Volume; - break; - case PMR.ColorLab.LiquidType.Magenta: - cmykv.M = liquid.Volume; - break; - case PMR.ColorLab.LiquidType.Yellow: - cmykv.Y = liquid.Volume; - break; - case PMR.ColorLab.LiquidType.Black: - cmykv.K = liquid.Volume; - break; - case PMR.ColorLab.LiquidType.Violet: - cmykv.V = liquid.Volume; - break; - default: - break; - } - } - - return cmykv; - } - - private RGB CreateRGBFromConversionOutput(ConversionOutput output) - { - return new RGB(output.SingleCoordinates.Red, output.SingleCoordinates.Green, output.SingleCoordinates.Blue); - } - - private void ResetVioletVolume(ConversionOutput output) - { - var violetOutput = new OutputLiquid() { LiquidType = PMR.ColorLab.LiquidType.Violet, Volume = 0 }; - output.SingleCoordinates.OutputLiquids.Add(violetOutput); - - output.HiveCoordinates.ToList().ForEach(x => x.OutputLiquids.Add(violetOutput)); - } - - private void SetCMYKVToConversionOutput(CMYKV cmykv, ConversionOutput output) - { - var violetOutput = new OutputLiquid() { LiquidType = PMR.ColorLab.LiquidType.Violet, Volume = 0 }; - output.SingleCoordinates.OutputLiquids.Add(violetOutput); - - foreach (var liquid in output.SingleCoordinates.OutputLiquids) - { - switch (liquid.LiquidType) - { - case PMR.ColorLab.LiquidType.Cyan: - liquid.Volume = cmykv.C; - break; - case PMR.ColorLab.LiquidType.Magenta: - liquid.Volume = cmykv.M; - break; - case PMR.ColorLab.LiquidType.Yellow: - liquid.Volume = cmykv.Y; - break; - case PMR.ColorLab.LiquidType.Black: - liquid.Volume = cmykv.K; - break; - case PMR.ColorLab.LiquidType.Violet: - liquid.Volume = cmykv.V; - break; - default: - break; - } - } - - if (output.HiveCoordinates.Count > 0) - { - var vOutput = new OutputLiquid() { LiquidType = PMR.ColorLab.LiquidType.Violet, Volume = 0 }; - - foreach (var cell in output.HiveCoordinates) - { - cell.OutputLiquids.Add(vOutput); - - foreach (var liquid in cell.OutputLiquids) - { - switch (liquid.LiquidType) - { - case PMR.ColorLab.LiquidType.Cyan: - liquid.Volume = cmykv.C; - break; - case PMR.ColorLab.LiquidType.Magenta: - liquid.Volume = cmykv.M; - break; - case PMR.ColorLab.LiquidType.Yellow: - liquid.Volume = cmykv.Y; - break; - case PMR.ColorLab.LiquidType.Black: - liquid.Volume = cmykv.K; - break; - case PMR.ColorLab.LiquidType.Violet: - liquid.Volume = cmykv.V; - break; - default: - break; - } - } - } - } - } + // foreach (var liquid in cell.OutputLiquids) + // { + // switch (liquid.LiquidType) + // { + // case PMR.ColorLab.LiquidType.Cyan: + // liquid.Volume = cmykv.C; + // break; + // case PMR.ColorLab.LiquidType.Magenta: + // liquid.Volume = cmykv.M; + // break; + // case PMR.ColorLab.LiquidType.Yellow: + // liquid.Volume = cmykv.Y; + // break; + // case PMR.ColorLab.LiquidType.Black: + // liquid.Volume = cmykv.K; + // break; + // case PMR.ColorLab.LiquidType.Violet: + // liquid.Volume = cmykv.V; + // break; + // default: + // break; + // } + // } + // } + // } + //} #endregion } diff --git a/Software/Visual_Studio/Tango.ColorConversion/ExtensionMethods/ConversionInputExtensions.cs b/Software/Visual_Studio/Tango.ColorConversion/ExtensionMethods/ConversionInputExtensions.cs index 252a77fe2..d577df56d 100644 --- a/Software/Visual_Studio/Tango.ColorConversion/ExtensionMethods/ConversionInputExtensions.cs +++ b/Software/Visual_Studio/Tango.ColorConversion/ExtensionMethods/ConversionInputExtensions.cs @@ -8,23 +8,5 @@ using Tango.PMR.ColorLab; public static class ConversionInputExtensions { - public static CMYKVPredictionTypes GetPredictionType(this ConversionInput conversionInput) - { - return (CMYKVPredictionTypes)conversionInput.CMYKVPredictionType; - } - public static CMYKVPredictionMethods GetPredictionMethod(this ConversionInput conversionInput) - { - return (CMYKVPredictionMethods)conversionInput.CMYKVPredictionMethod; - } - - public static void SetPredictionType(this ConversionInput conversionInput, CMYKVPredictionTypes predictionType) - { - conversionInput.CMYKVPredictionType = predictionType.ToInt32(); - } - - public static void SetPredictionMethod(this ConversionInput conversionInput, CMYKVPredictionMethods predictionMethod) - { - conversionInput.CMYKVPredictionMethod = predictionMethod.ToInt32(); - } } diff --git a/Software/Visual_Studio/Tango.ColorConversion/Tango.ColorConversion.csproj b/Software/Visual_Studio/Tango.ColorConversion/Tango.ColorConversion.csproj index bb1659381..f8c815d0a 100644 --- a/Software/Visual_Studio/Tango.ColorConversion/Tango.ColorConversion.csproj +++ b/Software/Visual_Studio/Tango.ColorConversion/Tango.ColorConversion.csproj @@ -51,19 +51,8 @@ <Compile Include="..\Versioning\GlobalVersionInfo.cs"> <Link>GlobalVersionInfo.cs</Link> </Compile> - <Compile Include="CMYKV\CMYK.cs" /> - <Compile Include="CMYKV\CMYKV.cs" /> - <Compile Include="CMYKV\CMYKVColorConverter.cs" /> - <Compile Include="CMYKV\CMYKVMeasurement.cs" /> - <Compile Include="CMYKV\DemoData.cs" /> - <Compile Include="CMYKV\ExtensionMethods.cs" /> - <Compile Include="CMYKV\IColorPrediction.cs" /> - <Compile Include="CMYKV\KNearestNeighborsPrediction.cs" /> - <Compile Include="CMYKV\LAB.cs" /> - <Compile Include="CMYKV\LinearInterpolationPrediction.cs" /> - <Compile Include="CMYKV\LinearRegressionPrediction.cs" /> - <Compile Include="CMYKV\RGB.cs" /> - <Compile Include="CMYKV\SplineInterpolationPrediction.cs" /> + <Compile Include="ColorBlending\BlendableColor.cs" /> + <Compile Include="ColorBlending\ColorBlender.cs" /> <Compile Include="ColorConversionSettings.cs" /> <Compile Include="ColorConversionSuggestion.cs" /> <Compile Include="DefaultColorConverter.cs" /> diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/BRUSH_STOPS.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/BRUSH_STOPS.cs index b94e74a97..fe407a375 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/BRUSH_STOPS.cs +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/BRUSH_STOPS.cs @@ -55,6 +55,14 @@ namespace Tango.DAL.Remote.DB public int V10_DIV { get; set; } public double V11 { get; set; } public int V11_DIV { get; set; } + public double V12 { get; set; } + public int V12_DIV { get; set; } + public double V13 { get; set; } + public int V13_DIV { get; set; } + public double V14 { get; set; } + public int V14_DIV { get; set; } + public double V15 { get; set; } + public int V15_DIV { get; set; } public bool CORRECTED { get; set; } public string COLOR_CATALOG_GUID { get; set; } public string COLOR_CATALOGS_ITEM_GUID { get; set; } diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/LIQUID_TYPES.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/LIQUID_TYPES.cs index c07b67e50..cf6a05620 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/LIQUID_TYPES.cs +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/LIQUID_TYPES.cs @@ -34,6 +34,7 @@ namespace Tango.DAL.Remote.DB public bool HAS_PIGMENT { get; set; } public string SHORT_NAME { get; set; } public bool AVAILABLE_FOR_STANDARD_USER { get; set; } + public bool IS_EXTRA_INK { get; set; } [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")] public virtual ICollection<CAT> CATS { get; set; } diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/RML.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/RML.cs index 90225e5f2..b1f71c687 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RML.cs +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RML.cs @@ -82,11 +82,6 @@ namespace Tango.DAL.Remote.DB public string BTSR_APPLICATION_TYPE_GUID { get; set; } public string BTSR_YARN_TYPE_GUID { get; set; } public double BTSR_TENSION_ERROR { get; set; } - public int CMYKV_PREDICTION_TYPE { get; set; } - public int CMYKV_PREDICTION_METHOD { get; set; } - public double CMYKV_HUE_THRESHOLD { get; set; } - public int K_NEAREST_K { get; set; } - public double SIMPLE_RGB_PREVIEW_FACTOR { get; set; } public virtual BTSR_APPLICATION_TYPES BTSR_APPLICATION_TYPES { get; set; } public virtual BTSR_YARN_TYPES BTSR_YARN_TYPES { get; set; } diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx index 56b40d608..4484f520b 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx @@ -123,6 +123,14 @@ <Property Name="V10_DIV" Type="int" Nullable="false" /> <Property Name="V11" Type="float" Nullable="false" /> <Property Name="V11_DIV" Type="int" Nullable="false" /> + <Property Name="V12" Type="float" Nullable="false" /> + <Property Name="V12_DIV" Type="int" Nullable="false" /> + <Property Name="V13" Type="float" Nullable="false" /> + <Property Name="V13_DIV" Type="int" Nullable="false" /> + <Property Name="V14" Type="float" Nullable="false" /> + <Property Name="V14_DIV" Type="int" Nullable="false" /> + <Property Name="V15" Type="float" Nullable="false" /> + <Property Name="V15_DIV" Type="int" Nullable="false" /> <Property Name="CORRECTED" Type="bit" Nullable="false" /> <Property Name="COLOR_CATALOG_GUID" Type="varchar" MaxLength="36" /> <Property Name="COLOR_CATALOGS_ITEM_GUID" Type="varchar" MaxLength="36" /> @@ -887,6 +895,7 @@ <Property Name="HAS_PIGMENT" Type="bit" Nullable="false" /> <Property Name="SHORT_NAME" Type="nvarchar" MaxLength="4" /> <Property Name="AVAILABLE_FOR_STANDARD_USER" Type="bit" Nullable="false" /> + <Property Name="IS_EXTRA_INK" Type="bit" Nullable="false" /> </EntityType> <EntityType Name="LIQUID_TYPES_RMLS"> <Key> @@ -1400,11 +1409,6 @@ <Property Name="BTSR_APPLICATION_TYPE_GUID" Type="varchar" MaxLength="36" /> <Property Name="BTSR_YARN_TYPE_GUID" Type="varchar" MaxLength="36" /> <Property Name="BTSR_TENSION_ERROR" Type="float" Nullable="false" /> - <Property Name="CMYKV_PREDICTION_TYPE" Type="int" Nullable="false" /> - <Property Name="CMYKV_PREDICTION_METHOD" Type="int" Nullable="false" /> - <Property Name="CMYKV_HUE_THRESHOLD" Type="float" Nullable="false" /> - <Property Name="K_NEAREST_K" Type="int" Nullable="false" /> - <Property Name="SIMPLE_RGB_PREVIEW_FACTOR" Type="float" Nullable="false" /> </EntityType> <EntityType Name="RMLS_EXTENSIONS"> <Key> @@ -5763,6 +5767,14 @@ <Property Name="V10_DIV" Type="Int32" Nullable="false" /> <Property Name="V11" Type="Double" Nullable="false" /> <Property Name="V11_DIV" Type="Int32" Nullable="false" /> + <Property Name="V12" Type="Double" Nullable="false" /> + <Property Name="V12_DIV" Type="Int32" Nullable="false" /> + <Property Name="V13" Type="Double" Nullable="false" /> + <Property Name="V13_DIV" Type="Int32" Nullable="false" /> + <Property Name="V14" Type="Double" Nullable="false" /> + <Property Name="V14_DIV" Type="Int32" Nullable="false" /> + <Property Name="V15" Type="Double" Nullable="false" /> + <Property Name="V15_DIV" Type="Int32" Nullable="false" /> <Property Name="CORRECTED" Type="Boolean" Nullable="false" /> <Property Name="COLOR_CATALOG_GUID" Type="String" MaxLength="36" FixedLength="false" Unicode="false" /> <Property Name="COLOR_CATALOGS_ITEM_GUID" Type="String" MaxLength="36" FixedLength="false" Unicode="false" /> @@ -6580,6 +6592,7 @@ <Property Name="HAS_PIGMENT" Type="Boolean" Nullable="false" /> <Property Name="SHORT_NAME" Type="String" MaxLength="4" FixedLength="false" Unicode="true" /> <Property Name="AVAILABLE_FOR_STANDARD_USER" Type="Boolean" Nullable="false" /> + <Property Name="IS_EXTRA_INK" Type="Boolean" Nullable="false" /> <NavigationProperty Name="CATS" Relationship="RemoteModel.FK_CATS_LIQUID_TYPES1" FromRole="LIQUID_TYPES" ToRole="CAT" /> <NavigationProperty Name="IDS_PACKS" Relationship="RemoteModel.FK_CONFIGURATIONS_DISPENSERS_LIQUIDS" FromRole="LIQUID_TYPES" ToRole="IDS_PACKS" /> <NavigationProperty Name="LIQUID_TYPES_RMLS" Relationship="RemoteModel.FK_LIQUID_TYPES_RMLS_LIQUID_TYPES" FromRole="LIQUID_TYPES" ToRole="LIQUID_TYPES_RMLS" /> @@ -6996,11 +7009,6 @@ <Property Name="BTSR_APPLICATION_TYPE_GUID" Type="String" MaxLength="36" FixedLength="false" Unicode="false" /> <Property Name="BTSR_YARN_TYPE_GUID" Type="String" MaxLength="36" FixedLength="false" Unicode="false" /> <Property Name="BTSR_TENSION_ERROR" Type="Double" Nullable="false" /> - <Property Name="CMYKV_PREDICTION_TYPE" Type="Int32" Nullable="false" /> - <Property Name="CMYKV_PREDICTION_METHOD" Type="Int32" Nullable="false" /> - <Property Name="CMYKV_HUE_THRESHOLD" Type="Double" Nullable="false" /> - <Property Name="K_NEAREST_K" Type="Int32" Nullable="false" /> - <Property Name="SIMPLE_RGB_PREVIEW_FACTOR" Type="Double" Nullable="false" /> <NavigationProperty Name="BTSR_APPLICATION_TYPES" Relationship="RemoteModel.FK_RMLS_BTSR_APPLICATION_TYPES" FromRole="RML" ToRole="BTSR_APPLICATION_TYPES" /> <NavigationProperty Name="BTSR_YARN_TYPES" Relationship="RemoteModel.FK_RMLS_BTSR_YARN_TYPES" FromRole="RML" ToRole="BTSR_YARN_TYPES" /> <NavigationProperty Name="CATS" Relationship="RemoteModel.FK_CATS_RMLS" FromRole="RML" ToRole="CAT" /> @@ -9288,6 +9296,14 @@ <ScalarProperty Name="COLOR_CATALOGS_ITEM_GUID" ColumnName="COLOR_CATALOGS_ITEM_GUID" /> <ScalarProperty Name="COLOR_CATALOG_GUID" ColumnName="COLOR_CATALOG_GUID" /> <ScalarProperty Name="CORRECTED" ColumnName="CORRECTED" /> + <ScalarProperty Name="V15_DIV" ColumnName="V15_DIV" /> + <ScalarProperty Name="V15" ColumnName="V15" /> + <ScalarProperty Name="V14_DIV" ColumnName="V14_DIV" /> + <ScalarProperty Name="V14" ColumnName="V14" /> + <ScalarProperty Name="V13_DIV" ColumnName="V13_DIV" /> + <ScalarProperty Name="V13" ColumnName="V13" /> + <ScalarProperty Name="V12_DIV" ColumnName="V12_DIV" /> + <ScalarProperty Name="V12" ColumnName="V12" /> <ScalarProperty Name="V11_DIV" ColumnName="V11_DIV" /> <ScalarProperty Name="V11" ColumnName="V11" /> <ScalarProperty Name="V10_DIV" ColumnName="V10_DIV" /> @@ -10079,6 +10095,7 @@ <EntitySetMapping Name="LIQUID_TYPES"> <EntityTypeMapping TypeName="RemoteModel.LIQUID_TYPES"> <MappingFragment StoreEntitySet="LIQUID_TYPES"> + <ScalarProperty Name="IS_EXTRA_INK" ColumnName="IS_EXTRA_INK" /> <ScalarProperty Name="AVAILABLE_FOR_STANDARD_USER" ColumnName="AVAILABLE_FOR_STANDARD_USER" /> <ScalarProperty Name="SHORT_NAME" ColumnName="SHORT_NAME" /> <ScalarProperty Name="HAS_PIGMENT" ColumnName="HAS_PIGMENT" /> @@ -10427,11 +10444,6 @@ <EntitySetMapping Name="RMLS"> <EntityTypeMapping TypeName="RemoteModel.RML"> <MappingFragment StoreEntitySet="RMLS"> - <ScalarProperty Name="SIMPLE_RGB_PREVIEW_FACTOR" ColumnName="SIMPLE_RGB_PREVIEW_FACTOR" /> - <ScalarProperty Name="K_NEAREST_K" ColumnName="K_NEAREST_K" /> - <ScalarProperty Name="CMYKV_HUE_THRESHOLD" ColumnName="CMYKV_HUE_THRESHOLD" /> - <ScalarProperty Name="CMYKV_PREDICTION_METHOD" ColumnName="CMYKV_PREDICTION_METHOD" /> - <ScalarProperty Name="CMYKV_PREDICTION_TYPE" ColumnName="CMYKV_PREDICTION_TYPE" /> <ScalarProperty Name="BTSR_TENSION_ERROR" ColumnName="BTSR_TENSION_ERROR" /> <ScalarProperty Name="BTSR_YARN_TYPE_GUID" ColumnName="BTSR_YARN_TYPE_GUID" /> <ScalarProperty Name="BTSR_APPLICATION_TYPE_GUID" ColumnName="BTSR_APPLICATION_TYPE_GUID" /> diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram index c0d3bd959..15865425b 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram @@ -5,103 +5,103 @@ <!-- Diagram content (shape and connector positions) --> <edmx:Diagrams> <Diagram DiagramId="f9ae01d708754bbd997add25a4bacc79" Name="Diagram1" ZoomLevel="58"> - <EntityTypeShape EntityType="RemoteModel.ACTION_LOGS" Width="1.5" PointX="11.25" PointY="11.125" /> - <EntityTypeShape EntityType="RemoteModel.ADDRESS" Width="1.5" PointX="1.5" PointY="70.875" /> - <EntityTypeShape EntityType="RemoteModel.APPLICATION_DISPLAY_PANEL_VERSIONS" Width="1.5" PointX="1.5" PointY="96.375" /> - <EntityTypeShape EntityType="RemoteModel.APPLICATION_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="90.625" /> - <EntityTypeShape EntityType="RemoteModel.APPLICATION_OS_VERSIONS" Width="1.5" PointX="1.5" PointY="75" /> - <EntityTypeShape EntityType="RemoteModel.BIT_TYPES" Width="1.5" PointX="13.75" PointY="10.75" /> - <EntityTypeShape EntityType="RemoteModel.BRUSH_STOPS" Width="1.5" PointX="18" PointY="20.625" /> - <EntityTypeShape EntityType="RemoteModel.BTSR_APPLICATION_TYPES" Width="1.5" PointX="0.75" PointY="28.375" /> - <EntityTypeShape EntityType="RemoteModel.BTSR_YARN_TYPES" Width="1.5" PointX="0.75" PointY="24.875" /> - <EntityTypeShape EntityType="RemoteModel.CARTRIDGE_TYPES" Width="1.5" PointX="3" PointY="45.75" /> - <EntityTypeShape EntityType="RemoteModel.CAT" Width="1.5" PointX="5.25" PointY="20.625" /> - <EntityTypeShape EntityType="RemoteModel.CCT" Width="1.5" PointX="0.75" PointY="43.75" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS" Width="1.5" PointX="9" PointY="38.25" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_GROUPS" Width="1.5" PointX="13.5" PointY="19.875" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS" Width="1.5" PointX="15.75" PointY="18.625" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS_RECIPES" Width="1.5" PointX="5.25" PointY="28.5" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_MEASUREMENTS" Width="1.5" PointX="14.75" PointY="0.75" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_PROCESS_INK_UPTAKE" Width="1.5" PointX="15.75" PointY="10.75" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_SPACES" Width="1.5" PointX="9" PointY="34.75" /> - <EntityTypeShape EntityType="RemoteModel.CONFIGURATION" Width="1.5" PointX="0.75" PointY="80.75" /> - <EntityTypeShape EntityType="RemoteModel.CONTACT" Width="1.5" PointX="1.5" PointY="67" /> - <EntityTypeShape EntityType="RemoteModel.CUSTOMER" Width="1.5" PointX="9" PointY="28.5" /> - <EntityTypeShape EntityType="RemoteModel.DATA_STORE_ITEMS" Width="1.5" PointX="5.25" PointY="67.25" /> + <EntityTypeShape EntityType="RemoteModel.ACTION_LOGS" Width="1.5" PointX="11.25" PointY="53.25" /> + <EntityTypeShape EntityType="RemoteModel.ADDRESS" Width="1.5" PointX="1.5" PointY="85.75" /> + <EntityTypeShape EntityType="RemoteModel.APPLICATION_DISPLAY_PANEL_VERSIONS" Width="1.5" PointX="1.5" PointY="68.5" /> + <EntityTypeShape EntityType="RemoteModel.APPLICATION_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="74.375" /> + <EntityTypeShape EntityType="RemoteModel.APPLICATION_OS_VERSIONS" Width="1.5" PointX="1.5" PointY="48.625" /> + <EntityTypeShape EntityType="RemoteModel.BIT_TYPES" Width="1.5" PointX="8.75" PointY="8.75" /> + <EntityTypeShape EntityType="RemoteModel.BRUSH_STOPS" Width="1.5" PointX="18" PointY="20.75" /> + <EntityTypeShape EntityType="RemoteModel.BTSR_APPLICATION_TYPES" Width="1.5" PointX="0.75" PointY="14.625" /> + <EntityTypeShape EntityType="RemoteModel.BTSR_YARN_TYPES" Width="1.5" PointX="0.75" PointY="35.625" /> + <EntityTypeShape EntityType="RemoteModel.CARTRIDGE_TYPES" Width="1.5" PointX="3" PointY="43.25" /> + <EntityTypeShape EntityType="RemoteModel.CAT" Width="1.5" PointX="5.25" PointY="25.375" /> + <EntityTypeShape EntityType="RemoteModel.CCT" Width="1.5" PointX="0.75" PointY="41.875" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS" Width="1.5" PointX="1.5" PointY="6.25" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_GROUPS" Width="1.5" PointX="3.75" PointY="6.75" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS" Width="1.5" PointX="6" PointY="5.5" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS_RECIPES" Width="1.5" PointX="8.25" PointY="20.375" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_MEASUREMENTS" Width="1.5" PointX="10.75" PointY="0.75" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_PROCESS_INK_UPTAKE" Width="1.5" PointX="2.75" PointY="10.75" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_SPACES" Width="1.5" PointX="9" PointY="39.375" /> + <EntityTypeShape EntityType="RemoteModel.CONFIGURATION" Width="1.5" PointX="0.75" PointY="54.375" /> + <EntityTypeShape EntityType="RemoteModel.CONTACT" Width="1.5" PointX="1.5" PointY="81.875" /> + <EntityTypeShape EntityType="RemoteModel.CUSTOMER" Width="1.5" PointX="9" PointY="30.25" /> + <EntityTypeShape EntityType="RemoteModel.DATA_STORE_ITEMS" Width="1.5" PointX="5.25" PointY="68.75" /> <EntityTypeShape EntityType="RemoteModel.DISPENSER_TYPES" Width="1.5" PointX="0.75" PointY="2.25" /> <EntityTypeShape EntityType="RemoteModel.DISPENSER" Width="1.5" PointX="3" PointY="1.625" /> - <EntityTypeShape EntityType="RemoteModel.EMBEDDED_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="93.5" /> - <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES" Width="1.5" PointX="9" PointY="65.625" /> - <EntityTypeShape EntityType="RemoteModel.FIBER_SHAPES" Width="1.5" PointX="0.75" PointY="37.875" /> - <EntityTypeShape EntityType="RemoteModel.FIBER_SYNTHS" Width="1.5" PointX="0.75" PointY="31.625" /> - <EntityTypeShape EntityType="RemoteModel.FSE_VERSIONS" Width="1.5" PointX="11.25" PointY="32.375" /> - <EntityTypeShape EntityType="RemoteModel.GBD" Width="1.5" PointX="0.75" PointY="34.5" /> - <EntityTypeShape EntityType="RemoteModel.GLOBAL_DATA_STORE_ITEMS" Width="1.5" PointX="16.75" PointY="0.75" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWER_TYPES" Width="1.5" PointX="1.5" PointY="99.75" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWERS" Width="1.5" PointX="3.75" PointY="80.375" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSOR_TYPES" Width="1.5" PointX="1.5" PointY="107.75" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSORS" Width="1.5" PointX="3.75" PointY="92.375" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCER_TYPES" Width="1.5" PointX="7.5" PointY="79.75" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCERS" Width="1.5" PointX="9.75" PointY="80.625" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTOR_TYPES" Width="1.5" PointX="4.5" PointY="76.625" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTORS" Width="1.5" PointX="6.75" PointY="83.375" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROL_TYPES" Width="1.5" PointX="1.5" PointY="103.75" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROLS" Width="1.5" PointX="3.75" PointY="84.75" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSOR_TYPES" Width="1.5" PointX="7.5" PointY="97.75" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSORS" Width="1.5" PointX="9.75" PointY="90.375" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="85.875" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDER_TYPES" Width="1.5" PointX="7.5" PointY="93.75" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDERS" Width="1.5" PointX="9.75" PointY="86.5" /> - <EntityTypeShape EntityType="RemoteModel.IDS_PACK_FORMULAS" Width="1.5" PointX="3" PointY="39.125" /> - <EntityTypeShape EntityType="RemoteModel.IDS_PACKS" Width="1.5" PointX="5.25" PointY="43.5" /> - <EntityTypeShape EntityType="RemoteModel.JOB_RUNS" Width="1.5" PointX="17.75" PointY="4.75" /> - <EntityTypeShape EntityType="RemoteModel.JOB" Width="1.5" PointX="11.25" PointY="20.875" /> - <EntityTypeShape EntityType="RemoteModel.LINEAR_MASS_DENSITY_UNITS" Width="1.5" PointX="0.75" PointY="40.75" /> - <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES" Width="1.5" PointX="3" PointY="6.375" /> - <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES_RMLS" Width="1.5" PointX="8.25" PointY="24.75" /> - <EntityTypeShape EntityType="RemoteModel.LUB" Width="1.5" PointX="0.75" PointY="16.875" /> - <EntityTypeShape EntityType="RemoteModel.MACHINE_PROTOTYPES" Width="1.5" PointX="17.75" PointY="15.75" /> - <EntityTypeShape EntityType="RemoteModel.MACHINE_STUDIO_VERSIONS" Width="1.5" PointX="11.25" PointY="16.875" /> - <EntityTypeShape EntityType="RemoteModel.MACHINE_VERSIONS" Width="1.5" PointX="0.75" PointY="63.375" /> - <EntityTypeShape EntityType="RemoteModel.MACHINE" Width="1.5" PointX="3" PointY="55.125" /> - <EntityTypeShape EntityType="RemoteModel.MACHINES_EVENTS" Width="1.5" PointX="11.25" PointY="38" /> - <EntityTypeShape EntityType="RemoteModel.MEDIA_CONDITIONS" Width="1.5" PointX="0.75" PointY="11" /> - <EntityTypeShape EntityType="RemoteModel.MEDIA_MATERIALS" Width="1.5" PointX="0.75" PointY="20.25" /> - <EntityTypeShape EntityType="RemoteModel.MEDIA_PURPOSES" Width="1.5" PointX="0.75" PointY="14" /> - <EntityTypeShape EntityType="RemoteModel.MID_TANK_TYPES" Width="1.5" PointX="3" PointY="42.375" /> - <EntityTypeShape EntityType="RemoteModel.ORGANIZATION" Width="1.5" PointX="0.75" PointY="49" /> - <EntityTypeShape EntityType="RemoteModel.PERMISSION" Width="1.5" PointX="12" PointY="3" /> - <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES" Width="1.5" PointX="7.5" PointY="49" /> - <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES_GROUPS" Width="1.5" PointX="5.25" PointY="55.25" /> - <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS" Width="1.5" PointX="5.75" PointY="5" /> - <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS_VERSIONS" Width="1.5" PointX="8" PointY="5.125" /> + <EntityTypeShape EntityType="RemoteModel.EMBEDDED_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="71.375" /> + <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES" Width="1.5" PointX="9" PointY="66.25" /> + <EntityTypeShape EntityType="RemoteModel.FIBER_SHAPES" Width="1.5" PointX="0.75" PointY="32.625" /> + <EntityTypeShape EntityType="RemoteModel.FIBER_SYNTHS" Width="1.5" PointX="0.75" PointY="38.875" /> + <EntityTypeShape EntityType="RemoteModel.FSE_VERSIONS" Width="1.5" PointX="11.25" PointY="33.875" /> + <EntityTypeShape EntityType="RemoteModel.GBD" Width="1.5" PointX="0.75" PointY="21" /> + <EntityTypeShape EntityType="RemoteModel.GLOBAL_DATA_STORE_ITEMS" Width="1.5" PointX="10.75" PointY="8.75" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWER_TYPES" Width="1.5" PointX="1.5" PointY="94" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWERS" Width="1.5" PointX="3.75" PointY="73.625" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSOR_TYPES" Width="1.5" PointX="4.5" PointY="92" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSORS" Width="1.5" PointX="6.75" PointY="77.75" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCER_TYPES" Width="1.5" PointX="1.5" PointY="102" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCERS" Width="1.5" PointX="3.75" PointY="82" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTOR_TYPES" Width="1.5" PointX="7.5" PointY="89.875" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTORS" Width="1.5" PointX="9.75" PointY="74.625" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROL_TYPES" Width="1.5" PointX="4.5" PointY="96" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROLS" Width="1.5" PointX="6.75" PointY="82.125" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSOR_TYPES" Width="1.5" PointX="1.5" PointY="98" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSORS" Width="1.5" PointX="3.75" PointY="77.75" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="77.25" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDER_TYPES" Width="1.5" PointX="4.5" PointY="88" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDERS" Width="1.5" PointX="6.75" PointY="73.875" /> + <EntityTypeShape EntityType="RemoteModel.IDS_PACK_FORMULAS" Width="1.5" PointX="3" PointY="39.875" /> + <EntityTypeShape EntityType="RemoteModel.IDS_PACKS" Width="1.5" PointX="5.25" PointY="34" /> + <EntityTypeShape EntityType="RemoteModel.JOB_RUNS" Width="1.5" PointX="13.75" PointY="0.75" /> + <EntityTypeShape EntityType="RemoteModel.JOB" Width="1.5" PointX="11.25" PointY="21.625" /> + <EntityTypeShape EntityType="RemoteModel.LINEAR_MASS_DENSITY_UNITS" Width="1.5" PointX="0.75" PointY="45.125" /> + <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES" Width="1.5" PointX="3" PointY="14" /> + <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES_RMLS" Width="1.5" PointX="5.25" PointY="21.625" /> + <EntityTypeShape EntityType="RemoteModel.LUB" Width="1.5" PointX="0.75" PointY="29.375" /> + <EntityTypeShape EntityType="RemoteModel.MACHINE_PROTOTYPES" Width="1.5" PointX="5.75" PointY="11.75" /> + <EntityTypeShape EntityType="RemoteModel.MACHINE_STUDIO_VERSIONS" Width="1.5" PointX="11.25" PointY="43.75" /> + <EntityTypeShape EntityType="RemoteModel.MACHINE_VERSIONS" Width="1.5" PointX="0.75" PointY="89.875" /> + <EntityTypeShape EntityType="RemoteModel.MACHINE" Width="1.5" PointX="3" PointY="56.625" /> + <EntityTypeShape EntityType="RemoteModel.MACHINES_EVENTS" Width="1.5" PointX="11.25" PointY="48.625" /> + <EntityTypeShape EntityType="RemoteModel.MEDIA_CONDITIONS" Width="1.5" PointX="0.75" PointY="11.75" /> + <EntityTypeShape EntityType="RemoteModel.MEDIA_MATERIALS" Width="1.5" PointX="0.75" PointY="17.875" /> + <EntityTypeShape EntityType="RemoteModel.MEDIA_PURPOSES" Width="1.5" PointX="0.75" PointY="25.875" /> + <EntityTypeShape EntityType="RemoteModel.MID_TANK_TYPES" Width="1.5" PointX="3" PointY="52.125" /> + <EntityTypeShape EntityType="RemoteModel.ORGANIZATION" Width="1.5" PointX="0.75" PointY="61.875" /> + <EntityTypeShape EntityType="RemoteModel.PERMISSION" Width="1.5" PointX="12" PointY="13.75" /> + <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES" Width="1.5" PointX="7.5" PointY="49.75" /> + <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES_GROUPS" Width="1.5" PointX="5.25" PointY="56" /> + <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS" Width="1.5" PointX="8.75" PointY="5" /> + <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS_VERSIONS" Width="1.5" PointX="11" PointY="5.125" /> <EntityTypeShape EntityType="RemoteModel.RML_EXTENSION_TEST_WASHING_RESULTS" Width="1.5" PointX="8" PointY="1" /> - <EntityTypeShape EntityType="RemoteModel.RML" Width="1.5" PointX="3" PointY="18" /> - <EntityTypeShape EntityType="RemoteModel.RMLS_SPOOLS" Width="1.5" PointX="8.25" PointY="20.25" /> - <EntityTypeShape EntityType="RemoteModel.ROLE" Width="1.5" PointX="12" PointY="6.875" /> - <EntityTypeShape EntityType="RemoteModel.ROLES_PERMISSIONS" Width="1.5" PointX="14.25" PointY="7" /> - <EntityTypeShape EntityType="RemoteModel.RUBBING_RESULTS" Width="1.5" PointX="18.75" PointY="0.75" /> - <EntityTypeShape EntityType="RemoteModel.SEGMENT" Width="1.5" PointX="15.75" PointY="24.625" /> - <EntityTypeShape EntityType="RemoteModel.SEGMENTS_GROUPS" Width="1.5" PointX="13.5" PointY="24.875" /> - <EntityTypeShape EntityType="RemoteModel.SITE" Width="1.5" PointX="3" PointY="13.625" /> - <EntityTypeShape EntityType="RemoteModel.SITES_CATALOGS" Width="1.5" PointX="14.25" PointY="28.5" /> - <EntityTypeShape EntityType="RemoteModel.SITES_RMLS" Width="1.5" PointX="5.25" PointY="25" /> - <EntityTypeShape EntityType="RemoteModel.SITES_SPOOL_TYPES" Width="1.5" PointX="8.25" PointY="10.375" /> - <EntityTypeShape EntityType="RemoteModel.SPOOL_TYPES" Width="1.5" PointX="6" PointY="14.875" /> - <EntityTypeShape EntityType="RemoteModel.SPOOL" Width="1.5" PointX="8.25" PointY="42.75" /> - <EntityTypeShape EntityType="RemoteModel.sysdiagram" Width="1.5" PointX="19.75" PointY="4.75" /> - <EntityTypeShape EntityType="RemoteModel.TANGO_UPDATES" Width="1.5" PointX="19.75" PointY="7.75" /> - <EntityTypeShape EntityType="RemoteModel.TANGO_VERSIONS" Width="1.5" PointX="14.25" PointY="37.875" /> - <EntityTypeShape EntityType="RemoteModel.TECH_CONTROLLERS" Width="1.5" PointX="19.75" PointY="12.75" /> - <EntityTypeShape EntityType="RemoteModel.TECH_DISPENSERS" Width="1.5" PointX="19.75" PointY="16.75" /> - <EntityTypeShape EntityType="RemoteModel.TECH_HEATERS" Width="1.5" PointX="20.75" PointY="0.75" /> - <EntityTypeShape EntityType="RemoteModel.TECH_IOS" Width="1.5" PointX="20.75" PointY="19.75" /> - <EntityTypeShape EntityType="RemoteModel.TECH_MONITORS" Width="1.5" PointX="21.75" PointY="3.75" /> - <EntityTypeShape EntityType="RemoteModel.TECH_VALVES" Width="1.5" PointX="21.75" PointY="8.75" /> - <EntityTypeShape EntityType="RemoteModel.USER" Width="1.5" PointX="9" PointY="13.5" /> - <EntityTypeShape EntityType="RemoteModel.USERS_ROLES" Width="1.5" PointX="14.25" PointY="15" /> + <EntityTypeShape EntityType="RemoteModel.RML" Width="1.5" PointX="3" PointY="19.375" /> + <EntityTypeShape EntityType="RemoteModel.RMLS_SPOOLS" Width="1.5" PointX="8.25" PointY="25.125" /> + <EntityTypeShape EntityType="RemoteModel.ROLE" Width="1.5" PointX="12" PointY="17.625" /> + <EntityTypeShape EntityType="RemoteModel.ROLES_PERMISSIONS" Width="1.5" PointX="14.25" PointY="17.75" /> + <EntityTypeShape EntityType="RemoteModel.RUBBING_RESULTS" Width="1.5" PointX="14.75" PointY="11.75" /> + <EntityTypeShape EntityType="RemoteModel.SEGMENT" Width="1.5" PointX="15.75" PointY="25.375" /> + <EntityTypeShape EntityType="RemoteModel.SEGMENTS_GROUPS" Width="1.5" PointX="13.5" PointY="25.75" /> + <EntityTypeShape EntityType="RemoteModel.SITE" Width="1.5" PointX="3" PointY="35.5" /> + <EntityTypeShape EntityType="RemoteModel.SITES_CATALOGS" Width="1.5" PointX="5.25" PointY="18.125" /> + <EntityTypeShape EntityType="RemoteModel.SITES_RMLS" Width="1.5" PointX="5.25" PointY="29.875" /> + <EntityTypeShape EntityType="RemoteModel.SITES_SPOOL_TYPES" Width="1.5" PointX="14.25" PointY="29.5" /> + <EntityTypeShape EntityType="RemoteModel.SPOOL_TYPES" Width="1.5" PointX="9" PointY="14.75" /> + <EntityTypeShape EntityType="RemoteModel.SPOOL" Width="1.5" PointX="11.25" PointY="39.5" /> + <EntityTypeShape EntityType="RemoteModel.sysdiagram" Width="1.5" PointX="15.75" PointY="0.75" /> + <EntityTypeShape EntityType="RemoteModel.TANGO_UPDATES" Width="1.5" PointX="15.75" PointY="3.75" /> + <EntityTypeShape EntityType="RemoteModel.TANGO_VERSIONS" Width="1.5" PointX="11.25" PointY="61" /> + <EntityTypeShape EntityType="RemoteModel.TECH_CONTROLLERS" Width="1.5" PointX="16.75" PointY="8.75" /> + <EntityTypeShape EntityType="RemoteModel.TECH_DISPENSERS" Width="1.5" PointX="16.75" PointY="12.75" /> + <EntityTypeShape EntityType="RemoteModel.TECH_HEATERS" Width="1.5" PointX="16.75" PointY="15.75" /> + <EntityTypeShape EntityType="RemoteModel.TECH_IOS" Width="1.5" PointX="17.75" PointY="0.75" /> + <EntityTypeShape EntityType="RemoteModel.TECH_MONITORS" Width="1.5" PointX="18.75" PointY="5.75" /> + <EntityTypeShape EntityType="RemoteModel.TECH_VALVES" Width="1.5" PointX="18.75" PointY="10.75" /> + <EntityTypeShape EntityType="RemoteModel.USER" Width="1.5" PointX="9" PointY="33.375" /> + <EntityTypeShape EntityType="RemoteModel.USERS_ROLES" Width="1.5" PointX="14.25" PointY="34.75" /> <EntityTypeShape EntityType="RemoteModel.WASHING_TEST_MATERIALS" Width="1.5" PointX="5.75" PointY="1.5" /> - <EntityTypeShape EntityType="RemoteModel.WINDING_METHODS" Width="1.5" PointX="9" PointY="31.625" /> + <EntityTypeShape EntityType="RemoteModel.WINDING_METHODS" Width="1.5" PointX="9" PointY="42.875" /> <AssociationConnector Association="RemoteModel.FK_ACTION_LOGS_USERS" /> <AssociationConnector Association="RemoteModel.FK_ORGANIZATIONS_ADDRESSES" /> <AssociationConnector Association="RemoteModel.FK_USERS_ADDRESSES" /> diff --git a/Software/Visual_Studio/Tango.PMR/ColorLab/ColorMeasurement.cs b/Software/Visual_Studio/Tango.PMR/ColorLab/ColorMeasurement.cs deleted file mode 100644 index f11849c1f..000000000 --- a/Software/Visual_Studio/Tango.PMR/ColorLab/ColorMeasurement.cs +++ /dev/null @@ -1,357 +0,0 @@ -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: ColorMeasurement.proto -#pragma warning disable 1591, 0612, 3021 -#region Designer generated code - -using pb = global::Google.Protobuf; -using pbc = global::Google.Protobuf.Collections; -using pbr = global::Google.Protobuf.Reflection; -using scg = global::System.Collections.Generic; -namespace Tango.PMR.ColorLab { - - /// <summary>Holder for reflection information generated from ColorMeasurement.proto</summary> - public static partial class ColorMeasurementReflection { - - #region Descriptor - /// <summary>File descriptor for ColorMeasurement.proto</summary> - public static pbr::FileDescriptor Descriptor { - get { return descriptor; } - } - private static pbr::FileDescriptor descriptor; - - static ColorMeasurementReflection() { - byte[] descriptorData = global::System.Convert.FromBase64String( - string.Concat( - "ChZDb2xvck1lYXN1cmVtZW50LnByb3RvEhJUYW5nby5QTVIuQ29sb3JMYWIi", - "agoQQ29sb3JNZWFzdXJlbWVudBIJCgFDGAEgASgBEgkKAU0YAiABKAESCQoB", - "WRgDIAEoARIJCgFLGAQgASgBEgkKAVYYBSABKAESCQoBTBgKIAEoARIJCgFB", - "GAsgASgBEgkKAUIYDCABKAFCHgocY29tLnR3aW5lLnRhbmdvLnBtci5jb2xv", - "cmxhYmIGcHJvdG8z")); - descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, - new pbr::FileDescriptor[] { }, - new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { - new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.ColorLab.ColorMeasurement), global::Tango.PMR.ColorLab.ColorMeasurement.Parser, new[]{ "C", "M", "Y", "K", "V", "L", "A", "B" }, null, null, null) - })); - } - #endregion - - } - #region Messages - public sealed partial class ColorMeasurement : pb::IMessage<ColorMeasurement> { - private static readonly pb::MessageParser<ColorMeasurement> _parser = new pb::MessageParser<ColorMeasurement>(() => new ColorMeasurement()); - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public static pb::MessageParser<ColorMeasurement> Parser { get { return _parser; } } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public static pbr::MessageDescriptor Descriptor { - get { return global::Tango.PMR.ColorLab.ColorMeasurementReflection.Descriptor.MessageTypes[0]; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - pbr::MessageDescriptor pb::IMessage.Descriptor { - get { return Descriptor; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public ColorMeasurement() { - OnConstruction(); - } - - partial void OnConstruction(); - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public ColorMeasurement(ColorMeasurement other) : this() { - c_ = other.c_; - m_ = other.m_; - y_ = other.y_; - k_ = other.k_; - v_ = other.v_; - l_ = other.l_; - a_ = other.a_; - b_ = other.b_; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public ColorMeasurement Clone() { - return new ColorMeasurement(this); - } - - /// <summary>Field number for the "C" field.</summary> - public const int CFieldNumber = 1; - private double c_; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public double C { - get { return c_; } - set { - c_ = value; - } - } - - /// <summary>Field number for the "M" field.</summary> - public const int MFieldNumber = 2; - private double m_; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public double M { - get { return m_; } - set { - m_ = value; - } - } - - /// <summary>Field number for the "Y" field.</summary> - public const int YFieldNumber = 3; - private double y_; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public double Y { - get { return y_; } - set { - y_ = value; - } - } - - /// <summary>Field number for the "K" field.</summary> - public const int KFieldNumber = 4; - private double k_; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public double K { - get { return k_; } - set { - k_ = value; - } - } - - /// <summary>Field number for the "V" field.</summary> - public const int VFieldNumber = 5; - private double v_; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public double V { - get { return v_; } - set { - v_ = value; - } - } - - /// <summary>Field number for the "L" field.</summary> - public const int LFieldNumber = 10; - private double l_; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public double L { - get { return l_; } - set { - l_ = value; - } - } - - /// <summary>Field number for the "A" field.</summary> - public const int AFieldNumber = 11; - private double a_; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public double A { - get { return a_; } - set { - a_ = value; - } - } - - /// <summary>Field number for the "B" field.</summary> - public const int BFieldNumber = 12; - private double b_; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public double B { - get { return b_; } - set { - b_ = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public override bool Equals(object other) { - return Equals(other as ColorMeasurement); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public bool Equals(ColorMeasurement other) { - if (ReferenceEquals(other, null)) { - return false; - } - if (ReferenceEquals(other, this)) { - return true; - } - if (C != other.C) return false; - if (M != other.M) return false; - if (Y != other.Y) return false; - if (K != other.K) return false; - if (V != other.V) return false; - if (L != other.L) return false; - if (A != other.A) return false; - if (B != other.B) return false; - return true; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public override int GetHashCode() { - int hash = 1; - if (C != 0D) hash ^= C.GetHashCode(); - if (M != 0D) hash ^= M.GetHashCode(); - if (Y != 0D) hash ^= Y.GetHashCode(); - if (K != 0D) hash ^= K.GetHashCode(); - if (V != 0D) hash ^= V.GetHashCode(); - if (L != 0D) hash ^= L.GetHashCode(); - if (A != 0D) hash ^= A.GetHashCode(); - if (B != 0D) hash ^= B.GetHashCode(); - return hash; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public override string ToString() { - return pb::JsonFormatter.ToDiagnosticString(this); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public void WriteTo(pb::CodedOutputStream output) { - if (C != 0D) { - output.WriteRawTag(9); - output.WriteDouble(C); - } - if (M != 0D) { - output.WriteRawTag(17); - output.WriteDouble(M); - } - if (Y != 0D) { - output.WriteRawTag(25); - output.WriteDouble(Y); - } - if (K != 0D) { - output.WriteRawTag(33); - output.WriteDouble(K); - } - if (V != 0D) { - output.WriteRawTag(41); - output.WriteDouble(V); - } - if (L != 0D) { - output.WriteRawTag(81); - output.WriteDouble(L); - } - if (A != 0D) { - output.WriteRawTag(89); - output.WriteDouble(A); - } - if (B != 0D) { - output.WriteRawTag(97); - output.WriteDouble(B); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public int CalculateSize() { - int size = 0; - if (C != 0D) { - size += 1 + 8; - } - if (M != 0D) { - size += 1 + 8; - } - if (Y != 0D) { - size += 1 + 8; - } - if (K != 0D) { - size += 1 + 8; - } - if (V != 0D) { - size += 1 + 8; - } - if (L != 0D) { - size += 1 + 8; - } - if (A != 0D) { - size += 1 + 8; - } - if (B != 0D) { - size += 1 + 8; - } - return size; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public void MergeFrom(ColorMeasurement other) { - if (other == null) { - return; - } - if (other.C != 0D) { - C = other.C; - } - if (other.M != 0D) { - M = other.M; - } - if (other.Y != 0D) { - Y = other.Y; - } - if (other.K != 0D) { - K = other.K; - } - if (other.V != 0D) { - V = other.V; - } - if (other.L != 0D) { - L = other.L; - } - if (other.A != 0D) { - A = other.A; - } - if (other.B != 0D) { - B = other.B; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public void MergeFrom(pb::CodedInputStream input) { - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - input.SkipLastField(); - break; - case 9: { - C = input.ReadDouble(); - break; - } - case 17: { - M = input.ReadDouble(); - break; - } - case 25: { - Y = input.ReadDouble(); - break; - } - case 33: { - K = input.ReadDouble(); - break; - } - case 41: { - V = input.ReadDouble(); - break; - } - case 81: { - L = input.ReadDouble(); - break; - } - case 89: { - A = input.ReadDouble(); - break; - } - case 97: { - B = input.ReadDouble(); - break; - } - } - } - } - - } - - #endregion - -} - -#endregion Designer generated code diff --git a/Software/Visual_Studio/Tango.PMR/ColorLab/ConversionInput.cs b/Software/Visual_Studio/Tango.PMR/ColorLab/ConversionInput.cs index 1d85f4c7c..1b6c796c5 100644 --- a/Software/Visual_Studio/Tango.PMR/ColorLab/ConversionInput.cs +++ b/Software/Visual_Studio/Tango.PMR/ColorLab/ConversionInput.cs @@ -24,29 +24,24 @@ namespace Tango.PMR.ColorLab { string.Concat( "ChVDb252ZXJzaW9uSW5wdXQucHJvdG8SElRhbmdvLlBNUi5Db2xvckxhYhoW", "SW5wdXRDb29yZGluYXRlcy5wcm90bxoQQ29sb3JTcGFjZS5wcm90bxoSUHJv", - "Y2Vzc1JhbmdlLnByb3RvGhRDb252ZXJzaW9uVHlwZS5wcm90bxoWQ29sb3JN", - "ZWFzdXJlbWVudC5wcm90byLYBQoPQ29udmVyc2lvbklucHV0Eg8KB1RocmVh", - "ZEwYASABKAESDwoHVGhyZWFkQRgCIAEoARIPCgdUaHJlYWRCGAMgASgBEjIK", - "CkNvbG9yU3BhY2UYBCABKA4yHi5UYW5nby5QTVIuQ29sb3JMYWIuQ29sb3JT", - "cGFjZRI+ChBJbnB1dENvb3JkaW5hdGVzGAUgASgLMiQuVGFuZ28uUE1SLkNv", - "bG9yTGFiLklucHV0Q29vcmRpbmF0ZXMSEwoLRm9yd2FyZERhdGEYBiABKAwS", - "EwoLSW52ZXJzZURhdGEYByABKAwSFQoNU2VnbWVudExlbmd0aBgIIAEoARIT", - "CgtEZWx0YUNocm9tYRgJIAEoARIOCgZEZWx0YUwYCiABKAESNwoNUHJvY2Vz", - "c1JhbmdlcxgLIAMoCzIgLlRhbmdvLlBNUi5Db2xvckxhYi5Qcm9jZXNzUmFu", - "Z2USFAoMR2VuZXJhdGVIaXZlGAwgASgIEhQKDFVzZUxpZ2h0SW5rcxgNIAEo", - "CBIMCgRWTWF4GA4gASgBEg8KB0diZERhdGEYDyABKAwSDwoHTHViRGF0YRgQ", - "IAEoDBIdChVVc2VMdWJyaWNhbnRUcmFuc2Zvcm0YESABKAgSOgoOQ29udmVy", - "c2lvblR5cGUYEiABKA4yIi5UYW5nby5QTVIuQ29sb3JMYWIuQ29udmVyc2lv", - "blR5cGUSGwoTQ01ZS1ZQcmVkaWN0aW9uVHlwZRgTIAEoBRIdChVDTVlLVlBy", - "ZWRpY3Rpb25NZXRob2QYFCABKAUSGgoSQ01ZS1ZIdWVUaHJlc2hob2xkGBUg", - "ASgBEg8KB0NNWUtWX0sYFiABKAESHgoWU2ltcGxlUkdCUHJldmlld0ZhY3Rv", - "chgXIAEoARI/ChFDb2xvck1lYXN1cmVtZW50cxgYIAMoCzIkLlRhbmdvLlBN", - "Ui5Db2xvckxhYi5Db2xvck1lYXN1cmVtZW50Qh4KHGNvbS50d2luZS50YW5n", - "by5wbXIuY29sb3JsYWJiBnByb3RvMw==")); + "Y2Vzc1JhbmdlLnByb3RvGhRDb252ZXJzaW9uVHlwZS5wcm90byKOBAoPQ29u", + "dmVyc2lvbklucHV0Eg8KB1RocmVhZEwYASABKAESDwoHVGhyZWFkQRgCIAEo", + "ARIPCgdUaHJlYWRCGAMgASgBEjIKCkNvbG9yU3BhY2UYBCABKA4yHi5UYW5n", + "by5QTVIuQ29sb3JMYWIuQ29sb3JTcGFjZRI+ChBJbnB1dENvb3JkaW5hdGVz", + "GAUgASgLMiQuVGFuZ28uUE1SLkNvbG9yTGFiLklucHV0Q29vcmRpbmF0ZXMS", + "EwoLRm9yd2FyZERhdGEYBiABKAwSEwoLSW52ZXJzZURhdGEYByABKAwSFQoN", + "U2VnbWVudExlbmd0aBgIIAEoARITCgtEZWx0YUNocm9tYRgJIAEoARIOCgZE", + "ZWx0YUwYCiABKAESNwoNUHJvY2Vzc1JhbmdlcxgLIAMoCzIgLlRhbmdvLlBN", + "Ui5Db2xvckxhYi5Qcm9jZXNzUmFuZ2USFAoMR2VuZXJhdGVIaXZlGAwgASgI", + "EhQKDFVzZUxpZ2h0SW5rcxgNIAEoCBIMCgRWTWF4GA4gASgBEg8KB0diZERh", + "dGEYDyABKAwSDwoHTHViRGF0YRgQIAEoDBIdChVVc2VMdWJyaWNhbnRUcmFu", + "c2Zvcm0YESABKAgSOgoOQ29udmVyc2lvblR5cGUYEiABKA4yIi5UYW5nby5Q", + "TVIuQ29sb3JMYWIuQ29udmVyc2lvblR5cGVCHgocY29tLnR3aW5lLnRhbmdv", + "LnBtci5jb2xvcmxhYmIGcHJvdG8z")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, - new pbr::FileDescriptor[] { global::Tango.PMR.ColorLab.InputCoordinatesReflection.Descriptor, global::Tango.PMR.ColorLab.ColorSpaceReflection.Descriptor, global::Tango.PMR.ColorLab.ProcessRangeReflection.Descriptor, global::Tango.PMR.ColorLab.ConversionTypeReflection.Descriptor, global::Tango.PMR.ColorLab.ColorMeasurementReflection.Descriptor, }, + new pbr::FileDescriptor[] { global::Tango.PMR.ColorLab.InputCoordinatesReflection.Descriptor, global::Tango.PMR.ColorLab.ColorSpaceReflection.Descriptor, global::Tango.PMR.ColorLab.ProcessRangeReflection.Descriptor, global::Tango.PMR.ColorLab.ConversionTypeReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { - new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.ColorLab.ConversionInput), global::Tango.PMR.ColorLab.ConversionInput.Parser, new[]{ "ThreadL", "ThreadA", "ThreadB", "ColorSpace", "InputCoordinates", "ForwardData", "InverseData", "SegmentLength", "DeltaChroma", "DeltaL", "ProcessRanges", "GenerateHive", "UseLightInks", "VMax", "GbdData", "LubData", "UseLubricantTransform", "ConversionType", "CMYKVPredictionType", "CMYKVPredictionMethod", "CMYKVHueThreshhold", "CMYKVK", "SimpleRGBPreviewFactor", "ColorMeasurements" }, null, null, null) + new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.ColorLab.ConversionInput), global::Tango.PMR.ColorLab.ConversionInput.Parser, new[]{ "ThreadL", "ThreadA", "ThreadB", "ColorSpace", "InputCoordinates", "ForwardData", "InverseData", "SegmentLength", "DeltaChroma", "DeltaL", "ProcessRanges", "GenerateHive", "UseLightInks", "VMax", "GbdData", "LubData", "UseLubricantTransform", "ConversionType" }, null, null, null) })); } #endregion @@ -95,12 +90,6 @@ namespace Tango.PMR.ColorLab { lubData_ = other.lubData_; useLubricantTransform_ = other.useLubricantTransform_; conversionType_ = other.conversionType_; - cMYKVPredictionType_ = other.cMYKVPredictionType_; - cMYKVPredictionMethod_ = other.cMYKVPredictionMethod_; - cMYKVHueThreshhold_ = other.cMYKVHueThreshhold_; - cMYKVK_ = other.cMYKVK_; - simpleRGBPreviewFactor_ = other.simpleRGBPreviewFactor_; - colorMeasurements_ = other.colorMeasurements_.Clone(); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -305,71 +294,6 @@ namespace Tango.PMR.ColorLab { } } - /// <summary>Field number for the "CMYKVPredictionType" field.</summary> - public const int CMYKVPredictionTypeFieldNumber = 19; - private int cMYKVPredictionType_; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public int CMYKVPredictionType { - get { return cMYKVPredictionType_; } - set { - cMYKVPredictionType_ = value; - } - } - - /// <summary>Field number for the "CMYKVPredictionMethod" field.</summary> - public const int CMYKVPredictionMethodFieldNumber = 20; - private int cMYKVPredictionMethod_; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public int CMYKVPredictionMethod { - get { return cMYKVPredictionMethod_; } - set { - cMYKVPredictionMethod_ = value; - } - } - - /// <summary>Field number for the "CMYKVHueThreshhold" field.</summary> - public const int CMYKVHueThreshholdFieldNumber = 21; - private double cMYKVHueThreshhold_; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public double CMYKVHueThreshhold { - get { return cMYKVHueThreshhold_; } - set { - cMYKVHueThreshhold_ = value; - } - } - - /// <summary>Field number for the "CMYKV_K" field.</summary> - public const int CMYKVKFieldNumber = 22; - private double cMYKVK_; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public double CMYKVK { - get { return cMYKVK_; } - set { - cMYKVK_ = value; - } - } - - /// <summary>Field number for the "SimpleRGBPreviewFactor" field.</summary> - public const int SimpleRGBPreviewFactorFieldNumber = 23; - private double simpleRGBPreviewFactor_; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public double SimpleRGBPreviewFactor { - get { return simpleRGBPreviewFactor_; } - set { - simpleRGBPreviewFactor_ = value; - } - } - - /// <summary>Field number for the "ColorMeasurements" field.</summary> - public const int ColorMeasurementsFieldNumber = 24; - private static readonly pb::FieldCodec<global::Tango.PMR.ColorLab.ColorMeasurement> _repeated_colorMeasurements_codec - = pb::FieldCodec.ForMessage(194, global::Tango.PMR.ColorLab.ColorMeasurement.Parser); - private readonly pbc::RepeatedField<global::Tango.PMR.ColorLab.ColorMeasurement> colorMeasurements_ = new pbc::RepeatedField<global::Tango.PMR.ColorLab.ColorMeasurement>(); - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public pbc::RepeatedField<global::Tango.PMR.ColorLab.ColorMeasurement> ColorMeasurements { - get { return colorMeasurements_; } - } - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override bool Equals(object other) { return Equals(other as ConversionInput); @@ -401,12 +325,6 @@ namespace Tango.PMR.ColorLab { if (LubData != other.LubData) return false; if (UseLubricantTransform != other.UseLubricantTransform) return false; if (ConversionType != other.ConversionType) return false; - if (CMYKVPredictionType != other.CMYKVPredictionType) return false; - if (CMYKVPredictionMethod != other.CMYKVPredictionMethod) return false; - if (CMYKVHueThreshhold != other.CMYKVHueThreshhold) return false; - if (CMYKVK != other.CMYKVK) return false; - if (SimpleRGBPreviewFactor != other.SimpleRGBPreviewFactor) return false; - if(!colorMeasurements_.Equals(other.colorMeasurements_)) return false; return true; } @@ -431,12 +349,6 @@ namespace Tango.PMR.ColorLab { if (LubData.Length != 0) hash ^= LubData.GetHashCode(); if (UseLubricantTransform != false) hash ^= UseLubricantTransform.GetHashCode(); if (ConversionType != 0) hash ^= ConversionType.GetHashCode(); - if (CMYKVPredictionType != 0) hash ^= CMYKVPredictionType.GetHashCode(); - if (CMYKVPredictionMethod != 0) hash ^= CMYKVPredictionMethod.GetHashCode(); - if (CMYKVHueThreshhold != 0D) hash ^= CMYKVHueThreshhold.GetHashCode(); - if (CMYKVK != 0D) hash ^= CMYKVK.GetHashCode(); - if (SimpleRGBPreviewFactor != 0D) hash ^= SimpleRGBPreviewFactor.GetHashCode(); - hash ^= colorMeasurements_.GetHashCode(); return hash; } @@ -516,27 +428,6 @@ namespace Tango.PMR.ColorLab { output.WriteRawTag(144, 1); output.WriteEnum((int) ConversionType); } - if (CMYKVPredictionType != 0) { - output.WriteRawTag(152, 1); - output.WriteInt32(CMYKVPredictionType); - } - if (CMYKVPredictionMethod != 0) { - output.WriteRawTag(160, 1); - output.WriteInt32(CMYKVPredictionMethod); - } - if (CMYKVHueThreshhold != 0D) { - output.WriteRawTag(169, 1); - output.WriteDouble(CMYKVHueThreshhold); - } - if (CMYKVK != 0D) { - output.WriteRawTag(177, 1); - output.WriteDouble(CMYKVK); - } - if (SimpleRGBPreviewFactor != 0D) { - output.WriteRawTag(185, 1); - output.WriteDouble(SimpleRGBPreviewFactor); - } - colorMeasurements_.WriteTo(output, _repeated_colorMeasurements_codec); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -594,22 +485,6 @@ namespace Tango.PMR.ColorLab { if (ConversionType != 0) { size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) ConversionType); } - if (CMYKVPredictionType != 0) { - size += 2 + pb::CodedOutputStream.ComputeInt32Size(CMYKVPredictionType); - } - if (CMYKVPredictionMethod != 0) { - size += 2 + pb::CodedOutputStream.ComputeInt32Size(CMYKVPredictionMethod); - } - if (CMYKVHueThreshhold != 0D) { - size += 2 + 8; - } - if (CMYKVK != 0D) { - size += 2 + 8; - } - if (SimpleRGBPreviewFactor != 0D) { - size += 2 + 8; - } - size += colorMeasurements_.CalculateSize(_repeated_colorMeasurements_codec); return size; } @@ -673,22 +548,6 @@ namespace Tango.PMR.ColorLab { if (other.ConversionType != 0) { ConversionType = other.ConversionType; } - if (other.CMYKVPredictionType != 0) { - CMYKVPredictionType = other.CMYKVPredictionType; - } - if (other.CMYKVPredictionMethod != 0) { - CMYKVPredictionMethod = other.CMYKVPredictionMethod; - } - if (other.CMYKVHueThreshhold != 0D) { - CMYKVHueThreshhold = other.CMYKVHueThreshhold; - } - if (other.CMYKVK != 0D) { - CMYKVK = other.CMYKVK; - } - if (other.SimpleRGBPreviewFactor != 0D) { - SimpleRGBPreviewFactor = other.SimpleRGBPreviewFactor; - } - colorMeasurements_.Add(other.colorMeasurements_); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -774,30 +633,6 @@ namespace Tango.PMR.ColorLab { conversionType_ = (global::Tango.PMR.ColorLab.ConversionType) input.ReadEnum(); break; } - case 152: { - CMYKVPredictionType = input.ReadInt32(); - break; - } - case 160: { - CMYKVPredictionMethod = input.ReadInt32(); - break; - } - case 169: { - CMYKVHueThreshhold = input.ReadDouble(); - break; - } - case 177: { - CMYKVK = input.ReadDouble(); - break; - } - case 185: { - SimpleRGBPreviewFactor = input.ReadDouble(); - break; - } - case 194: { - colorMeasurements_.AddEntriesFrom(input, _repeated_colorMeasurements_codec); - break; - } } } } diff --git a/Software/Visual_Studio/Tango.PMR/ColorLab/InputLiquid.cs b/Software/Visual_Studio/Tango.PMR/ColorLab/InputLiquid.cs index f45261825..c5e4e85d5 100644 --- a/Software/Visual_Studio/Tango.PMR/ColorLab/InputLiquid.cs +++ b/Software/Visual_Studio/Tango.PMR/ColorLab/InputLiquid.cs @@ -23,16 +23,17 @@ namespace Tango.PMR.ColorLab { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( "ChFJbnB1dExpcXVpZC5wcm90bxISVGFuZ28uUE1SLkNvbG9yTGFiGhBMaXF1", - "aWRUeXBlLnByb3RvGhVDYWxpYnJhdGlvbkRhdGEucHJvdG8isgEKC0lucHV0", + "aWRUeXBlLnByb3RvGhVDYWxpYnJhdGlvbkRhdGEucHJvdG8i1QEKC0lucHV0", "TGlxdWlkEjIKCkxpcXVpZFR5cGUYASABKA4yHi5UYW5nby5QTVIuQ29sb3JM", "YWIuTGlxdWlkVHlwZRI8Cg9DYWxpYnJhdGlvbkRhdGEYAiABKAsyIy5UYW5n", "by5QTVIuQ29sb3JMYWIuQ2FsaWJyYXRpb25EYXRhEiEKGU1heE5hbm9saXRl", - "clBlckNlbnRpbWV0ZXIYAyABKAESDgoGVm9sdW1lGAQgASgBQh4KHGNvbS50", - "d2luZS50YW5nby5wbXIuY29sb3JsYWJiBnByb3RvMw==")); + "clBlckNlbnRpbWV0ZXIYAyABKAESDgoGVm9sdW1lGAQgASgBEhIKCklzRXh0", + "cmFJbmsYBSABKAgSDQoFQ29sb3IYBiABKAVCHgocY29tLnR3aW5lLnRhbmdv", + "LnBtci5jb2xvcmxhYmIGcHJvdG8z")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Tango.PMR.ColorLab.LiquidTypeReflection.Descriptor, global::Tango.PMR.ColorLab.CalibrationDataReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { - new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.ColorLab.InputLiquid), global::Tango.PMR.ColorLab.InputLiquid.Parser, new[]{ "LiquidType", "CalibrationData", "MaxNanoliterPerCentimeter", "Volume" }, null, null, null) + new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.ColorLab.InputLiquid), global::Tango.PMR.ColorLab.InputLiquid.Parser, new[]{ "LiquidType", "CalibrationData", "MaxNanoliterPerCentimeter", "Volume", "IsExtraInk", "Color" }, null, null, null) })); } #endregion @@ -67,6 +68,8 @@ namespace Tango.PMR.ColorLab { CalibrationData = other.calibrationData_ != null ? other.CalibrationData.Clone() : null; maxNanoliterPerCentimeter_ = other.maxNanoliterPerCentimeter_; volume_ = other.volume_; + isExtraInk_ = other.isExtraInk_; + color_ = other.color_; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -118,6 +121,28 @@ namespace Tango.PMR.ColorLab { } } + /// <summary>Field number for the "IsExtraInk" field.</summary> + public const int IsExtraInkFieldNumber = 5; + private bool isExtraInk_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool IsExtraInk { + get { return isExtraInk_; } + set { + isExtraInk_ = value; + } + } + + /// <summary>Field number for the "Color" field.</summary> + public const int ColorFieldNumber = 6; + private int color_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int Color { + get { return color_; } + set { + color_ = value; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override bool Equals(object other) { return Equals(other as InputLiquid); @@ -135,6 +160,8 @@ namespace Tango.PMR.ColorLab { if (!object.Equals(CalibrationData, other.CalibrationData)) return false; if (MaxNanoliterPerCentimeter != other.MaxNanoliterPerCentimeter) return false; if (Volume != other.Volume) return false; + if (IsExtraInk != other.IsExtraInk) return false; + if (Color != other.Color) return false; return true; } @@ -145,6 +172,8 @@ namespace Tango.PMR.ColorLab { if (calibrationData_ != null) hash ^= CalibrationData.GetHashCode(); if (MaxNanoliterPerCentimeter != 0D) hash ^= MaxNanoliterPerCentimeter.GetHashCode(); if (Volume != 0D) hash ^= Volume.GetHashCode(); + if (IsExtraInk != false) hash ^= IsExtraInk.GetHashCode(); + if (Color != 0) hash ^= Color.GetHashCode(); return hash; } @@ -171,6 +200,14 @@ namespace Tango.PMR.ColorLab { output.WriteRawTag(33); output.WriteDouble(Volume); } + if (IsExtraInk != false) { + output.WriteRawTag(40); + output.WriteBool(IsExtraInk); + } + if (Color != 0) { + output.WriteRawTag(48); + output.WriteInt32(Color); + } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -188,6 +225,12 @@ namespace Tango.PMR.ColorLab { if (Volume != 0D) { size += 1 + 8; } + if (IsExtraInk != false) { + size += 1 + 1; + } + if (Color != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(Color); + } return size; } @@ -211,6 +254,12 @@ namespace Tango.PMR.ColorLab { if (other.Volume != 0D) { Volume = other.Volume; } + if (other.IsExtraInk != false) { + IsExtraInk = other.IsExtraInk; + } + if (other.Color != 0) { + Color = other.Color; + } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -240,6 +289,14 @@ namespace Tango.PMR.ColorLab { Volume = input.ReadDouble(); break; } + case 40: { + IsExtraInk = input.ReadBool(); + break; + } + case 48: { + Color = input.ReadInt32(); + break; + } } } } diff --git a/Software/Visual_Studio/Tango.PMR/ColorLab/LiquidType.cs b/Software/Visual_Studio/Tango.PMR/ColorLab/LiquidType.cs index 9bfbcd947..94d2f20b3 100644 --- a/Software/Visual_Studio/Tango.PMR/ColorLab/LiquidType.cs +++ b/Software/Visual_Studio/Tango.PMR/ColorLab/LiquidType.cs @@ -22,12 +22,14 @@ namespace Tango.PMR.ColorLab { static LiquidTypeReflection() { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( - "ChBMaXF1aWRUeXBlLnByb3RvEhJUYW5nby5QTVIuQ29sb3JMYWIqqAEKCkxp", + "ChBMaXF1aWRUeXBlLnByb3RvEhJUYW5nby5QTVIuQ29sb3JMYWIqhQIKCkxp", "cXVpZFR5cGUSCAoEQ3lhbhAAEgsKB01hZ2VudGEQARIKCgZZZWxsb3cQAhIJ", "CgVCbGFjaxADEhIKDlRyYW5zcGFyZW50SW5rEAQSDQoJTHVicmljYW50EAUS", "CwoHQ2xlYW5lchAGEg0KCUxpZ2h0Q3lhbhAHEhAKDExpZ2h0TWFnZW50YRAI", - "Eg8KC0xpZ2h0WWVsbG93EAkSCgoGVmlvbGV0EApCHgocY29tLnR3aW5lLnRh", - "bmdvLnBtci5jb2xvcmxhYmIGcHJvdG8z")); + "Eg8KC0xpZ2h0WWVsbG93EAkSCgoGVmlvbGV0EAoSCAoEQmx1ZRALEg0KCUxp", + "Z2h0Qmx1ZRAMEgoKBk9yYW5nZRANEg8KC0xpZ2h0T3JhbmdlEA4SCgoGUnVi", + "aW5lEA8SDwoLTGlnaHRSdWJpbmUQEBIICgROYXZ5EBFCHgocY29tLnR3aW5l", + "LnRhbmdvLnBtci5jb2xvcmxhYmIGcHJvdG8z")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Tango.PMR.ColorLab.LiquidType), }, null)); @@ -48,6 +50,13 @@ namespace Tango.PMR.ColorLab { [pbr::OriginalName("LightMagenta")] LightMagenta = 8, [pbr::OriginalName("LightYellow")] LightYellow = 9, [pbr::OriginalName("Violet")] Violet = 10, + [pbr::OriginalName("Blue")] Blue = 11, + [pbr::OriginalName("LightBlue")] LightBlue = 12, + [pbr::OriginalName("Orange")] Orange = 13, + [pbr::OriginalName("LightOrange")] LightOrange = 14, + [pbr::OriginalName("Rubine")] Rubine = 15, + [pbr::OriginalName("LightRubine")] LightRubine = 16, + [pbr::OriginalName("Navy")] Navy = 17, } #endregion diff --git a/Software/Visual_Studio/Tango.PMR/Printing/DispenserLiquidType.cs b/Software/Visual_Studio/Tango.PMR/Printing/DispenserLiquidType.cs index 7b03045ec..fb3b5820c 100644 --- a/Software/Visual_Studio/Tango.PMR/Printing/DispenserLiquidType.cs +++ b/Software/Visual_Studio/Tango.PMR/Printing/DispenserLiquidType.cs @@ -23,11 +23,13 @@ namespace Tango.PMR.Printing { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( "ChlEaXNwZW5zZXJMaXF1aWRUeXBlLnByb3RvEhJUYW5nby5QTVIuUHJpbnRp", - "bmcqsQEKE0Rpc3BlbnNlckxpcXVpZFR5cGUSCAoEQ3lhbhAAEgsKB01hZ2Vu", + "bmcqjgIKE0Rpc3BlbnNlckxpcXVpZFR5cGUSCAoEQ3lhbhAAEgsKB01hZ2Vu", "dGEQARIKCgZZZWxsb3cQAhIJCgVCbGFjaxADEhIKDlRyYW5zcGFyZW50SW5r", "EAQSDQoJTHVicmljYW50EAUSCwoHQ2xlYW5lchAGEg0KCUxpZ2h0Q3lhbhAH", "EhAKDExpZ2h0TWFnZW50YRAIEg8KC0xpZ2h0WWVsbG93EAkSCgoGVmlvbGV0", - "EApCHgocY29tLnR3aW5lLnRhbmdvLnBtci5wcmludGluZ2IGcHJvdG8z")); + "EAoSCAoEQmx1ZRALEg0KCUxpZ2h0Qmx1ZRAMEgoKBk9yYW5nZRANEg8KC0xp", + "Z2h0T3JhbmdlEA4SCgoGUnViaW5lEA8SDwoLTGlnaHRSdWJpbmUQEBIICgRO", + "YXZ5EBFCHgocY29tLnR3aW5lLnRhbmdvLnBtci5wcmludGluZ2IGcHJvdG8z")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Tango.PMR.Printing.DispenserLiquidType), }, null)); @@ -48,6 +50,13 @@ namespace Tango.PMR.Printing { [pbr::OriginalName("LightMagenta")] LightMagenta = 8, [pbr::OriginalName("LightYellow")] LightYellow = 9, [pbr::OriginalName("Violet")] Violet = 10, + [pbr::OriginalName("Blue")] Blue = 11, + [pbr::OriginalName("LightBlue")] LightBlue = 12, + [pbr::OriginalName("Orange")] Orange = 13, + [pbr::OriginalName("LightOrange")] LightOrange = 14, + [pbr::OriginalName("Rubine")] Rubine = 15, + [pbr::OriginalName("LightRubine")] LightRubine = 16, + [pbr::OriginalName("Navy")] Navy = 17, } #endregion diff --git a/Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj b/Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj index bd2c306f8..b5ea1877c 100644 --- a/Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj +++ b/Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj @@ -56,7 +56,6 @@ <Compile Include="ColorLab\CalibrationMeasurement.cs" /> <Compile Include="ColorLab\CalibrationOutput.cs" /> <Compile Include="ColorLab\CalibrationPoint.cs" /> - <Compile Include="ColorLab\ColorMeasurement.cs" /> <Compile Include="ColorLab\ColorSpace.cs" /> <Compile Include="ColorLab\ConversionInput.cs" /> <Compile Include="ColorLab\ConversionOutput.cs" /> @@ -528,7 +527,7 @@ </PropertyGroup> <ProjectExtensions> <VisualStudio> - <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" /> + <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" /> </VisualStudio> </ProjectExtensions> </Project>
\ No newline at end of file |
