Files
EgtGeomKernel/IntersLineLine.h
T
Dario Sassi f119a5a1be EgtGeomKernel 1.5f6 :
- agg. intersezione linee-linee
- agg. alle curve metodi per passare da lunghezza a parametro e viceversa
- agg. metodi per creare curve composite come poligoni regolari
- corr. errore in triangulate con contorni CW
- agg. opportune funzioni a TSC.
2014-06-24 07:05:43 +00:00

66 lines
2.2 KiB
C++

//----------------------------------------------------------------------------
// EgalTech 2014-2014
//----------------------------------------------------------------------------
// File : IntersLineLine.h Data : 19.06.14 Versione : 1.5f5
// Contenuto : Dichiarazione della classe intersezione linea/linea.
//
//
//
// Modifiche : 19.06.14 DS Creazione modulo.
//
//
//----------------------------------------------------------------------------
#pragma once
#include "/EgtDev/Include/EGkIntersCurveCurve.h"
#include "/EgtDev/Include/EGkCurveLine.h"
//-----------------------------------------------------------------------------
class IntersLineLine
{
friend class IntersCurveCurve ;
public :
IntersLineLine( const ICurveLine& Line1, const ICurveLine& Line2, bool bFinites = true) ;
public :
bool GetOverlaps( void)
{ return m_bOverlaps ; }
int GetNumInters( void)
{ return m_nNumInters ; }
bool GetIntersParam( int nInd, int nCrv, double& dPar)
{ if ( nInd < 0 || nInd >= m_nNumInters || nCrv < 0 || nCrv > 1)
return false ;
dPar = m_Info[nInd].Ici[nCrv].dU ;
return true ;}
bool GetIntersPoint( int nInd, int nCrv, Point3d& ptI)
{ if ( nInd < 0 || nInd >= m_nNumInters || nCrv < 0 || nCrv > 1)
return false ;
ptI = m_Info[nInd].Ici[nCrv].ptI ;
return true ;}
bool GetIntersType( int nInd, int nCrv, int& nType)
{ if ( nInd < 0 || nInd >= m_nNumInters || nCrv < 0 || nCrv > 1)
return false ;
nType = m_Info[nInd].Ici[nCrv].nTy ;
return true ;}
bool GetIntCrvCrvInfo( int nInd, IntCrvCrvInfo& aInfo)
{ if ( nInd < 0 || nInd >= m_nNumInters)
return false ;
aInfo = m_Info[nInd] ;
return true ; }
private :
IntersLineLine( void) ;
private :
static const int MAX_INTERS = 2 ;
private :
bool m_bOverlaps ;
int m_nNumInters ;
IntCrvCrvInfo m_Info[MAX_INTERS] ;
} ;