From 123ff4c356ae14df3c3394fbbf953daa0c03dc4e Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Thu, 18 Feb 2021 06:58:20 +0000 Subject: [PATCH] Integration 2.3b1 : - corretta gestione Outline, Aperture e FreeContour chiusi con archi a cavallo dell'inizio. --- IntegrationEgaltech/BTL.cs | 38 ++++++++++++++++--- .../Properties/AssemblyInfo.cs | 6 +-- 2 files changed, 35 insertions(+), 9 deletions(-) diff --git a/IntegrationEgaltech/BTL.cs b/IntegrationEgaltech/BTL.cs index cf1f66a..aa617a3 100644 --- a/IntegrationEgaltech/BTL.cs +++ b/IntegrationEgaltech/BTL.cs @@ -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) ; diff --git a/IntegrationEgaltech/Properties/AssemblyInfo.cs b/IntegrationEgaltech/Properties/AssemblyInfo.cs index 55d5c0d..66a7827 100644 --- a/IntegrationEgaltech/Properties/AssemblyInfo.cs +++ b/IntegrationEgaltech/Properties/AssemblyInfo.cs @@ -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")]