EgtGeomKernel 2.2a5 :

- miglioria a Collinear di Triangulate.
This commit is contained in:
Dario Sassi
2020-01-28 18:27:25 +00:00
parent 7d1f87e901
commit ece85acc2d
3 changed files with 6 additions and 2 deletions
BIN
View File
Binary file not shown.
+5 -1
View File
@@ -648,7 +648,11 @@ Triangulate::SameDirection( const Point3d& ptA, const Point3d& ptB, const Point3
bool
Triangulate::Collinear( const Point3d& ptA, const Point3d& ptB, const Point3d& ptC, double dToler)
{
return ( abs( TwoArea( ptA, ptB, ptC)) < dToler * dToler) ;
double dSqDistA = SquareDist( ptA, ptB) ;
double dSqDistB = SquareDist( ptB, ptC) ;
double dSqDistC = SquareDist( ptC, ptA) ;
double dTwoArea = abs( TwoArea( ptA, ptB, ptC)) ;
return ( dTwoArea * dTwoArea < dToler * dToler * max( { dSqDistA, dSqDistB, dSqDistC})) ;
}
//----------------------------------------------------------------------------
+1 -1
View File
@@ -36,7 +36,7 @@ class Triangulate
double TwoArea( const Point3d& ptA, const Point3d& ptB, const Point3d& ptC) ;
bool AreSamePoint( const Point3d& ptA, const Point3d& ptB, double dToler = EPS_SMALL) ;
bool SameDirection( const Point3d& ptA, const Point3d& ptB, const Point3d& ptC) ;
bool Collinear( const Point3d& ptA, const Point3d& ptB, const Point3d& ptC, double dToler = 0.1 * EPS_SMALL) ;
bool Collinear( const Point3d& ptA, const Point3d& ptB, const Point3d& ptC, double dToler = EPS_TRIA_H) ;
bool TriangleIsCCW( const Point3d& ptA, const Point3d& ptB, const Point3d& ptC, double dToler = 0.1 * EPS_SMALL) ;
bool TestIntersection( const Point3d& ptA1, const Point3d& ptA2, const Point3d& ptB1, const Point3d& ptB2) ;
bool TestPointInTriangle( const Point3d& ptP, const Point3d& ptA, const Point3d& ptB, const Point3d& ptC) ;