From 039a6d731a1f4a521ba5649a0d57da4c345be561 Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Wed, 26 Jun 2024 17:39:55 +0200 Subject: [PATCH] EgtInterface : - aggiunte interfacce per EgtCurveIsACircle, EgtCurveIsARectangle e EgtCurveIsATrapezoid. --- API_GdbGetCurve.cpp | 52 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/API_GdbGetCurve.cpp b/API_GdbGetCurve.cpp index 963ba18..894c891 100644 --- a/API_GdbGetCurve.cpp +++ b/API_GdbGetCurve.cpp @@ -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)