//---------------------------------------------------------------------------- // EgalTech 2014-2014 //---------------------------------------------------------------------------- // File : LUA_GdbCreateCurve.cpp Data : 07.01.15 Versione : 1.6a1 // Contenuto : Funzioni di creazione curve per LUA. // // // // Modifiche : 07.01.15 DS Creazione modulo. // // //---------------------------------------------------------------------------- //--------------------------- Include ---------------------------------------- #include "stdafx.h" #include "LUA.h" #include "/EgtDev/Include/EXeExecutor.h" #include "/EgtDev/Include/EXeConst.h" #include "/EgtDev/Include/EGkGdbConst.h" #include "/EgtDev/Include/EGkLuaAux.h" using namespace std ; //------------------------------------------------------------------------------- static int LuaCreateCurveLine( lua_State* L) { // 3 o 4 parametri : ParentId, PtIni, PtFin [, nRefType] int nParentId ; LuaCheckParam( L, 1, nParentId) Point3d ptIni ; LuaCheckParam( L, 2, ptIni) Point3d ptFin ; LuaCheckParam( L, 3, ptFin) int nRefType = RTY_DEFAULT ; LuaGetParam( L, 4, nRefType) ; LuaClearStack( L) ; // creo il segmento di retta int nId = ExeCreateCurveLine( nParentId, ptIni, ptFin, nRefType) ; // restituisco il risultato if ( nId != GDB_ID_NULL) LuaSetReturn( L, nId) ; else LuaSetReturn( L) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaCreateCurveLineEx( lua_State* L) { // 7 o 8 parametri : ParentId, PtIni, nSepI, nIdI, PtFin, nSepF, nIdF [, nRefType] int nParentId ; LuaCheckParam( L, 1, nParentId) Point3d ptIni ; LuaCheckParam( L, 2, ptIni) int nSepI ; LuaCheckParam( L, 3, nSepI) int nIdI ; LuaCheckParam( L, 4, nIdI) Point3d ptFin ; LuaCheckParam( L, 5, ptFin) int nSepF ; LuaCheckParam( L, 6, nSepF) int nIdF ; LuaCheckParam( L, 7, nIdF) int nRefType = RTY_DEFAULT ; LuaGetParam( L, 8, nRefType) ; LuaClearStack( L) ; // creo il segmento di retta int nId = ExeCreateCurveLineEx( nParentId, ptIni, nSepI, nIdI, ptFin, nSepF, nIdF, nRefType) ; // restituisco il risultato if ( nId != GDB_ID_NULL) LuaSetReturn( L, nId) ; else LuaSetReturn( L) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaCreateCurveLinePVL( lua_State* L) { // 4 o 5 parametri : ParentId, PtIni, VtDir, dLen [, nRefType] int nParentId ; LuaCheckParam( L, 1, nParentId) Point3d ptIni ; LuaCheckParam( L, 2, ptIni) Vector3d vtDir ; LuaCheckParam( L, 3, vtDir) double dLen ; LuaCheckParam( L, 4, dLen) int nRefType = RTY_DEFAULT ; LuaGetParam( L, 5, nRefType) ; LuaClearStack( L) ; // creo il segmento di retta int nId = ExeCreateCurveLinePVL( nParentId, ptIni, vtDir, dLen, nRefType) ; // restituisco il risultato if ( nId != GDB_ID_NULL) LuaSetReturn( L, nId) ; else LuaSetReturn( L) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaCreateCurveLineMinPointCurve( lua_State* L) { // 3 o 4 o 5 parametri : ParentId, PtIni, CrvId [, NearPar] [, nRefType] int nParentId ; LuaCheckParam( L, 1, nParentId) Point3d ptIni ; LuaCheckParam( L, 2, ptIni) int nCrvId ; LuaCheckParam( L, 3, nCrvId) double dNearPar = 0 ; int nRefType = RTY_DEFAULT ; if ( LuaGetParam( L, 4, dNearPar)) LuaGetParam( L, 5, nRefType) ; else LuaGetParam( L, 4, nRefType) ; LuaClearStack( L) ; // creo il segmento di retta int nId = ExeCreateCurveLineMinPointCurve( nParentId, ptIni, nCrvId, dNearPar, nRefType) ; // restituisco il risultato if ( nId != GDB_ID_NULL) LuaSetReturn( L, nId) ; else LuaSetReturn( L) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaCreateCurveCircle( lua_State* L) { // 4 o 5 parametri : ParentId, PtCen, VtN, Rad [, nRefType] int nParentId ; LuaCheckParam( L, 1, nParentId) Point3d ptCen ; LuaCheckParam( L, 2, ptCen) Vector3d vtN ; LuaCheckParam( L, 3, vtN) double dRad ; LuaCheckParam( L, 4, dRad) int nRefType = RTY_DEFAULT ; LuaGetParam( L, 5, nRefType) ; LuaClearStack( L) ; // creo l'arco int nId = ExeCreateCurveCircle( nParentId, ptCen, vtN, dRad, nRefType) ; // restituisco il risultato if ( nId != GDB_ID_NULL) LuaSetReturn( L, nId) ; else LuaSetReturn( L) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaCreateCurveCircleCPN( lua_State* L) { // 4 o 5 parametri : ParentId, PtCen, PtOn, VtN [, nRefType] int nParentId ; LuaCheckParam( L, 1, nParentId) Point3d ptCen ; LuaCheckParam( L, 2, ptCen) Point3d ptOn ; LuaCheckParam( L, 3, ptOn) Vector3d vtN ; LuaCheckParam( L, 4, vtN) int nRefType = RTY_DEFAULT ; LuaGetParam( L, 5, nRefType) ; LuaClearStack( L) ; // creo l'arco int nId = ExeCreateCurveCircleCPN( nParentId, ptCen, ptOn, vtN, nRefType) ; // restituisco il risultato if ( nId != GDB_ID_NULL) LuaSetReturn( L, nId) ; else LuaSetReturn( L) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaCreateCurveCircleCPNEx( lua_State* L) { // 6 o 7 parametri : ParentId, PtCen, PtOn, nSepO, nIdO, VtN [, nRefType] int nParentId ; LuaCheckParam( L, 1, nParentId) Point3d ptCen ; LuaCheckParam( L, 2, ptCen) Point3d ptOn ; LuaCheckParam( L, 3, ptOn) int nSepO ; LuaCheckParam( L, 4, nSepO) int nIdO ; LuaCheckParam( L, 5, nIdO) Vector3d vtN ; LuaCheckParam( L, 6, vtN) int nRefType = RTY_DEFAULT ; LuaGetParam( L, 7, nRefType) ; LuaClearStack( L) ; // creo l'arco int nId = ExeCreateCurveCircleCPNEx( nParentId, ptCen, ptOn, nSepO, nIdO, vtN, nRefType) ; // restituisco il risultato if ( nId != GDB_ID_NULL) LuaSetReturn( L, nId) ; else LuaSetReturn( L) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaCreateCurveCircle3P( lua_State* L) { // 4 o 5 parametri : ParentId, PtP1, PtP2, PtP3 [, nRefType] int nParentId ; LuaCheckParam( L, 1, nParentId) Point3d ptP1 ; LuaCheckParam( L, 2, ptP1) Point3d ptP2 ; LuaCheckParam( L, 3, ptP2) Point3d ptP3 ; LuaCheckParam( L, 4, ptP3) int nRefType = RTY_DEFAULT ; LuaGetParam( L, 5, nRefType) ; LuaClearStack( L) ; // creo l'arco int nId = ExeCreateCurveCircle3P( nParentId, ptP1, ptP2, ptP3, nRefType) ; // restituisco il risultato if ( nId != GDB_ID_NULL) LuaSetReturn( L, nId) ; else LuaSetReturn( L) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaCreateCurveArc( lua_State* L) { // 7 o 8 parametri : ParentId, PtCen, VtN, Rad, VtS, AngCenDeg, DeltaN [, nRefType] int nParentId ; LuaCheckParam( L, 1, nParentId) Point3d ptCen ; LuaCheckParam( L, 2, ptCen) Vector3d vtN ; LuaCheckParam( L, 3, vtN) double dRad ; LuaCheckParam( L, 4, dRad) Vector3d vtS ; LuaCheckParam( L, 5, vtS) double dAngCenDeg ; LuaCheckParam( L, 6, dAngCenDeg) double dDeltaN ; LuaCheckParam( L, 7, dDeltaN) int nRefType = RTY_DEFAULT ; LuaGetParam( L, 8, nRefType) ; LuaClearStack( L) ; // creo l'arco int nId = ExeCreateCurveArc( nParentId, ptCen, vtN, dRad, vtS, dAngCenDeg, dDeltaN, nRefType) ; // restituisco il risultato if ( nId != GDB_ID_NULL) LuaSetReturn( L, nId) ; else LuaSetReturn( L) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaCreateCurveArcC2PN( lua_State* L) { // 5 o 6 parametri : ParentId, PtCen, PtStart, PtNearEnd, VtNorm [, nRefType] int nParentId ; LuaCheckParam( L, 1, nParentId) Point3d ptCen ; LuaCheckParam( L, 2, ptCen) Point3d ptStart ; LuaCheckParam( L, 3, ptStart) Point3d ptNearEnd ; LuaCheckParam( L, 4, ptNearEnd) Vector3d vtNorm ; LuaCheckParam( L, 5, vtNorm) int nRefType = RTY_DEFAULT ; LuaGetParam( L, 6, nRefType) ; LuaClearStack( L) ; // creo l'arco int nId = ExeCreateCurveArcC2PN( nParentId, ptCen, ptStart, ptNearEnd, vtNorm, nRefType) ; // restituisco il risultato if ( nId != GDB_ID_NULL) LuaSetReturn( L, nId) ; else LuaSetReturn( L) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaCreateCurveArcC2PNEx( lua_State* L) { // 7 o 8 parametri : ParentId, PtCen, PtStart, nSepS, nIdS, PtNearEnd, VtNorm [, nRefType] int nParentId ; LuaCheckParam( L, 1, nParentId) Point3d ptCen ; LuaCheckParam( L, 2, ptCen) Point3d ptStart ; LuaCheckParam( L, 3, ptStart) int nSepS ; LuaCheckParam( L, 4, nSepS) int nIdS ; LuaCheckParam( L, 5, nIdS) Point3d ptNearEnd ; LuaCheckParam( L, 6, ptNearEnd) Vector3d vtNorm ; LuaCheckParam( L, 7, vtNorm) int nRefType = RTY_DEFAULT ; LuaGetParam( L, 8, nRefType) ; LuaClearStack( L) ; // creo l'arco int nId = ExeCreateCurveArcC2PNEx( nParentId, ptCen, ptStart, nSepS, nIdS, ptNearEnd, vtNorm, nRefType) ; // restituisco il risultato if ( nId != GDB_ID_NULL) LuaSetReturn( L, nId) ; else LuaSetReturn( L) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaCreateCurveArc3P( lua_State* L) { // 4 o 5 parametri : ParentId, PtP1, PtP2, PtP3 [, nRefType] int nParentId ; LuaCheckParam( L, 1, nParentId) Point3d ptP1 ; LuaCheckParam( L, 2, ptP1) Point3d ptP2 ; LuaCheckParam( L, 3, ptP2) Point3d ptP3 ; LuaCheckParam( L, 4, ptP3) int nRefType = RTY_DEFAULT ; LuaGetParam( L, 5, nRefType) ; LuaClearStack( L) ; // creo l'arco int nId = ExeCreateCurveArc3P( nParentId, ptP1, ptP2, ptP3, nRefType) ; // restituisco il risultato if ( nId != GDB_ID_NULL) LuaSetReturn( L, nId) ; else LuaSetReturn( L) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaCreateCurveArc2PVN( lua_State* L) { // 5 o 6 parametri : ParentId, PtStart, PtEnd, VtDirS, VtNorm [, nRefType] int nParentId ; LuaCheckParam( L, 1, nParentId) Point3d ptStart ; LuaCheckParam( L, 2, ptStart) Point3d ptEnd ; LuaCheckParam( L, 3, ptEnd) Vector3d vtDirS ; LuaCheckParam( L, 4, vtDirS) Vector3d vtNorm ; LuaCheckParam( L, 5, vtNorm) int nRefType = RTY_DEFAULT ; LuaGetParam( L, 6, nRefType) ; LuaClearStack( L) ; // creo l'arco int nId = ExeCreateCurveArc2PVN( nParentId, ptStart, ptEnd, vtDirS, vtNorm, nRefType) ; // restituisco il risultato if ( nId != GDB_ID_NULL) LuaSetReturn( L, nId) ; else LuaSetReturn( L) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaCreateCurveArc2PVNEx( lua_State* L) { // 7 o 8 parametri : ParentId, PtStart, PtEnd, nSepE, nIdE, VtDirS, VtNorm [, nRefType] int nParentId ; LuaCheckParam( L, 1, nParentId) Point3d ptStart ; LuaCheckParam( L, 2, ptStart) Point3d ptEnd ; LuaCheckParam( L, 3, ptEnd) int nSepE ; LuaCheckParam( L, 4, nSepE) int nIdE ; LuaCheckParam( L, 5, nIdE) Vector3d vtDirS ; LuaCheckParam( L, 6, vtDirS) Vector3d vtNorm ; LuaCheckParam( L, 7, vtNorm) int nRefType = RTY_DEFAULT ; LuaGetParam( L, 8, nRefType) ; LuaClearStack( L) ; // creo l'arco int nId = ExeCreateCurveArc2PVNEx( nParentId, ptStart, ptEnd, nSepE, nIdE, vtDirS, vtNorm, nRefType) ; // restituisco il risultato if ( nId != GDB_ID_NULL) LuaSetReturn( L, nId) ; else LuaSetReturn( L) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaCreateCurveFillet( lua_State* L) { // 8 o 9 parametri : ParentId, nCrv1, PtNear1, nCrv2, PtNear2, VtNorm, dRad, bTrim [, nRefType] int nParentId ; LuaCheckParam( L, 1, nParentId) int nCrv1 ; LuaCheckParam( L, 2, nCrv1) Point3d ptNear1 ; LuaCheckParam( L, 3, ptNear1) int nCrv2 ; LuaCheckParam( L, 4, nCrv2) Point3d ptNear2 ; LuaCheckParam( L, 5, ptNear2) Vector3d vtNorm ; LuaCheckParam( L, 6, vtNorm) double dRad ; LuaCheckParam( L, 7, dRad) bool bTrim ; LuaCheckParam( L, 8, bTrim) int nRefType = RTY_DEFAULT ; LuaGetParam( L, 9, nRefType) ; LuaClearStack( L) ; // creo l'arco di fillet int nId = ExeCreateCurveFillet( nParentId, nCrv1, ptNear1, nCrv2, ptNear2, vtNorm, dRad, bTrim, nRefType) ; // restituisco il risultato if ( nId != GDB_ID_NULL) LuaSetReturn( L, nId) ; else LuaSetReturn( L) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaCreateCurveChamfer( lua_State* L) { // 8 o 9 parametri : ParentId, nCrv1, PtNear1, nCrv2, PtNear2, VtNorm, dDist, bTrim [, nRefType] int nParentId ; LuaCheckParam( L, 1, nParentId) int nCrv1 ; LuaCheckParam( L, 2, nCrv1) Point3d ptNear1 ; LuaCheckParam( L, 3, ptNear1) int nCrv2 ; LuaCheckParam( L, 4, nCrv2) Point3d ptNear2 ; LuaCheckParam( L, 5, ptNear2) Vector3d vtNorm ; LuaCheckParam( L, 6, vtNorm) double dDist ; LuaCheckParam( L, 7, dDist) bool bTrim ; LuaCheckParam( L, 8, bTrim) int nRefType = RTY_DEFAULT ; LuaGetParam( L, 9, nRefType) ; LuaClearStack( L) ; // creo l'arco di fillet int nId = ExeCreateCurveChamfer( nParentId, nCrv1, ptNear1, nCrv2, ptNear2, vtNorm, dDist, bTrim, nRefType) ; // restituisco il risultato if ( nId != GDB_ID_NULL) LuaSetReturn( L, nId) ; else LuaSetReturn( L) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaCreateCurveBezier( lua_State* L) { // 3 o 4 parametri : ParentId, Degree, CtrlPnts [, nRefType] int nParentId ; LuaCheckParam( L, 1, nParentId) int nDegree ; LuaCheckParam( L, 2, nDegree) PNTVECTOR vPnt ; LuaCheckParam( L, 3, vPnt) int nRefType = RTY_DEFAULT ; LuaGetParam( L, 4, nRefType) ; LuaClearStack( L) ; // creo la curva int nId = ExeCreateCurveBezier( nParentId, nDegree, vPnt, nRefType) ; // restituisco il risultato if ( nId != GDB_ID_NULL) LuaSetReturn( L, nId) ; else LuaSetReturn( L) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaCreateCurveBezierRational( lua_State* L) { // 3 o 4 parametri : ParentId, Degree, CtrlPntWs [, nRefType] int nParentId ; LuaCheckParam( L, 1, nParentId) int nDegree ; LuaCheckParam( L, 2, nDegree) PNTUVECTOR vPntW ; LuaCheckParam( L, 3, vPntW) int nRefType = RTY_DEFAULT ; LuaGetParam( L, 4, nRefType) ; LuaClearStack( L) ; // creo la curva int nId = ExeCreateCurveBezierRational( nParentId, nDegree, vPntW, nRefType) ; // restituisco il risultato if ( nId != GDB_ID_NULL) LuaSetReturn( L, nId) ; else LuaSetReturn( L) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaCreateCurveBezierFromArc( lua_State* L) { // 2 o 3 parametri : ParentId, ArcId[ , Erase] int nParentId ; LuaCheckParam( L, 1, nParentId) int nArcId ; LuaCheckParam( L, 2, nArcId) bool bErase = true ; LuaGetParam( L, 3, bErase) ; LuaClearStack( L) ; // creo la curva int nId = ExeCreateCurveBezierFromArc( nParentId, nArcId, bErase) ; // restituisco il risultato if ( nId != GDB_ID_NULL) LuaSetReturn( L, nId) ; else LuaSetReturn( L) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaCreateCurveCompo( lua_State* L) { // 2 o 3 parametri : ParentId, nIds [, Erase] int nParentId ; LuaCheckParam( L, 1, nParentId) INTVECTOR vIds ; LuaCheckParam( L, 2, vIds) bool bErase = true ; LuaGetParam( L, 3, bErase) ; LuaClearStack( L) ; // creo la curva composita int nId = ExeCreateCurveCompo( nParentId, vIds, bErase) ; // restituisco il risultato if ( nId != GDB_ID_NULL) LuaSetReturn( L, nId) ; else LuaSetReturn( L) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaCreateCurveCompoByChain( lua_State* L) { // 3 o 4 o 5 parametri : ParentId, nIds, PtNear [, Erase] [, nRefType] int nParentId ; LuaCheckParam( L, 1, nParentId) INTVECTOR vIds ; LuaCheckParam( L, 2, vIds) Point3d ptNear ; LuaCheckParam( L, 3, ptNear) bool bErase = true ; int nRefType = RTY_DEFAULT ; if ( LuaGetParam( L, 4, bErase)) LuaGetParam( L, 5, nRefType) ; else LuaGetParam( L, 4, nRefType) ; LuaClearStack( L) ; // creo la curva composita int nCount = 0 ; int nId = ExeCreateCurveCompoByChain( nParentId, vIds, ptNear, bErase, nRefType, &nCount) ; // restituisco il risultato if ( nId != GDB_ID_NULL) LuaSetReturn( L, nId) ; else LuaSetReturn( L) ; LuaSetReturn( L, nCount) ; return 2 ; } //------------------------------------------------------------------------------- static int LuaCreateCurveCompoFromPoints( lua_State* L) { // 2 o 3 parametri : ParentId, ptPs [, nRefType] int nParentId ; LuaCheckParam( L, 1, nParentId) PNTVECTOR vPnt ; LuaCheckParam( L, 2, vPnt) int nRefType = RTY_DEFAULT ; LuaGetParam( L, 3, nRefType) ; LuaClearStack( L) ; PolyLine PL ; // creo una polilinea a partire dai punti for ( size_t i = 0 ; i < vPnt.size() ; ++ i) PL.AddUPoint( 0, vPnt[i]) ; // creo la curva composita int nId = ExeCreateCurveCompoFromPoints( nParentId, PL, nRefType) ; // restituisco il risultato if ( nId != GDB_ID_NULL) LuaSetReturn( L, nId) ; else LuaSetReturn( L) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaCreateCurveCompoFromPointBulges( lua_State* L) { // 2 o 3 parametri : ParentId, ptPBs [, nRefType] int nParentId ; LuaCheckParam( L, 1, nParentId) PNTUVECTOR vPntB ; LuaCheckParam( L, 2, vPntB) int nRefType = RTY_DEFAULT ; LuaGetParam( L, 3, nRefType) ; LuaClearStack( L) ; // creo un poliarco a partire dai punti con bulge PolyArc PA ; for ( size_t i = 0 ; i < vPntB.size() ; ++ i) PA.AddUPoint( 0, vPntB[i].first, vPntB[i].second) ; // creo la curva composita int nId = ExeCreateCurveCompoFromPointBulges( nParentId, PA, nRefType) ; // restituisco il risultato if ( nId != GDB_ID_NULL) LuaSetReturn( L, nId) ; else LuaSetReturn( L) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaCreateCurveCompoByApprox( lua_State* L) { // 3 o 4 parametri : ParentId, nSouId, nArcsVsLines [, dLinTol] int nParentId ; LuaCheckParam( L, 1, nParentId) int nSouId ; LuaCheckParam( L, 2, nSouId) int nTemp ; LuaCheckParam( L, 3, nTemp) bool bArcsVsLines = ( nTemp != 0) ; double dLinTol = 0.01 ; LuaGetParam( L, 4, dLinTol) ; LuaClearStack( L) ; // creo la curva composita int nId = ExeCreateCurveCompoByApprox( nParentId, nSouId, bArcsVsLines, dLinTol) ; // restituisco il risultato if ( nId != GDB_ID_NULL) LuaSetReturn( L, nId) ; else LuaSetReturn( L) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaCreateRectangle3P( lua_State* L) { // 4 o 5 parametri : ParentId, PtIni, PtCross, PtDir [, nRefType] int nParentId ; LuaCheckParam( L, 1, nParentId) Point3d ptIni ; LuaCheckParam( L, 2, ptIni) Point3d ptCross ; LuaCheckParam( L, 3, ptCross) Point3d ptDir ; LuaCheckParam( L, 4, ptDir) int nRefType = RTY_DEFAULT ; LuaGetParam( L, 5, nRefType) ; LuaClearStack( L) ; // creo il poligono int nId = ExeCreateRectangle3P( nParentId, ptIni, ptCross, ptDir, nRefType) ; // restituisco il risultato if ( nId != GDB_ID_NULL) LuaSetReturn( L, nId) ; else LuaSetReturn( L) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaCreatePolygonFromRadius( lua_State* L) { // 5 o 6 parametri : ParentId, nNumSides, PtCen, PtCorn, VtN [, nRefType] int nParentId ; LuaCheckParam( L, 1, nParentId) int nNumSides ; LuaCheckParam( L, 2, nNumSides) Point3d PtCen ; LuaCheckParam( L, 3, PtCen) Point3d PtCorn ; LuaCheckParam( L, 4, PtCorn) Vector3d vtN ; LuaCheckParam( L, 5, vtN) int nRefType = RTY_DEFAULT ; LuaGetParam( L, 6, nRefType) ; LuaClearStack( L) ; // creo il poligono int nId = ExeCreatePolygonFromRadius( nParentId, nNumSides, PtCen, PtCorn, vtN, nRefType) ; // restituisco il risultato if ( nId != GDB_ID_NULL) LuaSetReturn( L, nId) ; else LuaSetReturn( L) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaCreatePolygonFromApothem( lua_State* L) { // 5 o 6 parametri : ParentId, nNumSides, PtCen, PtMid, VtN [, nRefType] int nParentId ; LuaCheckParam( L, 1, nParentId) int nNumSides ; LuaCheckParam( L, 2, nNumSides) Point3d PtCen ; LuaCheckParam( L, 3, PtCen) Point3d PtMid ; LuaCheckParam( L, 4, PtMid) Vector3d vtN ; LuaCheckParam( L, 5, vtN) int nRefType = RTY_DEFAULT ; LuaGetParam( L, 6, nRefType) ; LuaClearStack( L) ; // creo il poligono int nId = ExeCreatePolygonFromApothem( nParentId, nNumSides, PtCen, PtMid, vtN, nRefType) ; // restituisco il risultato if ( nId != GDB_ID_NULL) LuaSetReturn( L, nId) ; else LuaSetReturn( L) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaCreatePolygonFromSide( lua_State* L) { // 5 o 6 parametri : ParentId, nNumSides, PtIni, PtFin, VtN [, nRefType] int nParentId ; LuaCheckParam( L, 1, nParentId) int nNumSides ; LuaCheckParam( L, 2, nNumSides) Point3d ptIni ; LuaCheckParam( L, 3, ptIni) Point3d ptFin ; LuaCheckParam( L, 4, ptFin) Vector3d vtN ; LuaCheckParam( L, 5, vtN) int nRefType = RTY_DEFAULT ; LuaGetParam( L, 6, nRefType) ; LuaClearStack( L) ; // creo il poligono int nId = ExeCreatePolygonFromSide( nParentId, nNumSides, ptIni, ptFin, vtN, nRefType) ; // restituisco il risultato if ( nId != GDB_ID_NULL) LuaSetReturn( L, nId) ; else LuaSetReturn( L) ; return 1 ; } //------------------------------------------------------------------------------- bool LuaInstallGdbCreateCurve( LuaMgr& luaMgr) { bool bOk = ( &luaMgr != nullptr) ; bOk = bOk && luaMgr.RegisterFunction( "EgtLine", LuaCreateCurveLine) ; bOk = bOk && luaMgr.RegisterFunction( "EgtLineEx", LuaCreateCurveLineEx) ; bOk = bOk && luaMgr.RegisterFunction( "EgtLinePVL", LuaCreateCurveLinePVL) ; bOk = bOk && luaMgr.RegisterFunction( "EgtLineMinPointCurve", LuaCreateCurveLineMinPointCurve) ; bOk = bOk && luaMgr.RegisterFunction( "EgtCircle", LuaCreateCurveCircle) ; bOk = bOk && luaMgr.RegisterFunction( "EgtCircleCPN", LuaCreateCurveCircleCPN) ; bOk = bOk && luaMgr.RegisterFunction( "EgtCircleCPNEx", LuaCreateCurveCircleCPNEx) ; bOk = bOk && luaMgr.RegisterFunction( "EgtCircle3P", LuaCreateCurveCircle3P) ; bOk = bOk && luaMgr.RegisterFunction( "EgtArc", LuaCreateCurveArc) ; bOk = bOk && luaMgr.RegisterFunction( "EgtArcC2PN", LuaCreateCurveArcC2PN) ; bOk = bOk && luaMgr.RegisterFunction( "EgtArcC2PNEx", LuaCreateCurveArcC2PNEx) ; bOk = bOk && luaMgr.RegisterFunction( "EgtArc3P", LuaCreateCurveArc3P) ; bOk = bOk && luaMgr.RegisterFunction( "EgtArc2PVN", LuaCreateCurveArc2PVN) ; bOk = bOk && luaMgr.RegisterFunction( "EgtArc2PVNEx", LuaCreateCurveArc2PVNEx) ; bOk = bOk && luaMgr.RegisterFunction( "EgtCurveFillet", LuaCreateCurveFillet) ; bOk = bOk && luaMgr.RegisterFunction( "EgtCurveChamfer", LuaCreateCurveChamfer) ; bOk = bOk && luaMgr.RegisterFunction( "EgtCurveBezier", LuaCreateCurveBezier) ; bOk = bOk && luaMgr.RegisterFunction( "EgtCurveBezierRat", LuaCreateCurveBezierRational) ; bOk = bOk && luaMgr.RegisterFunction( "EgtCurveBezierFromArc", LuaCreateCurveBezierFromArc) ; bOk = bOk && luaMgr.RegisterFunction( "EgtCurveCompo", LuaCreateCurveCompo) ; bOk = bOk && luaMgr.RegisterFunction( "EgtCurveCompoByChain", LuaCreateCurveCompoByChain) ; bOk = bOk && luaMgr.RegisterFunction( "EgtCurveCompoFromPoints", LuaCreateCurveCompoFromPoints) ; bOk = bOk && luaMgr.RegisterFunction( "EgtCurveCompoFromPointBulges", LuaCreateCurveCompoFromPointBulges) ; bOk = bOk && luaMgr.RegisterFunction( "EgtCurveCompoByApprox", LuaCreateCurveCompoByApprox) ; bOk = bOk && luaMgr.RegisterFunction( "EgtRectangle3P", LuaCreateRectangle3P) ; bOk = bOk && luaMgr.RegisterFunction( "EgtPolygonFromRadius", LuaCreatePolygonFromRadius) ; bOk = bOk && luaMgr.RegisterFunction( "EgtPolygonFromApothem", LuaCreatePolygonFromApothem) ; bOk = bOk && luaMgr.RegisterFunction( "EgtPolygonFromSide", LuaCreatePolygonFromSide) ; return bOk ; }