aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio
diff options
context:
space:
mode:
authorRoy <Roy.mail.net@gmail.com>2023-04-02 17:25:06 +0300
committerRoy <Roy.mail.net@gmail.com>2023-04-02 17:25:06 +0300
commitad40f1bfc803e3a0a048b9c46e581ec5a8718493 (patch)
treea34fbb6e3b188577b29d9ed32e55420ef884d24c /Software/Visual_Studio
parentee27897f2d0fbc3a4468b0d8944e532bb9d4275e (diff)
parent9bf9b783cd75af8a7835231beb549a0440b1d7e1 (diff)
downloadTango-ad40f1bfc803e3a0a048b9c46e581ec5a8718493.tar.gz
Tango-ad40f1bfc803e3a0a048b9c46e581ec5a8718493.zip
Merge branch 'software' of https://twinetfs.visualstudio.com/Tango/_git/Tango into software
Diffstat (limited to 'Software/Visual_Studio')
-rw-r--r--Software/Visual_Studio/Advanced Installer Projects/Machine Studio Installer.aip6
-rw-r--r--Software/Visual_Studio/Advanced Installer Projects/PPC Installer-cache/cacheIndex.txtbin52 -> 52 bytes
-rw-r--r--Software/Visual_Studio/Advanced Installer Projects/PPC Installer.aip6
-rw-r--r--Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/PMR/ColorLab/RecommendedProcessTableInput.pb-c.c19
-rw-r--r--Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/PMR/ColorLab/RecommendedProcessTableInput.pb-c.h4
-rw-r--r--Software/Visual_Studio/ColorLib/Tango.ColorLib_v5/ColorConverter.cpp6
-rw-r--r--Software/Visual_Studio/ColorLib/Tango.ColorLib_v5/PMR/ColorLab/RecommendedProcessTableInput.pb-c.c19
-rw-r--r--Software/Visual_Studio/ColorLib/Tango.ColorLib_v5/PMR/ColorLab/RecommendedProcessTableInput.pb-c.h4
-rw-r--r--Software/Visual_Studio/ColorLib/Tango.ColorLib_v6/ColorConverter.cpp61
-rw-r--r--Software/Visual_Studio/ColorLib/Tango.ColorLib_v6/ColorConverter.h4
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Properties/AssemblyInfo.cs2
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Properties/AssemblyInfo.cs2
12 files changed, 99 insertions, 34 deletions
diff --git a/Software/Visual_Studio/Advanced Installer Projects/Machine Studio Installer.aip b/Software/Visual_Studio/Advanced Installer Projects/Machine Studio Installer.aip
index 722ef8b87..a6b29635e 100644
--- a/Software/Visual_Studio/Advanced Installer Projects/Machine Studio Installer.aip
+++ b/Software/Visual_Studio/Advanced Installer Projects/Machine Studio Installer.aip
@@ -16,10 +16,10 @@
<ROW Property="ARPCOMMENTS" Value="This installer database contains the logic and data required to install [|ProductName]." ValueLocId="*"/>
<ROW Property="ARPNOREPAIR" MultiBuildValue="DefaultBuild:1"/>
<ROW Property="Manufacturer" Value="Twine"/>
- <ROW Property="ProductCode" Value="1033:{41412C24-199A-4A24-91B6-919FB953D4AD} " Type="16"/>
+ <ROW Property="ProductCode" Value="1033:{1318D455-94A9-4989-8B7C-1CE84C640B62} " Type="16"/>
<ROW Property="ProductLanguage" Value="1033"/>
<ROW Property="ProductName" Value="Machine Studio"/>
- <ROW Property="ProductVersion" Value="4.9.7.0" Type="32"/>
+ <ROW Property="ProductVersion" Value="4.9.8.0" Type="32"/>
<ROW Property="SecureCustomProperties" Value="OLDPRODUCTS;AI_NEWERPRODUCTFOUND;AI_SETUPEXEPATH;SETUPEXEDIR"/>
<ROW Property="UpgradeCode" Value="{CBEE5CAE-7C5A-4280-98DE-AA98113764E4}"/>
<ROW Property="WindowsType9X" MultiBuildValue="DefaultBuild:Windows 9x/ME" ValueLocId="-"/>
@@ -845,7 +845,7 @@
<ROW Action="AI_DetectSoftware" Sequence="101"/>
</COMPONENT>
<COMPONENT cid="caphyon.advinst.msicomp.BuildComponent">
- <ROW BuildKey="DefaultBuild" BuildName="DefaultBuild" BuildOrder="1" BuildType="0" PackageFolder="..\Build\Installers\Machine Studio\Release" PackageFileName="Machine Studio Installer_v4.9.7" Languages="en" InstallationType="4" CabsLocation="1" PackageType="1" FilesInsideExe="true" ExtractionFolder="[AppDataFolder][|Manufacturer]\[|ProductName] [|ProductVersion]\install" ExtUI="true" UseLargeSchema="true" ExeName="Machine Studio Installer_v4.9.7"/>
+ <ROW BuildKey="DefaultBuild" BuildName="DefaultBuild" BuildOrder="1" BuildType="0" PackageFolder="..\Build\Installers\Machine Studio\Release" PackageFileName="Machine Studio Installer_v4.9.8" Languages="en" InstallationType="4" CabsLocation="1" PackageType="1" FilesInsideExe="true" ExtractionFolder="[AppDataFolder][|Manufacturer]\[|ProductName] [|ProductVersion]\install" ExtUI="true" UseLargeSchema="true" ExeName="Machine Studio Installer_v4.9.8"/>
</COMPONENT>
<COMPONENT cid="caphyon.advinst.msicomp.DictionaryComponent">
<ROW Path="&lt;AI_DICTS&gt;ui.ail"/>
diff --git a/Software/Visual_Studio/Advanced Installer Projects/PPC Installer-cache/cacheIndex.txt b/Software/Visual_Studio/Advanced Installer Projects/PPC Installer-cache/cacheIndex.txt
index 5fe5afe5a..9453b5c13 100644
--- a/Software/Visual_Studio/Advanced Installer Projects/PPC Installer-cache/cacheIndex.txt
+++ b/Software/Visual_Studio/Advanced Installer Projects/PPC Installer-cache/cacheIndex.txt
Binary files differ
diff --git a/Software/Visual_Studio/Advanced Installer Projects/PPC Installer.aip b/Software/Visual_Studio/Advanced Installer Projects/PPC Installer.aip
index 86e707b05..f0e168846 100644
--- a/Software/Visual_Studio/Advanced Installer Projects/PPC Installer.aip
+++ b/Software/Visual_Studio/Advanced Installer Projects/PPC Installer.aip
@@ -18,10 +18,10 @@
<ROW Property="ARPNOREPAIR" Value="1" MultiBuildValue="DefaultBuild:1"/>
<ROW Property="ARPSYSTEMCOMPONENT" Value="1"/>
<ROW Property="Manufacturer" Value="Twine"/>
- <ROW Property="ProductCode" Value="1033:{D7A53078-7444-4188-B9D8-C68F3A34D554} " Type="16"/>
+ <ROW Property="ProductCode" Value="1033:{78A13C1D-C7DF-428A-9F6C-C9C1FFFE0A5E} " Type="16"/>
<ROW Property="ProductLanguage" Value="1033"/>
<ROW Property="ProductName" Value="Tango"/>
- <ROW Property="ProductVersion" Value="1.8.10.0" Type="32"/>
+ <ROW Property="ProductVersion" Value="1.8.11.0" Type="32"/>
<ROW Property="SecureCustomProperties" Value="OLDPRODUCTS;AI_NEWERPRODUCTFOUND;AI_SETUPEXEPATH;SETUPEXEDIR"/>
<ROW Property="UpgradeCode" Value="{F8EAB8B4-FD57-45B7-8307-D52DF760273D}"/>
<ROW Property="WindowsType9X" MultiBuildValue="DefaultBuild:Windows 9x/ME" ValueLocId="-"/>
@@ -514,7 +514,7 @@
<ROW Action="AI_DetectSoftware" Sequence="101"/>
</COMPONENT>
<COMPONENT cid="caphyon.advinst.msicomp.BuildComponent">
- <ROW BuildKey="DefaultBuild" BuildName="DefaultBuild" BuildOrder="1" BuildType="0" PackageFolder="..\Build\Installers\PPC" PackageFileName="PPC Installer_v1.8.10" Languages="en" InstallationType="4" CabsLocation="1" PackageType="1" FilesInsideExe="true" ExtractionFolder="[AppDataFolder][|Manufacturer]\[|ProductName] [|ProductVersion]\install" ExtUI="true" UseLargeSchema="true" ExeName="PPC Installer_v1.8.10"/>
+ <ROW BuildKey="DefaultBuild" BuildName="DefaultBuild" BuildOrder="1" BuildType="0" PackageFolder="..\Build\Installers\PPC" PackageFileName="PPC Installer_v1.8.11" Languages="en" InstallationType="4" CabsLocation="1" PackageType="1" FilesInsideExe="true" ExtractionFolder="[AppDataFolder][|Manufacturer]\[|ProductName] [|ProductVersion]\install" ExtUI="true" UseLargeSchema="true" ExeName="PPC Installer_v1.8.11"/>
</COMPONENT>
<COMPONENT cid="caphyon.advinst.msicomp.DictionaryComponent">
<ROW Path="&lt;AI_DICTS&gt;ui.ail"/>
diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/PMR/ColorLab/RecommendedProcessTableInput.pb-c.c b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/PMR/ColorLab/RecommendedProcessTableInput.pb-c.c
index 39c139cda..90164c8b7 100644
--- a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/PMR/ColorLab/RecommendedProcessTableInput.pb-c.c
+++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/PMR/ColorLab/RecommendedProcessTableInput.pb-c.c
@@ -52,7 +52,7 @@ void recommended_process_table_input__free_unpacked
assert(message->base.descriptor == &recommended_process_table_input__descriptor);
protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
-static const ProtobufCFieldDescriptor recommended_process_table_input__field_descriptors[11] =
+static const ProtobufCFieldDescriptor recommended_process_table_input__field_descriptors[12] =
{
{
"ThreadL",
@@ -186,6 +186,18 @@ static const ProtobufCFieldDescriptor recommended_process_table_input__field_des
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
+ {
+ "VMax",
+ 12,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_DOUBLE,
+ offsetof(RecommendedProcessTableInput, has_vmax),
+ offsetof(RecommendedProcessTableInput, vmax),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
};
static const unsigned recommended_process_table_input__field_indices_by_name[] = {
3, /* field[3] = ForwardData */
@@ -199,11 +211,12 @@ static const unsigned recommended_process_table_input__field_indices_by_name[] =
0, /* field[0] = ThreadL */
7, /* field[7] = UseLightInks */
10, /* field[10] = UseLubricantTransform */
+ 11, /* field[11] = VMax */
};
static const ProtobufCIntRange recommended_process_table_input__number_ranges[1 + 1] =
{
{ 1, 0 },
- { 0, 11 }
+ { 0, 12 }
};
const ProtobufCMessageDescriptor recommended_process_table_input__descriptor =
{
@@ -213,7 +226,7 @@ const ProtobufCMessageDescriptor recommended_process_table_input__descriptor =
"RecommendedProcessTableInput",
"",
sizeof(RecommendedProcessTableInput),
- 11,
+ 12,
recommended_process_table_input__field_descriptors,
recommended_process_table_input__field_indices_by_name,
1, recommended_process_table_input__number_ranges,
diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/PMR/ColorLab/RecommendedProcessTableInput.pb-c.h b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/PMR/ColorLab/RecommendedProcessTableInput.pb-c.h
index e75ddd39e..df4a26da3 100644
--- a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/PMR/ColorLab/RecommendedProcessTableInput.pb-c.h
+++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/PMR/ColorLab/RecommendedProcessTableInput.pb-c.h
@@ -51,10 +51,12 @@ struct _RecommendedProcessTableInput
ProtobufCBinaryData lubdata;
protobuf_c_boolean has_uselubricanttransform;
protobuf_c_boolean uselubricanttransform;
+ protobuf_c_boolean has_vmax;
+ double vmax;
};
#define RECOMMENDED_PROCESS_TABLE_INPUT__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&recommended_process_table_input__descriptor) \
- , 0, 0, 0, 0, 0, 0, 0, {0,NULL}, 0,NULL, 0,NULL, 0,NULL, 0, 0, 0, {0,NULL}, 0, {0,NULL}, 0, 0 }
+ , 0, 0, 0, 0, 0, 0, 0, {0,NULL}, 0,NULL, 0,NULL, 0,NULL, 0, 0, 0, {0,NULL}, 0, {0,NULL}, 0, 0, 0, 0 }
/* RecommendedProcessTableInput methods */
diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v5/ColorConverter.cpp b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v5/ColorConverter.cpp
index 58e0237aa..e10f7c5f4 100644
--- a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v5/ColorConverter.cpp
+++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v5/ColorConverter.cpp
@@ -4687,6 +4687,7 @@ void Tango::ColorLib::ColorConverter::SplitVolume(VectorXd Volume, VectorXd &Vol
double PrevLow = low;
while (resplit == true)
{
+ TotalVolume = 0.0;
for (int i = 0; i < m_TotalNumberofInks; ++i)
TotalVolume += VolumeLI(i);
if (TotalVolume > UpperLimit)
@@ -4827,6 +4828,11 @@ size_t Tango::ColorLib::ColorConverter::GetRecommendedProcessParameters(uint8_t
m_UseLightInks = Input->uselightinks;
if ((numLightInks <= 0) & (m_UseLightInks == true))
throw std::exception("Light Inks not defined");
+ if (!Input->has_vmax)
+ throw std::exception("Light Inks Threshold not defined");
+ m_LightInksThr = Input->vmax;
+ m_LowVolumeThreshold = m_LightInksThr / DilutionFactor;
+ m_LowVolHalf = m_LowVolumeThreshold / 2.0;
int expected_liquids = numofInks;
m_TotalNumberofInks = numofInks;
diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v5/PMR/ColorLab/RecommendedProcessTableInput.pb-c.c b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v5/PMR/ColorLab/RecommendedProcessTableInput.pb-c.c
index 39c139cda..90164c8b7 100644
--- a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v5/PMR/ColorLab/RecommendedProcessTableInput.pb-c.c
+++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v5/PMR/ColorLab/RecommendedProcessTableInput.pb-c.c
@@ -52,7 +52,7 @@ void recommended_process_table_input__free_unpacked
assert(message->base.descriptor == &recommended_process_table_input__descriptor);
protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
-static const ProtobufCFieldDescriptor recommended_process_table_input__field_descriptors[11] =
+static const ProtobufCFieldDescriptor recommended_process_table_input__field_descriptors[12] =
{
{
"ThreadL",
@@ -186,6 +186,18 @@ static const ProtobufCFieldDescriptor recommended_process_table_input__field_des
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
+ {
+ "VMax",
+ 12,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_DOUBLE,
+ offsetof(RecommendedProcessTableInput, has_vmax),
+ offsetof(RecommendedProcessTableInput, vmax),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
};
static const unsigned recommended_process_table_input__field_indices_by_name[] = {
3, /* field[3] = ForwardData */
@@ -199,11 +211,12 @@ static const unsigned recommended_process_table_input__field_indices_by_name[] =
0, /* field[0] = ThreadL */
7, /* field[7] = UseLightInks */
10, /* field[10] = UseLubricantTransform */
+ 11, /* field[11] = VMax */
};
static const ProtobufCIntRange recommended_process_table_input__number_ranges[1 + 1] =
{
{ 1, 0 },
- { 0, 11 }
+ { 0, 12 }
};
const ProtobufCMessageDescriptor recommended_process_table_input__descriptor =
{
@@ -213,7 +226,7 @@ const ProtobufCMessageDescriptor recommended_process_table_input__descriptor =
"RecommendedProcessTableInput",
"",
sizeof(RecommendedProcessTableInput),
- 11,
+ 12,
recommended_process_table_input__field_descriptors,
recommended_process_table_input__field_indices_by_name,
1, recommended_process_table_input__number_ranges,
diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v5/PMR/ColorLab/RecommendedProcessTableInput.pb-c.h b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v5/PMR/ColorLab/RecommendedProcessTableInput.pb-c.h
index e75ddd39e..df4a26da3 100644
--- a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v5/PMR/ColorLab/RecommendedProcessTableInput.pb-c.h
+++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v5/PMR/ColorLab/RecommendedProcessTableInput.pb-c.h
@@ -51,10 +51,12 @@ struct _RecommendedProcessTableInput
ProtobufCBinaryData lubdata;
protobuf_c_boolean has_uselubricanttransform;
protobuf_c_boolean uselubricanttransform;
+ protobuf_c_boolean has_vmax;
+ double vmax;
};
#define RECOMMENDED_PROCESS_TABLE_INPUT__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&recommended_process_table_input__descriptor) \
- , 0, 0, 0, 0, 0, 0, 0, {0,NULL}, 0,NULL, 0,NULL, 0,NULL, 0, 0, 0, {0,NULL}, 0, {0,NULL}, 0, 0 }
+ , 0, 0, 0, 0, 0, 0, 0, {0,NULL}, 0,NULL, 0,NULL, 0,NULL, 0, 0, 0, {0,NULL}, 0, {0,NULL}, 0, 0, 0, 0 }
/* RecommendedProcessTableInput methods */
diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v6/ColorConverter.cpp b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v6/ColorConverter.cpp
index 70db11e2e..0ecf4df6d 100644
--- a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v6/ColorConverter.cpp
+++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v6/ColorConverter.cpp
@@ -395,7 +395,7 @@ void Tango::ColorLib::ColorConverter::ProcessHiveNeighbors(ConversionInput *conv
VectorXd VolumeLI(m_TotalNumberofInks);
if (m_UseLightInks)
{
- SplitVolume(Vol, VolumeLI, GamutRegion[iHive]);
+ SplitVolume(Vol, VolumeLI, GamutRegion[iHive], COLOR_SPACE__LAB);
}
else
{
@@ -416,7 +416,7 @@ void Tango::ColorLib::ColorConverter::ProcessHiveNeighbors(ConversionInput *conv
VectorXd VolumeLI_s(m_TotalNumberofInks);
if (m_UseLightInks)
{
- SplitVolume(Volume, VolumeLI_s, InGamutRegion);
+ SplitVolume(Volume, VolumeLI_s, InGamutRegion, COLOR_SPACE__LAB);
}
else
{
@@ -2034,7 +2034,7 @@ size_t Tango::ColorLib::ColorConverter::Convert(uint8_t * input_buffer, size_t i
//Split Volume into inks and Light Inks
if (m_UseLightInks)
{
- SplitVolume(Volume, VolumeLI, GamutRegion);
+ SplitVolume(Volume, VolumeLI, GamutRegion, colorspace);
}
else
{
@@ -2068,7 +2068,7 @@ size_t Tango::ColorLib::ColorConverter::Convert(uint8_t * input_buffer, size_t i
MatrixXd RGBHive(MatHive, 3);
VectorXd RGBHive1(3);
VectorXd LabHive1(3);
- VectorXd VolumeHive1(m_TotalNumberofInks);
+ VectorXd VolumeHive1(m_TotalNumberofInks);
MatrixXd VolumeHive(MatHive, m_TotalNumberofInks);
MatrixXd LabHive(MatHive, 3);
@@ -4656,7 +4656,7 @@ void Tango::ColorLib::ColorConverter::GetClosestInk(VectorXd Volume, int &GamutR
double TotalVolume = 0.0;
for (int i = 0; i < m_nInks; ++i)
TotalVolume += Volume(i);
- DefineSplitLimits(low, high, TotalVolume);
+ DefineSplitLimits(low, high, TotalVolume, COLOR_SPACE__LAB);
for (int i = 0; i < m_nInks-1; ++i)
{
if (Volume(i) > 1.e-04)
@@ -4850,7 +4850,7 @@ void Tango::ColorLib::ColorConverter::ConvertVolumeToLabRel(VectorXd &Volume, Ve
}
-void Tango::ColorLib::ColorConverter::SplitVolume(VectorXd Volume, VectorXd &VolumeLI, int &GamutRegion)
+void Tango::ColorLib::ColorConverter::SplitVolume(VectorXd Volume, VectorXd &VolumeLI, int &GamutRegion, ColorSpace colorSpace)
{
//mark split candidates
int ind = 0;
@@ -4872,7 +4872,7 @@ void Tango::ColorLib::ColorConverter::SplitVolume(VectorXd Volume, VectorXd &Vol
indGR = i;
}
//Set Limits
- DefineSplitLimits(low, high, InitTotalVolume);
+ DefineSplitLimits(low, high, InitTotalVolume, colorSpace);
//Verify there are no inks below the split limits
//This might happen because of a previous rounding step that changes the low limit by a small amount
for (int i = 0; i < m_nInks; ++i)
@@ -4899,6 +4899,21 @@ void Tango::ColorLib::ColorConverter::SplitVolume(VectorXd Volume, VectorXd &Vol
double UpperLimit = m_CurrentProcessRangesMax[m_nProcessRanges - 1];
double TotalVolume = 0.0;
+ // Oren 09/03
+ // split this based on color space. in Volume\Catalog i.e. explicit CMYK we don't round for uniformity based on TotalVol.
+ bool dummy = true;
+ if (colorSpace == COLOR_SPACE__Volume || colorSpace == COLOR_SPACE__Catalog) {
+ for (int i = 0; i < m_TotalNumberofInks; ++i)
+ TotalVolume += VolumeLI(i);
+ if (TotalVolume > UpperLimit)
+ {
+ //Check if only some of the inks can be brought back to non-light inks
+ GetBackLightInks(VolumeLI, GamutRegion, VolumeLI, dummy, GamutRegion);
+ }
+ NLcmtoPercentage(VolumeLI, VolumeLI);
+ return;
+ }
+
bool resplit = true;
VectorXd PrevVolume(m_TotalNumberofInks);
VectorXd VolumeNoLI(m_nInks);
@@ -4921,7 +4936,7 @@ void Tango::ColorLib::ColorConverter::SplitVolume(VectorXd Volume, VectorXd &Vol
}
else if (TotalVolume > InitTotalVolume)
{
- DefineSplitLimits(low, high, TotalVolume);
+ DefineSplitLimits(low, high, TotalVolume, colorSpace);
//recalculate Gamut Region
indGR = 0;
findGamutRegion(GamutRegion, TotalVolume);
@@ -4998,7 +5013,7 @@ void Tango::ColorLib::ColorConverter::GetBackLightInks(VectorXd &VolumeLI, int &
numLgtInks++;
}
}
- if (numLgtInks > 1)
+ if (numLgtInks > 0)
{
sortPairs(LgtInksIndex, LightVol, numLgtInks); //Light inks are sorted in ascending order
//revert and check
@@ -5062,8 +5077,15 @@ void Tango::ColorLib::ColorConverter::sortPairs(int *LgtInksIndex, double*LightV
}
-void Tango::ColorLib::ColorConverter::DefineSplitLimits(double &low, double &high, double InitTotalVolume)
+void Tango::ColorLib::ColorConverter::DefineSplitLimits(double &low, double &high, double InitTotalVolume, ColorSpace colorSpace)
{
+ // in case of explicit CMYK volume input, low and high are derived of min ink uptake
+ // essentially we don't round for uniformity between (LowVolThr * minInkUptake) and (LowVolThr * TotalVol)
+ if (colorSpace == COLOR_SPACE__Volume || colorSpace == COLOR_SPACE__Catalog) {
+ low = m_LowVolumeThreshold * m_CurrentProcessRangesMin[0] / 100.0;
+ high = m_LightInksThr * m_CurrentProcessRangesMin[0] / 100.0;
+ return;
+ }
//Set Limits
//1st Region
double lim1 = 0;
@@ -5134,7 +5156,12 @@ size_t Tango::ColorLib::ColorConverter::GetRecommendedProcessParameters(uint8_t
m_UseLightInks = Input->uselightinks;
if ((numLightInks <= 0) & (m_UseLightInks == true))
throw std::exception("Light Inks not defined");
-
+ if (!Input->has_vmax)
+ throw std::exception("Light Inks Threshold not defined");
+ m_LightInksThr = Input->vmax;
+ m_LowVolumeThreshold = m_LightInksThr / DilutionFactor;
+ m_LowVolHalf = m_LowVolumeThreshold / 2.0;
+
int expected_liquids = numofInks;
m_TotalNumberofInks = numofInks;
int original_input_liquids_count = Input->n_inputliquids;
@@ -5363,7 +5390,7 @@ size_t Tango::ColorLib::ColorConverter::GetRecommendedProcessParameters(uint8_t
if (Input->uselightinks)
{ //Convert to light inks
GamutRegion[istops] = GetGamutRegion(Volume_nlcm, m_CurrentProcessRangesMax);//Volume is in [nl/cm]
- SplitVolume(Volume, VolumeLi, GamutRegion[istops]); //VolumeLi is in [%]
+ SplitVolume(Volume, VolumeLi, GamutRegion[istops], colorspace); //VolumeLi is in [%]
}
else
{
@@ -5409,7 +5436,7 @@ size_t Tango::ColorLib::ColorConverter::GetRecommendedProcessParameters(uint8_t
if (Input->uselightinks)
{ //Convert to light inks
GamutRegion[istops] = GetGamutRegion(Volume_nlcm, m_CurrentProcessRangesMax);//Volume_nlcm is in [nl/cm]
- SplitVolume(Volume, VolumeLi, GamutRegion[istops]); //VolumeLi is in [%]
+ SplitVolume(Volume, VolumeLi, GamutRegion[istops], colorspace); //VolumeLi is in [%]
}
else
{
@@ -5460,7 +5487,7 @@ size_t Tango::ColorLib::ColorConverter::GetRecommendedProcessParameters(uint8_t
}
if (Input->uselightinks)
{ //Convert to light inks
- SplitVolume(Volume, VolumeLi, GamutRegion[istops]);
+ SplitVolume(Volume, VolumeLi, GamutRegion[istops], colorspace);
}
}
if (istops == 0 || processparameterstableindex < GamutRegion[istops])
@@ -5603,8 +5630,10 @@ size_t Tango::ColorLib::ColorConverter::CheckOutOfGamut(uint8_t * input_buffer,
readColorTransformations(Input);
m_Has_GBD = Input->has_gbddata;
- if (m_Has_GBD)
+ if (m_Has_GBD) {
readThreadGamut(Input);
+ m_colortable->SetGBD(m_ThreadGBD->m_GBD);
+ }
// OrenLub
m_has_lubdata = Input->has_lubdata;
@@ -5903,7 +5932,7 @@ void Tango::ColorLib::ColorConverter::DirectInversionCalc(double *LabIn, VectorX
Vol_nlcm[k][i] = Vol[k][i] * m_currentMaxNLPerCM(i) / 100.0;
TotalVolume[k] += Vol_nlcm[k][i];
}
- DefineSplitLimits(low[k], high[k], TotalVolume[k]);
+ DefineSplitLimits(low[k], high[k], TotalVolume[k], COLOR_SPACE__LAB);
for (i = 0; i < npars - 1; ++i)
FSInd = FSInd & ((Vol_nlcm[k][i] < 0.01) | (Vol_nlcm[k][i] > low[k]));
FSInd = FSInd & (Vol_nlcm[k][npars - 1] < 0.01) | (Vol_nlcm[k][npars - 1] > high[k]);
diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v6/ColorConverter.h b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v6/ColorConverter.h
index 337513677..f1f3d052a 100644
--- a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v6/ColorConverter.h
+++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v6/ColorConverter.h
@@ -229,8 +229,8 @@ namespace Tango
void GetClosestInk(VectorXd Volume, int &GamutRegion, VectorXd &BestVolume, int CTUnits);
bool CheckMonotonicity(CalibrationData *calibdata);
void ConfineVolumes(VectorXd &Volume);
- void SplitVolume(VectorXd Volume, VectorXd &VolumeLI, int &GamutRegion);
- void DefineSplitLimits(double &low, double &high, double InitTotalVolume);
+ void SplitVolume(VectorXd Volume, VectorXd &VolumeLI, int &GamutRegion, ColorSpace);
+ void DefineSplitLimits(double &low, double &high, double InitTotalVolume, ColorSpace);
void findGamutRegion(int &GamutRegion, double TotalVolume);
void SetCalibMode();
void SetCalibFactorization();
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Properties/AssemblyInfo.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Properties/AssemblyInfo.cs
index 2ac73959f..9dc435c9c 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Properties/AssemblyInfo.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Properties/AssemblyInfo.cs
@@ -4,5 +4,5 @@ using System.Runtime.InteropServices;
[assembly: System.Windows.ThemeInfo(System.Windows.ResourceDictionaryLocation.None, System.Windows.ResourceDictionaryLocation.SourceAssembly)]
[assembly: AssemblyTitle("Tango - Machine Studio")]
-[assembly: AssemblyVersion("4.9.7.0")]
+[assembly: AssemblyVersion("4.9.8.0")]
[assembly: ComVisible(false)] \ No newline at end of file
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Properties/AssemblyInfo.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Properties/AssemblyInfo.cs
index a6e3465b2..f5aecf2fd 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Properties/AssemblyInfo.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Properties/AssemblyInfo.cs
@@ -8,4 +8,4 @@ using System.Windows;
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Tango PPC Application")]
-[assembly: AssemblyVersion("1.8.10.0")]
+[assembly: AssemblyVersion("1.8.11.0")]