EgtInterface :

- aggiunte interfacce per EgtCurveIsACircle, EgtCurveIsARectangle e EgtCurveIsATrapezoid.
This commit is contained in:
Dario Sassi
2024-06-26 17:39:55 +02:00
parent f93b500ce4
commit 039a6d731a
+52
View File
@@ -68,6 +68,58 @@ __stdcall EgtCurveIsFlat( int nId, BOOL bUseExtrusion, double dToler, double vtN
return TRUE ;
}
//----------------------------------------------------------------------------
BOOL
__stdcall EgtCurveIsACircle( int nId, double dToler, double ptC[3], double vtN[3], double* pdRad, BOOL* pbCCW)
{
if ( ptC == nullptr || vtN == nullptr || pdRad == nullptr || pbCCW == nullptr)
return FALSE ;
Point3d ptCen ;
Vector3d vtNorm ;
double dRad ;
bool bCCW ;
if ( ! ExeCurveIsACircle( nId, ptCen, vtNorm, dRad, bCCW, dToler))
return FALSE ;
VEC_FROM_3D( ptC, ptCen)
VEC_FROM_3D( vtN, vtNorm)
*pdRad = dRad ;
*pbCCW = ( bCCW ? TRUE : FALSE) ;
return TRUE ;
}
//----------------------------------------------------------------------------
BOOL
__stdcall EgtCurveIsARectangle( int nId, double dToler, double ptP[3], double vtL1[3], double vtL2[3])
{
if ( ptP == nullptr || vtL1 == nullptr || vtL2 == nullptr)
return FALSE ;
Point3d ptPNT ;
Vector3d vtLato1, vtLato2 ;
if ( ! ExeCurveIsARectangle( nId, ptPNT, vtLato1, vtLato2, dToler))
return FALSE ;
VEC_FROM_3D( ptP, ptPNT)
VEC_FROM_3D( vtL1, vtLato1)
VEC_FROM_3D( vtL2, vtLato2)
return TRUE ;
}
//----------------------------------------------------------------------------
BOOL
__stdcall EgtCurveIsATrapezoid( int nId, double dToler, double ptP[3], double vtB1[3], double vtL1[3], double vtB2[3])
{
if ( ptP == nullptr || vtB1 == nullptr || vtL1 == nullptr || vtB2 == nullptr)
return FALSE ;
Point3d ptPNT ;
Vector3d vtBase1, vtLato1, vtBase2 ;
if ( ! ExeCurveIsATrapezoid( nId, ptPNT, vtBase1, vtLato1, vtBase2, dToler))
return FALSE ;
VEC_FROM_3D( ptP, ptPNT)
VEC_FROM_3D( vtB1, vtBase1)
VEC_FROM_3D( vtL1, vtLato1)
VEC_FROM_3D( vtB2, vtBase2)
return TRUE ;
}
//----------------------------------------------------------------------------
BOOL
__stdcall EgtCurveAreaXY( int nId, double* pdArea)