f119a5a1be
- 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.
66 lines
2.2 KiB
C++
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] ;
|
|
} ;
|
|
|