EgtInterface 1.5k5 :
- aggiunta EgtTrimExtendCurveByLen - aggiunta EgtOffsetCurve - aggiunte EgtCurveLength e EgtCurveLengthAtPoint - aggiunta EgtGetPointFromSelect.
This commit is contained in:
+35
-5
@@ -195,7 +195,7 @@ __stdcall EgtExtendCurveEndByLen( int nId, double dLen)
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
BOOL
|
||||
__stdcall EgtExtendCurveByLen( int nId, double dLen, const double ptNear[3])
|
||||
__stdcall EgtTrimExtendCurveByLen( int nId, double dLen, const double ptNear[3])
|
||||
{
|
||||
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
||||
VERIFY_GEOMDB( pGeomDB, GDB_ID_NULL)
|
||||
@@ -207,10 +207,26 @@ __stdcall EgtExtendCurveByLen( int nId, double dLen, const double ptNear[3])
|
||||
Point3d ptStart, ptEnd ;
|
||||
if ( ! pCurve->GetStartPoint( ptStart) || ! pCurve->GetEndPoint( ptEnd))
|
||||
return FALSE ;
|
||||
if ( SqDist( ptStart, ptNear) < SqDist( ptEnd, ptNear))
|
||||
return ( pCurve->ExtendStartByLen( dLen) ? TRUE : FALSE) ;
|
||||
else
|
||||
return ( pCurve->ExtendEndByLen( dLen) ? TRUE : FALSE) ;
|
||||
if ( SqDist( ptStart, ptNear) < SqDist( ptEnd, ptNear)) {
|
||||
if ( dLen < - EPS_SMALL)
|
||||
return ( pCurve->TrimStartAtLen( - dLen) ? TRUE : FALSE) ;
|
||||
else if ( dLen > EPS_SMALL)
|
||||
return ( pCurve->ExtendStartByLen( dLen) ? TRUE : FALSE) ;
|
||||
else
|
||||
return TRUE ;
|
||||
}
|
||||
else {
|
||||
if ( dLen < - EPS_SMALL) {
|
||||
double dCrvLen ;
|
||||
if ( ! pCurve->GetLength( dCrvLen))
|
||||
return FALSE ;
|
||||
return ( pCurve->TrimEndAtLen( dCrvLen + dLen) ? TRUE : FALSE) ;
|
||||
}
|
||||
else if ( dLen > EPS_SMALL)
|
||||
return ( pCurve->ExtendEndByLen( dLen) ? TRUE : FALSE) ;
|
||||
else
|
||||
return TRUE ;
|
||||
}
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
@@ -239,6 +255,20 @@ __stdcall EgtSplitCurveAtPoint( int nId, double ptOn[3])
|
||||
return ( EgtTrimCurveStartAtParam( nCopyId, dU) ? TRUE : FALSE) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
BOOL
|
||||
__stdcall EgtOffsetCurve( int nId, double dDist, int nSide, int nType)
|
||||
{
|
||||
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
||||
VERIFY_GEOMDB( pGeomDB, FALSE)
|
||||
// recupero la curva
|
||||
ICurve* pCurve = GetCurve( pGeomDB->GetGeoObj( nId)) ;
|
||||
if ( pCurve == nullptr)
|
||||
return FALSE ;
|
||||
// eseguo l'offset
|
||||
return ( pCurve->Offset( dDist, nSide, nType) ? TRUE : FALSE) ;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
BOOL
|
||||
__stdcall EgtModifyCurveCircleCPN( int nId, const double ptOn[3])
|
||||
|
||||
Reference in New Issue
Block a user