Include :
- migliorati controlli validità dei triangoli (tutti e tre i lati devono avere lunghezze significative).
This commit is contained in:
+8
-3
@@ -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 ;
|
||||
|
||||
Reference in New Issue
Block a user