From e6e076b69d1d5fc433ff80b119c551a0fd3ab36c Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Tue, 17 Dec 2019 16:46:05 +0000 Subject: [PATCH] =?UTF-8?q?Include=20:=20-=20migliorati=20controlli=20vali?= =?UTF-8?q?dit=C3=A0=20dei=20triangoli=20(tutti=20e=20tre=20i=20lati=20dev?= =?UTF-8?q?ono=20avere=20lunghezze=20significative).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- EGkTriangle3d.h | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/EGkTriangle3d.h b/EGkTriangle3d.h index 5e76ded..bdb6829 100644 --- a/EGkTriangle3d.h +++ b/EGkTriangle3d.h @@ -1,7 +1,7 @@ //---------------------------------------------------------------------------- // EgalTech 2014-2019 //---------------------------------------------------------------------------- -// File : EGkTria3d.h Data : 06.06.19 Versione : 2.1f1 +// File : EGkTria3d.h Data : 17.12.19 Versione : 2.1l5 // Contenuto : Dichiarazione classe triangolo Triangle3d. // // @@ -10,6 +10,7 @@ // 07.02.15 DS Agg. GetArea e GetAspectRatio. // 15.01.18 LM Agg. flag. // 06.06.19 LM Agg. IsPointInsideTriangle. +// 17.12.19 DS Agg. controllo lunghezza di tutti e tre i lati. // //---------------------------------------------------------------------------- @@ -49,7 +50,9 @@ class Triangle3d return true ; } bool Validate( bool bOverwrite = false) - { if ( AreSamePointApprox( m_ptP[0], m_ptP[1]) || AreSamePointApprox( m_ptP[0], m_ptP[2])) + { if ( AreSamePointApprox( m_ptP[0], m_ptP[1]) || + AreSamePointApprox( m_ptP[1], m_ptP[2]) || + AreSamePointApprox( m_ptP[2], m_ptP[0])) return false ; Vector3d vtV1 = m_ptP[1] - m_ptP[0] ; Vector3d vtV2 = m_ptP[2] - m_ptP[1] ; @@ -67,7 +70,9 @@ class Triangle3d return AreSameVectorApprox( vtN, m_vtN) ; } bool IsValid( void) const - { if ( AreSamePointApprox( m_ptP[0], m_ptP[1]) || AreSamePointApprox( m_ptP[0], m_ptP[2])) + { if ( AreSamePointApprox( m_ptP[0], m_ptP[1]) || + AreSamePointApprox( m_ptP[1], m_ptP[2]) || + AreSamePointApprox( m_ptP[2], m_ptP[0])) return false ; if ( m_vtN.IsSmall()) return false ;