EgtExecutor :

- aggiustamenti.
This commit is contained in:
Dario Sassi
2025-11-05 11:29:21 +01:00
parent 5a998a5d13
commit d41edd344a
2 changed files with 9 additions and 28 deletions
+7 -24
View File
@@ -1433,7 +1433,7 @@ ExeSurfTmGetEdges( int nId, int nDestGrpId, bool bSmoothAng, int* pnCount)
//----------------------------------------------------------------------------
bool
ExeSurfTmGetCurvatures( int nId, int nV, int nType, double& dK1, Vector3d& vtK1, double& dK2, Vector3d& vtK2)
ExeSurfTmGetCurvatures( int nId, int nV, double& dK1, Vector3d& vtK1, double& dK2, Vector3d& vtK2)
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, GDB_ID_NULL)
@@ -1451,36 +1451,19 @@ ExeSurfTmGetCurvatures( int nId, int nV, int nType, double& dK1, Vector3d& vtK1,
// Calcolo la Curvatura
bool bPlanar = false ;
if ( nType == STM_CURVATURE_STD) {
// Se curvatura Standard
Vector3d vtNorm = V_NULL ;
bOk = bOk && pStm->GetCurvature( nV, dK1, vtK1, dK2, vtK2, bPlanar, vtNorm) ;
}
else {
double dMinK = 0., dMaxK = 0. ;
Vector3d vtMinK = V_NULL, vtMaxK = V_NULL ;
if ( nType == STM_CURVATURE_GAUSS)
bOk = bOk && pStm->GetCurvature( nV, dMinK, vtMinK, dMaxK, vtMaxK, bPlanar, vtK1, &dK1) ;
else if ( nType == STM_CURVATURE_MEAN)
bOk = bOk && pStm->GetCurvature( nV, dMinK, vtMinK, dMaxK, vtMaxK, bPlanar, vtK1, nullptr, &dK1) ;
else if ( nType == STM_CURVATURE_NORM) {
bOk = bOk && pStm->GetCurvature( nV, dMinK, vtMinK, dMaxK, vtMaxK, bPlanar, vtK1, nullptr, nullptr, &dK1, &dK2) ;
vtK2 = vtK1 ;
}
}
Vector3d vtNorm = V_NULL ;
bOk = bOk && pStm->GetCurvature( nV, dK1, vtK1, dK2, vtK2, bPlanar, vtNorm) ;
// Se superficie localmente piana
if ( bPlanar) {
vtK1 = V_NULL ; // Sarebbe un vettore generico parallelo alla superficie ( sempre dK1 circa 0.)
vtK2 = V_NULL ; // Sarebbe un vettore generico parallelo alla superficie e perpendicolare a vtK1
// ( sempre dK2 circa 0.)
vtK1 = V_NULL ; // Generico vettore parallelo alla superficie (dK1 circa 0.)
vtK2 = V_NULL ; // generico vettore generico parallelo alla superficie e perpendicolare a vtK1 (dK2 circa 0.)
}
ExeSetModified() ;
// Se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtSurfTmGetCurvature(" + ToString( nId) +
ToString( nV) +
ToString( nType) +
string sLua = "EgtSurfTmGetCurvature(" + ToString( nId) + "," +
ToString( nV) + ")" +
" -- bOk=" + ToString( bOk) ;
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
}
+2 -4
View File
@@ -981,17 +981,15 @@ LuaSurfTmGetEdges( lua_State* L)
static int
LuaSurfTmGetCurvature( lua_State* L)
{
// 3 parametri : nStmId, nIndV
// 2 parametri : nStmId, nIndV
int nStmId ;
LuaCheckParam( L, 1, nStmId) ;
int nIndVertex ;
LuaCheckParam( L, 2, nIndVertex) ;
int nType = STM_CURVATURE_STD ;
LuaGetParam( L, 3, nType) ;
LuaClearStack( L) ;
double dK1 = 0., dK2 = 0. ;
Vector3d vtK1 = V_NULL, vtK2 = V_NULL ;
bool bOk = ExeSurfTmGetCurvatures( nStmId, nIndVertex, nType, dK1, vtK1, dK2, vtK2) ;
bool bOk = ExeSurfTmGetCurvatures( nStmId, nIndVertex, dK1, vtK1, dK2, vtK2) ;
LuaSetParam( L, bOk) ;
if ( bOk) {
LuaSetParam( L, dK1) ;