b4b996dac0
- aggiunta approssimazione di punti con archi e rette (CurveByApprox) - fatte correzioni ad intersezioni rette/archi e archi/archi quasi tangenti - correzioni ad offset di curve composite che non liberava memoria in caso di errore.
57 lines
1.7 KiB
C++
57 lines
1.7 KiB
C++
//----------------------------------------------------------------------------
|
|
// 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/EGkIntersCurves.h"
|
|
#include "CurveLine.h"
|
|
#include "CurveArc.h"
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
class IntersLineArc
|
|
{
|
|
friend class IntersCurveCurve ;
|
|
|
|
public :
|
|
IntersLineArc( const CurveLine& Line, const CurveArc& 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] ;
|
|
} ;
|
|
|