EgtInterface 1.5k1 :
- agg. gestione attributi per selezione superfici in shading - EgtSplitCurveCompo è diventata EgtSeparateCurveCompo - aggiunta EgtSplitCurveAtPoint - aggiunta EgtFrameFrom3Points
This commit is contained in:
@@ -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
@@ -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)
|
||||
|
||||
@@ -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],
|
||||
|
||||
@@ -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])
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user