diff --git a/EgtGeomKernel.rc b/EgtGeomKernel.rc index 2164376..834befe 100644 Binary files a/EgtGeomKernel.rc and b/EgtGeomKernel.rc differ diff --git a/IntersArcArc.cpp b/IntersArcArc.cpp index 16873e8..f21dfac 100644 --- a/IntersArcArc.cpp +++ b/IntersArcArc.cpp @@ -33,25 +33,26 @@ IntersArcArc::IntersArcArc( const CurveArc& Arc1, const CurveArc& Arc2) if ( abs( Arc1.GetAngCenter()) > ANG_FULL + EPS_ANG_ZERO || abs( Arc2.GetAngCenter()) > ANG_FULL + EPS_ANG_ZERO) return ; - // ne faccio una copia - m_Arc1.CopyFrom( &Arc1) ; - m_Arc2.CopyFrom( &Arc2) ; // gli archi devono avere il piano coincidente con XY - if ( ! m_Arc1.GetNormVersor().IsZplus() && ! m_Arc1.GetNormVersor().IsZminus()) + if ( ! Arc1.GetNormVersor().IsZplus() && ! Arc1.GetNormVersor().IsZminus()) return ; - if ( ! m_Arc2.GetNormVersor().IsZplus() && ! m_Arc2.GetNormVersor().IsZminus()) + if ( ! Arc2.GetNormVersor().IsZplus() && ! Arc2.GetNormVersor().IsZminus()) return ; // verifico sovrapposizione box BBox3d boxArc1 ; - if ( ! m_Arc1.GetLocalBBox( boxArc1)) + if ( ! Arc1.GetLocalBBox( boxArc1)) return ; BBox3d boxArc2 ; - if ( ! m_Arc2.GetLocalBBox( boxArc2)) + if ( ! Arc2.GetLocalBBox( boxArc2)) return ; if ( ! boxArc1.OverlapsXY( boxArc2)) return ; + // ne faccio una copia + m_Arc1.CopyFrom( &Arc1) ; + m_Arc2.CopyFrom( &Arc2) ; + // versore e distanza tra i centri Vector3d vtDir = ( m_Arc2.GetCenter() - m_Arc1.GetCenter()) ; vtDir.z = 0 ; diff --git a/IntersLineArc.cpp b/IntersLineArc.cpp index eac0c34..99115cb 100644 --- a/IntersLineArc.cpp +++ b/IntersLineArc.cpp @@ -70,8 +70,8 @@ IntersLineArc::IntersLineArc( const CurveLine& Line, const CurveArc& Arc) return ; // se distanza uguale al raggio -> una intersezione tangente, è la proiezione - // (corrisponde a una differenza max di EPS_SMALL tra i valori) - if ( dSqDelta < 2 * m_Arc.GetRadius() * EPS_SMALL) { + // (corrisponde a una differenza max di EPS_SMALL tra le intersezioni) + if ( dSqDelta < EPS_SMALL * EPS_SMALL) { // determinazione geometrica dell'intersezione tra le due curve int nPosL, nPosA ; if ( ! CalcIntersGeomData( 0, ptPrjCen, nPosL, nPosA))