Integration 2.3b1 :

- corretta gestione Outline, Aperture e FreeContour chiusi con archi a cavallo dell'inizio.
This commit is contained in:
Dario Sassi
2021-02-18 06:58:20 +00:00
parent b5b799c70f
commit 123ff4c356
2 changed files with 35 additions and 9 deletions
+32 -6
View File
@@ -175,9 +175,22 @@ namespace ib.essetre.integration.egaltech
// Divido i dati in record punti
string[] arrParam = singleFeature.sag1.Split(new string[] { "POLY([", "),", ")]" }, StringSplitOptions.RemoveEmptyEntries);
// Se curva chiusa, copio il primo punto nell'ultimo elemento
if ( arrParam[arrParam.Length - 1] == ",'P','C')")
arrParam[arrParam.Length - 1] = arrParam[0];
// Se curva chiusa
if ( arrParam[arrParam.Length - 1] == ",'P','C')") {
// se primo punto è a metà di arco, copio l'ultimo punto inserendolo prima del primo
if ( arrParam[0].StartsWith( "A")) {
// elimino l'ultimo elemento
Array.Resize( ref arrParam, arrParam.Length - 1) ;
// copio l'ultimo elemento inserendolo prima del primo (tramite doppia inversione)
Array.Reverse(arrParam);
Array.Resize( ref arrParam, arrParam.Length + 1) ;
arrParam[arrParam.Length - 1] = arrParam[0] ;
Array.Reverse(arrParam);
}
// altrimenti copio il primo punto nell'ultimo elemento
else
arrParam[arrParam.Length - 1] = arrParam[0] ;
}
// altrimenti aperta, quindi elimino l'ultimo elemento
else
Array.Resize( ref arrParam, arrParam.Length - 1);
@@ -275,9 +288,22 @@ namespace ib.essetre.integration.egaltech
// Divido i dati in record punti
string[] arrParam = singleFeature.sag1.Split( new string[] { "POLY([", "),", ")]" }, StringSplitOptions.RemoveEmptyEntries) ;
// Se curva chiusa, copio il primo punto nell'ultimo elemento
if ( arrParam[arrParam.Length-1] == ",'P','C')")
arrParam[arrParam.Length-1] = arrParam[0] ;
// Se curva chiusa
if ( arrParam[arrParam.Length - 1] == ",'P','C')") {
// se primo punto è a metà di arco, copio l'ultimo punto inserendolo prima del primo
if ( arrParam[0].StartsWith( "A")) {
// elimino l'ultimo elemento
Array.Resize( ref arrParam, arrParam.Length - 1) ;
// copio l'ultimo elemento inserendolo prima del primo (tramite doppia inversione)
Array.Reverse(arrParam);
Array.Resize( ref arrParam, arrParam.Length + 1) ;
arrParam[arrParam.Length - 1] = arrParam[0] ;
Array.Reverse(arrParam);
}
// altrimenti copio il primo punto nell'ultimo elemento
else
arrParam[arrParam.Length - 1] = arrParam[0] ;
}
// altrimenti aperta, quindi elimino l'ultimo elemento
else
Array.Resize( ref arrParam, arrParam.Length-1) ;
@@ -14,7 +14,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("EgalTech s.r.l.")]
[assembly: AssemblyProduct("IntegrationEgaltech")]
[assembly: AssemblyCopyright("Copyright © 2018-2020 by EgalTech s.r.l.")]
[assembly: AssemblyCopyright("Copyright © 2018-2021 by EgalTech s.r.l.")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
@@ -36,5 +36,5 @@ using System.Runtime.InteropServices;
// È possibile specificare tutti i valori oppure impostare valori predefiniti per i numeri relativi alla revisione e alla build
// usando l'asterisco '*' come illustrato di seguito:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("2.2.12.1")]
[assembly: AssemblyFileVersion("2.2.12.1")]
[assembly: AssemblyVersion("2.3.2.1")]
[assembly: AssemblyFileVersion("2.3.2.1")]