EgtInterface 1.6b2 :
- razionalizzazione - modificati comandi per creazione superfici per gestione piani di regioni con buchi - aggiunta SplitCurve.
This commit is contained in:
+73
-18
@@ -23,21 +23,47 @@
|
||||
|
||||
using namespace std ;
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
static const double LIN_TOL_DEF = 0.05 ;
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
static int
|
||||
LuaCreateSurfTriMeshByContour( lua_State* L)
|
||||
LuaCreateSurfTriMeshByFlatContour( lua_State* L)
|
||||
{
|
||||
// 2 o 3 parametri : ParentId, CrvId [, dTol]
|
||||
int nParentId ;
|
||||
LuaCheckParam( L, 1, nParentId)
|
||||
int nCrvId ;
|
||||
LuaCheckParam( L, 2, nCrvId)
|
||||
double dLinTol = 0.1 ;
|
||||
double dLinTol = LIN_TOL_DEF ;
|
||||
if ( lua_gettop( L) >= 3)
|
||||
LuaCheckParam( L, 3, dLinTol) ;
|
||||
LuaClearStack( L) ;
|
||||
// creo STM riempiendo un contorno piano
|
||||
int nId = EgtCreateSurfTriMeshByContour( nParentId, nCrvId, dLinTol) ;
|
||||
int nId = EgtCreateSurfTriMeshByFlatContour( nParentId, nCrvId, dLinTol) ;
|
||||
// restituisco il risultato
|
||||
if ( nId != GDB_ID_NULL)
|
||||
LuaSetReturn( L, nId) ;
|
||||
else
|
||||
LuaSetReturn( L) ;
|
||||
return 1 ;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
static int
|
||||
LuaCreateSurfTriMeshByRegion( lua_State* L)
|
||||
{
|
||||
// 2 o 3 parametri : ParentId, CrvIds [, dTol]
|
||||
int nParentId ;
|
||||
LuaCheckParam( L, 1, nParentId)
|
||||
INTVECTOR vCrvIds ;
|
||||
LuaCheckParam( L, 2, vCrvIds)
|
||||
double dLinTol = LIN_TOL_DEF ;
|
||||
if ( lua_gettop( L) >= 3)
|
||||
LuaCheckParam( L, 3, dLinTol) ;
|
||||
LuaClearStack( L) ;
|
||||
// creo STM riempiendo una regione (piana)
|
||||
int nId = EgtCreateSurfTriMeshByRegion( nParentId, vCrvIds, dLinTol) ;
|
||||
// restituisco il risultato
|
||||
if ( nId != GDB_ID_NULL)
|
||||
LuaSetReturn( L, nId) ;
|
||||
@@ -50,25 +76,52 @@ LuaCreateSurfTriMeshByContour( lua_State* L)
|
||||
static int
|
||||
LuaCreateSurfTriMeshByExtrusion( lua_State* L)
|
||||
{
|
||||
// 4 o 5 o 6 parametri : ParentId, CrvId, vtExtr, bCapEnds [, dTol] [, sRefType]
|
||||
// 3 o 4 o 5 parametri : ParentId, CrvIds, vtExtr [, dTol] [, sRefType]
|
||||
int nParentId ;
|
||||
LuaCheckParam( L, 1, nParentId)
|
||||
int nCrvId ;
|
||||
LuaCheckParam( L, 2, nCrvId)
|
||||
INTVECTOR vCrvIds ;
|
||||
LuaCheckParam( L, 2, vCrvIds)
|
||||
Vector3d vtExtr ;
|
||||
LuaCheckParam( L, 3, vtExtr)
|
||||
bool bCapEnds ;
|
||||
LuaCheckParam( L, 4, bCapEnds)
|
||||
double dLinTol = 0.1 ;
|
||||
double dLinTol = LIN_TOL_DEF ;
|
||||
int nRefType = RTY_DEFAULT ;
|
||||
if ( LuaGetParam( L, 5, dLinTol))
|
||||
LuaGetRefType( L, 6, nRefType) ;
|
||||
else
|
||||
if ( LuaGetParam( L, 4, dLinTol))
|
||||
LuaGetRefType( L, 5, nRefType) ;
|
||||
else
|
||||
LuaGetRefType( L, 4, nRefType) ;
|
||||
LuaClearStack( L) ;
|
||||
// creo STM riempiendo un contorno piano
|
||||
int nId = EgtCreateSurfTriMeshByExtrusion( nParentId, nCrvId, vtExtr.v,
|
||||
( bCapEnds ? TRUE : FALSE), dLinTol, nRefType) ;
|
||||
// creo STM estrudendo uno o più percorsi, se piani si possono mettere i tappi
|
||||
int nId = EgtCreateSurfTriMeshByExtrusion( nParentId, vCrvIds, vtExtr,
|
||||
dLinTol, nRefType) ;
|
||||
// restituisco il risultato
|
||||
if ( nId != GDB_ID_NULL)
|
||||
LuaSetReturn( L, nId) ;
|
||||
else
|
||||
LuaSetReturn( L) ;
|
||||
return 1 ;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
static int
|
||||
LuaCreateSurfTriMeshByRegionExtrusion( lua_State* L)
|
||||
{
|
||||
// 3 o 4 o 5 parametri : ParentId, CrvIds, vtExtr [, dTol] [, sRefType]
|
||||
int nParentId ;
|
||||
LuaCheckParam( L, 1, nParentId)
|
||||
INTVECTOR vCrvIds ;
|
||||
LuaCheckParam( L, 2, vCrvIds)
|
||||
Vector3d vtExtr ;
|
||||
LuaCheckParam( L, 3, vtExtr)
|
||||
double dLinTol = LIN_TOL_DEF ;
|
||||
int nRefType = RTY_DEFAULT ;
|
||||
if ( LuaGetParam( L, 4, dLinTol))
|
||||
LuaGetRefType( L, 5, nRefType) ;
|
||||
else
|
||||
LuaGetRefType( L, 4, nRefType) ;
|
||||
LuaClearStack( L) ;
|
||||
// creo STM estrudendo uno o più percorsi, con aggiunta dei tappi
|
||||
int nId = EgtCreateSurfTriMeshByRegionExtrusion( nParentId, vCrvIds, vtExtr,
|
||||
dLinTol, nRefType) ;
|
||||
// restituisco il risultato
|
||||
if ( nId != GDB_ID_NULL)
|
||||
LuaSetReturn( L, nId) ;
|
||||
@@ -126,7 +179,7 @@ LuaCreateSurfTriMeshByScrewing( lua_State* L)
|
||||
LuaCheckParam( L, 5, dAngRotDeg)
|
||||
double dMove ;
|
||||
LuaCheckParam( L, 6, dMove)
|
||||
double dLinTol = 0.1 ;
|
||||
double dLinTol = LIN_TOL_DEF ;
|
||||
int nRefType = RTY_DEFAULT ;
|
||||
if ( LuaGetParam( L, 7, dLinTol))
|
||||
LuaGetRefType( L, 8, nRefType) ;
|
||||
@@ -154,7 +207,7 @@ LuaCreateSurfTriMeshRuled( lua_State* L)
|
||||
LuaCheckParam( L, 2, nCrvId1)
|
||||
int nCrvId2 ;
|
||||
LuaCheckParam( L, 3, nCrvId2)
|
||||
double dLinTol = 0.1 ;
|
||||
double dLinTol = LIN_TOL_DEF ;
|
||||
if ( lua_gettop( L) >= 4)
|
||||
LuaCheckParam( L, 4, dLinTol) ;
|
||||
LuaClearStack( L) ;
|
||||
@@ -173,8 +226,10 @@ bool
|
||||
LuaInstallGdbCreateSurf( lua_State* L)
|
||||
{
|
||||
try {
|
||||
lua_register( L, "EgtSurfTmByContour", LuaCreateSurfTriMeshByContour) ;
|
||||
lua_register( L, "EgtSurfTmByFlatContour", LuaCreateSurfTriMeshByFlatContour) ;
|
||||
lua_register( L, "EgtSurfTmByRegion", LuaCreateSurfTriMeshByRegion) ;
|
||||
lua_register( L, "EgtSurfTmByExtrusion", LuaCreateSurfTriMeshByExtrusion) ;
|
||||
lua_register( L, "EgtSurfTmByRegionExtrusion", LuaCreateSurfTriMeshByRegionExtrusion) ;
|
||||
lua_register( L, "EgtSurfTmByRevolve", LuaCreateSurfTriMeshByRevolve) ;
|
||||
lua_register( L, "EgtSurfTmByScrewing", LuaCreateSurfTriMeshByScrewing) ;
|
||||
lua_register( L, "EgtSurfTmRuled", LuaCreateSurfTriMeshRuled) ;
|
||||
|
||||
Reference in New Issue
Block a user