Files
EgtGeomKernel/IntersCrvCompoCrvCompo.h
T
Dario Sassi 19fda49699 EgtGeomKernel :
- miglioramenti nel calcolo delle intersezioni di curve e loro classificazione.
2014-07-06 16:21:18 +00:00

61 lines
2.1 KiB
C++

//----------------------------------------------------------------------------
// EgalTech 2014-2014
//----------------------------------------------------------------------------
// File : IntersCrvCompoCrvCompo.h Data : 24.06.14 Versione : 1.5f6
// Contenuto : Dichiarazione della classe intersezione curva composita/cc.
//
//
//
// Modifiche : 24.06.14 DS Creazione modulo.
//
//
//----------------------------------------------------------------------------
#pragma once
#include "/EgtDev/Include/EGkIntersCurveCurve.h"
#include "/EgtDev/Include/EGkCurveComposite.h"
//-----------------------------------------------------------------------------
class IntersCrvCompoCrvCompo
{
friend class IntersCurveCurve ;
public :
IntersCrvCompoCrvCompo( const ICurveComposite& CCompo1, const ICurveComposite& CCompo2) ;
public :
bool GetOverlaps( void)
{ return m_bOverlaps ; }
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 :
IntersCrvCompoCrvCompo( void) ;
//bool CompatibleParamA( int nInd1, int nInd2) ;
//bool CompatibleParamB( int nInd1, int nInd2) ;
bool EraseCurrentInfo( int& nIndCurr, int& nIndOther) ;
bool EraseOtherInfo( int& nIndCurr, int& nIndOther) ;
private :
bool m_bCrvAClosed ;
bool m_bCrvBClosed ;
double m_dCrvASpan ;
double m_dCrvBSpan ;
bool m_bOverlaps ;
int m_nNumInters ;
ICCIVECTOR m_Info ;
} ;
//-----------------------------------------------------------------------------
// Per ordinare le info di intersezione secondo il parametro crescente (con stable_sort)
bool SortGreater( const IntCrvCrvInfo& aInfo1, const IntCrvCrvInfo& aInfo2) ;
// Per tener conto di intersezioni con parti non manifold
bool OrderNonManifoldInters( ICCIVECTOR& Info, const ICurve& CurveA, const ICurve& CurveB) ;