EgtGeomKernel :
- tolta da ChainCurves riduzione tolleranza con dimensione pezzi - aggiunte DistPointTriangle, IntersPlaneTria, IntersPlaneSurfTm - correzioni a IntersCrvCompoCrvCompo per topologia intersezioni - completamente riscritta IntersCoplanarLineTria per robustezza topologica.
This commit is contained in:
+4
-4
@@ -162,17 +162,17 @@ IntersLineLine::IntersFiniteLines( const ICurveLine& Line1, const ICurveLine& Li
|
||||
m_Info.IciB[0].dU = CrossXY( ( ptS2 - ptS1), vtDir1) / dCrossXY ;
|
||||
// verifica posizione intersezione su prima linea
|
||||
int nPos1 = ICurve::PP_NULL ; // fuori
|
||||
if ( ( m_Info.IciA[0].dU * vtDir1).IsSmall())
|
||||
if ( abs( m_Info.IciA[0].dU * dLen1XY) < EPS_SMALL)
|
||||
nPos1 = ICurve::PP_START ; // vicino a inizio
|
||||
else if ( (( 1 - m_Info.IciA[0].dU) * vtDir1).IsSmall())
|
||||
else if ( abs(( 1 - m_Info.IciA[0].dU) * dLen1XY) < EPS_SMALL)
|
||||
nPos1 = ICurve::PP_END ; // vicino a fine
|
||||
else if ( m_Info.IciA[0].dU > 0 && m_Info.IciA[0].dU < 1)
|
||||
nPos1 = ICurve::PP_MID ; // nell'interno
|
||||
// verifica posizione intersezione su seconda linea
|
||||
int nPos2 = ICurve::PP_NULL ; // fuori
|
||||
if ( ( m_Info.IciB[0].dU * vtDir2).IsSmall())
|
||||
if ( abs( m_Info.IciB[0].dU * dLen2XY) < EPS_SMALL)
|
||||
nPos2 = ICurve::PP_START ; // vicino a inizio
|
||||
else if ( (( 1 - m_Info.IciB[0].dU) * vtDir2).IsSmall())
|
||||
else if ( abs(( 1 - m_Info.IciB[0].dU) * dLen2XY) < EPS_SMALL)
|
||||
nPos2 = ICurve::PP_END ; // vicino a fine
|
||||
else if ( m_Info.IciB[0].dU > 0 && m_Info.IciB[0].dU < 1)
|
||||
nPos2 = ICurve::PP_MID ; // nell'interno
|
||||
|
||||
Reference in New Issue
Block a user