EgtGeomKernel :

- aggiunta funzione MakeRational per curve di Bezier
- aggiunta funzione per la conversione in Bezier di una ICurve.
This commit is contained in:
Daniele Bariletti
2024-05-08 17:49:31 +02:00
parent a3f05c41fe
commit d6567e94c4
3 changed files with 49 additions and 0 deletions
+34
View File
@@ -403,6 +403,40 @@ CopyThickness( const ICurve* pSouCrv, ICurve* pDestCrv)
return true ;
}
//----------------------------------------------------------------------------
ICurve*
CurveToBezierCurve( const ICurve* pCrv)
{
PtrOwner<ICurve> pBezierForm ;
switch ( pCrv->GetType()) {
case CRV_LINE :{
const ICurveLine* pCrvLine = static_cast<const ICurveLine*>( pCrv) ;
pBezierForm.Set( LineToBezierCurve( pCrvLine)) ;
break ;
}
case CRV_ARC : {
const ICurveArc* pCrvArc = static_cast<const ICurveArc*>( pCrv) ;
pBezierForm.Set( ArcToBezierCurve( pCrvArc)) ;
break ;
}
case CRV_COMPO : {
const ICurveComposite* pCrvCompo = static_cast<const ICurveComposite*>( pCrv) ;
pBezierForm.Set( CompositeToBezierCurve( pCrvCompo)) ;
break ;
}
case CRV_BEZIER : {
const ICurveBezier* pCrvBezier = static_cast<const ICurveBezier*>( pCrv) ;
pBezierForm.Set( BezierToBasicBezierCurve( pCrvBezier)) ;
break ;
}
default :
return nullptr ;
break ;
}
return Release( pBezierForm) ;
}
//----------------------------------------------------------------------------
ICurveBezier*
LineToBezierCurve( const ICurveLine* pCrvLine)