Include :

- migliorati controlli validità dei triangoli (tutti e tre i lati devono avere lunghezze significative).
This commit is contained in:
Dario Sassi
2019-12-17 16:46:05 +00:00
parent de5fdc0ece
commit e6e076b69d
+8 -3
View File
@@ -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 ;