EgtGeomKernel 2.3g1 :
- versione x64 compilata con Clang-cl/LLVM - modifiche varie per eliminare warning più gravi di questo compilatore.
This commit is contained in:
+17
-16
@@ -983,8 +983,6 @@ VolZmap::AvoidSimpleCylinder( const Frame3d& frCyl, double dR, double dH, bool b
|
||||
// Ciclo sui dexel.
|
||||
for ( int i = nStI ; i <= nEnI ; ++ i) {
|
||||
for ( int j = nStJ ; j <= nEnJ ; ++ j) {
|
||||
if ( nMap == 2 && j == 75)
|
||||
int a = 0 ;
|
||||
int nPos = j * m_nNx[nMap] + i ;
|
||||
int nSize = int( m_Values[nMap][nPos].size()) ;
|
||||
if ( nSize == 0)
|
||||
@@ -1519,71 +1517,72 @@ RectPrismoidSegmentCollision( const Frame3d& frPrismoid, double dLenghtBaseX, do
|
||||
|
||||
// Se c'è collisione con almeno un triangolo delle facce ho finito
|
||||
Triangle3d trFaceTria1, trFaceTria2 ;
|
||||
Point3d ptInt, ptInt2 ;
|
||||
// Faccia base
|
||||
trFaceTria1.Set( Point3d( - dHalfBaseX, - dHalfBaseY, 0.),
|
||||
Point3d( - dHalfBaseX, dHalfBaseY, 0.),
|
||||
Point3d( dHalfBaseX, dHalfBaseY, 0.)) ;
|
||||
if ( trFaceTria1.Validate() && IntersLineTria( ptMySt, ptMyEn, trFaceTria1, Point3d(), Point3d()) != ILTT_NO)
|
||||
if ( trFaceTria1.Validate() && IntersLineTria( ptMySt, ptMyEn, trFaceTria1, ptInt, ptInt2) != ILTT_NO)
|
||||
return true ;
|
||||
trFaceTria2.Set( Point3d( - dHalfBaseX, - dHalfBaseY, 0.),
|
||||
Point3d( dHalfBaseX, dHalfBaseY, 0.),
|
||||
Point3d( dHalfBaseX, - dHalfBaseY, 0.)) ;
|
||||
if ( trFaceTria2.Validate() && IntersLineTria( ptMySt, ptMyEn, trFaceTria2, Point3d(), Point3d()) != ILTT_NO)
|
||||
if ( trFaceTria2.Validate() && IntersLineTria( ptMySt, ptMyEn, trFaceTria2, ptInt, ptInt2) != ILTT_NO)
|
||||
return true ;
|
||||
// Faccia top
|
||||
trFaceTria1.Set( Point3d( - dHalfTopX, - dHalfTopY, dHeight),
|
||||
Point3d( dHalfTopX, dHalfTopY, dHeight),
|
||||
Point3d( - dHalfTopX, dHalfTopY, dHeight)) ;
|
||||
if ( trFaceTria1.Validate() && IntersLineTria( ptMySt, ptMyEn, trFaceTria1, Point3d(), Point3d()) != ILTT_NO)
|
||||
if ( trFaceTria1.Validate() && IntersLineTria( ptMySt, ptMyEn, trFaceTria1, ptInt, ptInt2) != ILTT_NO)
|
||||
return true ;
|
||||
trFaceTria2.Set( Point3d( - dHalfTopX, - dHalfTopY, dHeight),
|
||||
Point3d( dHalfTopX, - dHalfTopY, dHeight),
|
||||
Point3d( dHalfTopX, dHalfTopY, dHeight)) ;
|
||||
if ( trFaceTria2.Validate() && IntersLineTria( ptMySt, ptMyEn, trFaceTria2, Point3d(), Point3d()) != ILTT_NO)
|
||||
if ( trFaceTria2.Validate() && IntersLineTria( ptMySt, ptMyEn, trFaceTria2, ptInt, ptInt2) != ILTT_NO)
|
||||
return true ;
|
||||
// Faccia laterale 1
|
||||
trFaceTria1.Set( Point3d( - dHalfBaseX, - dHalfBaseY, 0.),
|
||||
Point3d( dHalfTopX , - dHalfTopY , dHeight),
|
||||
Point3d( - dHalfTopX , - dHalfTopY , dHeight)) ;
|
||||
if ( trFaceTria1.Validate() && IntersLineTria( ptMySt, ptMyEn, trFaceTria1, Point3d(), Point3d()) != ILTT_NO)
|
||||
if ( trFaceTria1.Validate() && IntersLineTria( ptMySt, ptMyEn, trFaceTria1, ptInt, ptInt2) != ILTT_NO)
|
||||
return true ;
|
||||
trFaceTria2.Set( Point3d( - dHalfBaseX, - dHalfBaseY, 0.),
|
||||
Point3d( dHalfBaseX, - dHalfBaseY, 0.),
|
||||
Point3d( dHalfTopX, - dHalfTopY , dHeight)) ;
|
||||
if ( trFaceTria2.Validate() && IntersLineTria( ptMySt, ptMyEn, trFaceTria2, Point3d(), Point3d()) != ILTT_NO)
|
||||
if ( trFaceTria2.Validate() && IntersLineTria( ptMySt, ptMyEn, trFaceTria2, ptInt, ptInt2) != ILTT_NO)
|
||||
return true ;
|
||||
// Faccia laterale 2
|
||||
trFaceTria1.Set( Point3d( dHalfBaseX, - dHalfBaseY, 0.),
|
||||
Point3d( dHalfTopX , dHalfTopY , dHeight),
|
||||
Point3d( dHalfTopX , - dHalfTopY , dHeight)) ;
|
||||
if ( trFaceTria1.Validate() && IntersLineTria( ptMySt, ptMyEn, trFaceTria1, Point3d(), Point3d()) != ILTT_NO)
|
||||
if ( trFaceTria1.Validate() && IntersLineTria( ptMySt, ptMyEn, trFaceTria1, ptInt, ptInt2) != ILTT_NO)
|
||||
return true ;
|
||||
trFaceTria2.Set( Point3d( dHalfBaseX, - dHalfBaseY, 0.),
|
||||
Point3d( dHalfBaseX, dHalfBaseY, 0.),
|
||||
Point3d( dHalfTopX , dHalfTopY , dHeight)) ;
|
||||
if ( trFaceTria2.Validate() && IntersLineTria( ptMySt, ptMyEn, trFaceTria2, Point3d(), Point3d()) != ILTT_NO)
|
||||
if ( trFaceTria2.Validate() && IntersLineTria( ptMySt, ptMyEn, trFaceTria2, ptInt, ptInt2) != ILTT_NO)
|
||||
return true ;
|
||||
// Faccia laterale 3
|
||||
trFaceTria1.Set( Point3d( dHalfBaseX, dHalfBaseY, 0.),
|
||||
Point3d( - dHalfTopX , dHalfTopY , dHeight),
|
||||
Point3d( dHalfTopX , dHalfTopY , dHeight)) ;
|
||||
if ( trFaceTria1.Validate() && IntersLineTria( ptMySt, ptMyEn, trFaceTria1, Point3d(), Point3d()) != ILTT_NO)
|
||||
if ( trFaceTria1.Validate() && IntersLineTria( ptMySt, ptMyEn, trFaceTria1, ptInt, ptInt2) != ILTT_NO)
|
||||
return true ;
|
||||
trFaceTria2.Set( Point3d( dHalfBaseX, dHalfBaseY, 0.),
|
||||
Point3d( - dHalfBaseX, dHalfBaseY, 0.),
|
||||
Point3d( - dHalfTopX , dHalfTopY , dHeight)) ;
|
||||
if ( trFaceTria2.Validate() && IntersLineTria( ptMySt, ptMyEn, trFaceTria2, Point3d(), Point3d()) != ILTT_NO)
|
||||
if ( trFaceTria2.Validate() && IntersLineTria( ptMySt, ptMyEn, trFaceTria2, ptInt, ptInt2) != ILTT_NO)
|
||||
return true ;
|
||||
// Faccia laterale 4
|
||||
trFaceTria1.Set( Point3d( - dHalfBaseX, dHalfBaseY, 0.),
|
||||
Point3d( - dHalfTopX , - dHalfTopY , dHeight),
|
||||
Point3d( - dHalfTopX , dHalfTopY , dHeight)) ;
|
||||
if ( trFaceTria1.Validate() && IntersLineTria( ptMySt, ptMyEn, trFaceTria1, Point3d(), Point3d()) != ILTT_NO)
|
||||
if ( trFaceTria1.Validate() && IntersLineTria( ptMySt, ptMyEn, trFaceTria1, ptInt, ptInt2) != ILTT_NO)
|
||||
return true ;
|
||||
trFaceTria2.Set( Point3d( - dHalfBaseX, dHalfBaseY, 0.),
|
||||
Point3d( - dHalfBaseX, - dHalfBaseY, 0.),
|
||||
Point3d( - dHalfTopX , - dHalfTopY , dHeight)) ;
|
||||
if ( trFaceTria2.Validate() && IntersLineTria( ptMySt, ptMyEn, trFaceTria2, Point3d(), Point3d()) != ILTT_NO)
|
||||
if ( trFaceTria2.Validate() && IntersLineTria( ptMySt, ptMyEn, trFaceTria2, ptInt, ptInt2) != ILTT_NO)
|
||||
return true ;
|
||||
|
||||
return false ;
|
||||
@@ -2254,7 +2253,8 @@ VolZmap::AvoidSurfTm( const ISurfTriMesh& tmSurf, double dSafeDist, bool bPrecis
|
||||
trNewTria.Translate( dSafeDist * trTria.GetN()) ;
|
||||
}
|
||||
// Intersezione segento triangolo
|
||||
int nIntersType = IntersLineTria( ptSegSt, vtLineDir, dSegLen, trNewTria, Point3d(), Point3d()) ;
|
||||
Point3d ptInt, ptInt2 ;
|
||||
int nIntersType = IntersLineTria( ptSegSt, vtLineDir, dSegLen, trNewTria, ptInt, ptInt2) ;
|
||||
// Collisione
|
||||
if ( nIntersType != IntLineTriaType::ILTT_NO)
|
||||
return false ;
|
||||
@@ -2356,7 +2356,8 @@ VolZmap::AvoidSurfTm( const ISurfTriMesh& tmSurf, double dSafeDist, bool bPrecis
|
||||
trNewTria.Translate( dSafeDist * trTria.GetN()) ;
|
||||
}
|
||||
// Intersezione segento triangolo
|
||||
int nIntersType = IntersLineTria( ptSegSt, vtLineDir, dSegLen, trNewTria, Point3d(), Point3d()) ;
|
||||
Point3d ptInt, ptInt2 ;
|
||||
int nIntersType = IntersLineTria( ptSegSt, vtLineDir, dSegLen, trNewTria, ptInt, ptInt2) ;
|
||||
// Collisione
|
||||
if ( nIntersType != IntLineTriaType::ILTT_NO)
|
||||
return false ;
|
||||
|
||||
Reference in New Issue
Block a user