//---------------------------------------------------------------------------- // EgalTech 2014-2014 //---------------------------------------------------------------------------- // File : IntersLineArc.h Data : 07.07.14 Versione : 1.5g2 // Contenuto : Dichiarazione della classe intersezione linea/arco. // // // // Modifiche : 07.07.14 DS Creazione modulo. // // //---------------------------------------------------------------------------- #pragma once #include "/EgtDev/Include/EGkIntersCurveCurve.h" #include "CurveLine.h" #include "CurveArc.h" //----------------------------------------------------------------------------- class IntersLineArc { friend class IntersCurveCurve ; public : IntersLineArc( const ICurveLine& Line, const ICurveArc& Arc) ; 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 : IntersLineArc( void) ; bool CalcIntersGeomData( int nInt, const Point3d& ptInt, int& nPosL, int& nPosA) ; bool CalcTgIntersTopolData( int nInt, int nPosL, int nPosA) ; bool CalcSecIntersTopolData( int nInt, int nPosL, int nPosA) ; private : static const int MAX_INTERS = 2 ; private : CurveLine m_Line ; Vector3d m_vtDirL ; CurveArc m_Arc ; int m_nNumInters ; IntCrvCrvInfo m_Info[MAX_INTERS] ; } ;