EgtInterface 1.5k1 :

- agg. gestione attributi per selezione superfici in shading
- EgtSplitCurveCompo è diventata EgtSeparateCurveCompo
- aggiunta EgtSplitCurveAtPoint
- aggiunta EgtFrameFrom3Points
This commit is contained in:
Dario Sassi
2014-11-11 10:34:42 +00:00
parent 0e648470ed
commit c28d250749
5 changed files with 64 additions and 2 deletions
+29 -2
View File
@@ -19,6 +19,7 @@
#include "/EgtDev/Include/EgkCurve.h"
#include "/EgtDev/Include/EgkCurveArc.h"
#include "/EgtDev/Include/EgkCurveComposite.h"
#include "/EgtDev/Include/EgkDistPointCurve.h"
//----------------------------------------------------------------------------
@@ -143,7 +144,7 @@ __stdcall EgtTrimCurveEndAtParam( int nId, double dPar)
ICurve* pCurve = GetCurve( pGeomDB->GetGeoObj( nId)) ;
if ( pCurve == nullptr)
return false ;
// taglio la curva all'inizio
// taglio la curva alla fine
return ( pCurve->TrimEndAtParam( dPar) ? TRUE : FALSE) ;
}
@@ -161,6 +162,32 @@ __stdcall EgtTrimCurveStartEndAtParam( int nId, double dParS, double dParE)
return ( pCurve->TrimStartEndAtParam( dParS, dParE) ? TRUE : FALSE) ;
}
//----------------------------------------------------------------------------
BOOL
__stdcall EgtSplitCurveAtPoint( int nId, double ptOn[3])
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, FALSE)
// recupero la curva
ICurve* pCurve = GetCurve( pGeomDB->GetGeoObj( nId)) ;
if ( pCurve == nullptr)
return FALSE ;
// determino la posizione parametrica del punto sulla curva (con tolleranza)
DistPointCurve dstPC( ptOn, *pCurve) ;
int nFlag ;
double dU ;
if ( ! dstPC.GetParamAtMinDistPoint( 0, dU, nFlag) || nFlag != MDPCI_NORMAL)
return FALSE ;
// copio la curva
int nCopyId = pGeomDB->Copy( nId, GDB_ID_NULL, nId, GDB_AFTER) ;
if ( nCopyId == GDB_ID_NULL)
return FALSE ;
// tengo la prima parte dell'originale e la seconda parte della copia
if ( ! pCurve->TrimEndAtParam( dU))
return false ;
return ( EgtTrimCurveStartAtParam( nCopyId, dU) ? TRUE : FALSE) ;
}
//-------------------------------------------------------------------------------
BOOL
__stdcall EgtModifyCurveCircleCPN( int nId, const double ptOn[3])
@@ -236,7 +263,7 @@ __stdcall EgtModifyCurveArc3P( int nId, const double ptMid[3])
//-------------------------------------------------------------------------------
BOOL
__stdcall EgtSplitCurveCompo( int nId)
__stdcall EgtSeparateCurveCompo( int nId)
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, FALSE)