EgtInterface 1.9l2 :

- modifiche a interfacce EgtPointCurveDist, EgtPointCurveDistSide (prima erano EgtGetMinDistPointCurve e EgtGetMinDistPntSidePointCurve)
- aggiunta interfaccia per EgtPointSurfTmDist
- modifiche a interfaccia EgtLineSurfTmInters (prima era EgtSurfTmLineInters).
This commit is contained in:
Dario Sassi
2018-12-17 11:31:29 +00:00
parent e19b921ea2
commit 0c50ffc330
6 changed files with 118 additions and 56 deletions
-56
View File
@@ -335,27 +335,6 @@ __stdcall EgtClosedCurveClassify( int nId1, int nId2)
return ExeClosedCurveClassify( nId1, nId2) ;
}
//----------------------------------------------------------------------------
BOOL
__stdcall EgtGetMinDistPointCurve( const double ptP[3], int nId, double* pdDist, double* pdU)
{
return ( ExeGetMinDistPointCurve( ptP, nId, pdDist, pdU) ? TRUE : FALSE) ;
}
//----------------------------------------------------------------------------
BOOL
__stdcall EgtGetMinDistPntSidePointCurve( const double ptP[3], int nId, const double vtN[3],
double* pdDist, double ptMin[3], int* pnSide)
{
if ( pdDist == nullptr || ptMin == nullptr || pnSide == nullptr)
return FALSE ;
Point3d ptTmp ;
if ( ! ExeGetMinDistPntSidePointCurve( ptP, nId, vtN, pdDist, ptTmp, pnSide))
return FALSE ;
VEC_FROM_3D( ptMin, ptTmp)
return TRUE ;
}
//----------------------------------------------------------------------------
BOOL
__stdcall EgtArcRadius( int nId, double* pdRad)
@@ -576,41 +555,6 @@ __stdcall EgtSurfTmFacetsContact( int nId, int nF1, int nF2, int nRefId, bool* p
return TRUE ;
}
//----------------------------------------------------------------------------
BOOL
__stdcall EgtSurfTmLineInters( int nId, const double ptP[3], const double vtDir[3], int nRefType, int*& vFlagInters, double*& vParInters, int* pnCount)
{
// verifica parametri
if ( ptP == nullptr || vtDir == nullptr || &vFlagInters == nullptr || &vParInters == nullptr || pnCount == nullptr)
return FALSE ;
// eseguo intersezione
INTDBLVECTOR vInters ;
if ( ! ExeSurfTmLineInters( nId, ptP, vtDir, nRefType, vInters))
return FALSE ;
// assegno risultati
int nDim = int( vInters.size()) ;
if ( nDim == 0) {
vFlagInters = nullptr ;
vParInters = nullptr ;
}
else {
vFlagInters = (int*) malloc( nDim * sizeof( int)) ;
if ( vFlagInters == nullptr)
return FALSE ;
vParInters = (double*) malloc( nDim * sizeof( double)) ;
if ( vParInters == nullptr) {
free( vFlagInters) ;
return FALSE ;
}
for ( int i = 0 ; i < nDim ; ++ i) {
vFlagInters[i] = vInters[i].first ;
vParInters[i] = vInters[i].second ;
}
}
*pnCount = nDim ;
return TRUE ;
}
//----------------------------------------------------------------------------
BOOL
__stdcall EgtTextNormVersor( int nId, int nRefId, double vtNorm[3])