EgtGeomKernel :
- aggiunta funzione MakeRational per curve di Bezier - aggiunta funzione per la conversione in Bezier di una ICurve.
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user