//---------------------------------------------------------------------------- // EgalTech 2014-2014 //---------------------------------------------------------------------------- // File : IntersArcArc.h Data : 10.07.14 Versione : 1.5g2 // Contenuto : Dichiarazione della classe intersezione arco/arco. // // // // Modifiche : 10.07.14 DS Creazione modulo. // // //---------------------------------------------------------------------------- #pragma once #include "/EgtDev/Include/EGkIntersCurves.h" #include "CurveArc.h" //----------------------------------------------------------------------------- class IntersArcArc { friend class IntersCurveCurve ; public : IntersArcArc( const CurveArc& Arc1, const CurveArc& Arc2) ; public : bool GetOverlaps( void) { return false ; } int GetNumInters( void) { return m_nNumInters ; } bool GetIntCrvCrvInfo( int nInd, IntCrvCrvInfo& aInfo) { if ( nInd < 0 || nInd >= m_nNumInters) return false ; aInfo = m_Info[nInd] ; return true ; } private : IntersArcArc( void) ; bool CalcSecIntersGeomData( int nInt, const Point3d& ptInt, int& nPos1, int& nPos2) ; bool CalcSecIntersTopolData( int nInt, int nPos1, int nPos2) ; bool CalcOverlapData( int nInt, bool bEqVers, const Point3d& ptS1, const Point3d& ptE1, int dUS1, int dUE1, const Point3d& ptS2, const Point3d& ptE2) ; private : static const int MAX_INTERS = 2 ; private : CurveArc m_Arc1 ; CurveArc m_Arc2 ; bool m_bOverlaps ; int m_nNumInters ; IntCrvCrvInfo m_Info[MAX_INTERS] ; } ;