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
+1
View File
@@ -57,6 +57,7 @@ BOOL __stdcall EgtFrame( int nId, Frame3d& frFrame) ;
//--------------------------- Scene ------------------------------------------
BOOL __stdcall EgtSetBackground( Color TopCol, Color BottomCol, BOOL bRedraw) ;
BOOL __stdcall EgtSetMarkAttribs( Color MarkCol) ;
BOOL __stdcall EgtSetSelSurfAttribs( Color SelSurfCol) ;
BOOL __stdcall EgtSetGeoLineAttribs( Color GlCol) ;
BOOL __stdcall EgtSetWinRectAttribs( BOOL bOutline, Color WrCol) ;
+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)
+17
View File
@@ -338,6 +338,23 @@ __stdcall EgtPointLocToLoc( double* pdX, double* pdY, double* pdZ,
//-----------------------------------------------------------------------------
// Frame3d
//-----------------------------------------------------------------------------
BOOL
__stdcall EgtFrameFrom3Points( double ptO[3], double ptOnX[3], double ptNearY[3],
double ptOrig[3], double vtX[3], double vtY[3], double vtZ[3])
{
// calcolo il riferimento
Frame3d frTemp ;
if ( ! frTemp.Set( Point3d( ptO), Point3d( ptOnX), Point3d( ptNearY)))
return FALSE ;
// aggiorno i parametri del frame
VEC_FROM_3D( ptOrig, frTemp.Orig())
VEC_FROM_3D( vtX, frTemp.VersX())
VEC_FROM_3D( vtY, frTemp.VersY())
VEC_FROM_3D( vtZ, frTemp.VersZ())
return TRUE ;
}
//-----------------------------------------------------------------------------
BOOL
__stdcall EgtFrameTranslate( double ptOrig[3], double vtX[3], double vtY[3], double vtZ[3],
+17
View File
@@ -90,6 +90,23 @@ __stdcall EgtSetMarkAttribs( Color MarkCol)
return ( pGseCtx->m_pScene->SetMark( MarkCol) ? TRUE : FALSE) ;
}
//-----------------------------------------------------------------------------
BOOL
__stdcall EgtSetSelSurfAttribs( const int SelSurfCol[4])
{
return EgtSetSelSurfAttribs( Color( SelSurfCol)) ;
}
//-----------------------------------------------------------------------------
BOOL
__stdcall EgtSetSelSurfAttribs( Color SelSurfCol)
{
GseContext* pGseCtx = GetCurrGseContext() ;
VERIFY_CTX_SCENE( pGseCtx, FALSE)
// imposto il colore del Mark
return ( pGseCtx->m_pScene->SetSelSurf( SelSurfCol) ? TRUE : FALSE) ;
}
//-----------------------------------------------------------------------------
BOOL
__stdcall EgtSetGeoLineAttribs( const int GlCol[4])
BIN
View File
Binary file not shown.