EgtGeomKernel :

- miglioramenti al calcolo silhouette con CollisionAvoid
- modifiche a CollisionAvoid per permettere accelerazione con HashGrid anche a TestPosition.
This commit is contained in:
Dario Sassi
2024-06-17 07:10:27 +02:00
parent 5841c9cae0
commit c4a05bcb2f
7 changed files with 167 additions and 92 deletions
+3 -3
View File
@@ -1669,10 +1669,10 @@ SetSpecialPtStartForOpenEdges( const ICurveComposite* pCrvOrig, const Frame3d& f
// se il punto trovato è a cavallo tra due curve...
if ( abs( dU_check - floor( dU_check)) < EPS_PARAM ||
abs( dU_check - ceil( dU_check)) < EPS_PARAM) {
const ICurve* pCrvA = pCrvCompo->GetCurve( floor( dU_check)) ;
const ICurve* pCrvA = pCrvCompo->GetCurve( int( floor( dU_check))) ;
if ( pCrvA == nullptr)
return false ;
const ICurve* pCrvB = pCrvCompo->GetCurve( ceil( dU_check)) ;
const ICurve* pCrvB = pCrvCompo->GetCurve( int( ceil( dU_check))) ;
if ( pCrvB == nullptr)
return false ;
if ( pCrvA->GetTempProp( 0) == 0 || pCrvB->GetTempProp( 0) == 1)
@@ -1680,7 +1680,7 @@ SetSpecialPtStartForOpenEdges( const ICurveComposite* pCrvOrig, const Frame3d& f
}
// se invece tocca una sola curva, controllo che sia aperta
else {
const ICurve* pCrvA = pCrvCompo->GetCurve( floor( dU_check)) ;
const ICurve* pCrvA = pCrvCompo->GetCurve( int( floor( dU_check))) ;
if ( pCrvA == nullptr)
return false ;
if ( pCrvA->GetTempProp( 0) == 0)