EgtExecutor :
- aggiunta funzione exe e lua CreateSurfTmByPolygon.
This commit is contained in:
@@ -1038,6 +1038,47 @@ ExeCreateSurfTmRectangle( int nParentId, const Point3d& ptO, const Point3d& ptL,
|
||||
return nNewId ;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
int
|
||||
ExeCreateSurfTmByPolygon( int nParentId, const PolyLine& PL, int nRefType)
|
||||
{
|
||||
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
||||
VERIFY_GEOMDB( pGeomDB, GDB_ID_NULL)
|
||||
nParentId = AdjustId( nParentId) ;
|
||||
bool bOk = true ;
|
||||
// recupero il riferimento del gruppo destinazione
|
||||
Frame3d frDest ;
|
||||
bOk = bOk && pGeomDB->GetGroupGlobFrame( nParentId, frDest) ;
|
||||
// creo la superficie trimesh
|
||||
PtrOwner<ISurfTriMesh> pSTM( CreateSurfTriMesh()) ;
|
||||
bOk = bOk && ! IsNull( pSTM) ;
|
||||
bOk = bOk && pSTM->CreateByFlatContour( PL) ;
|
||||
// eventuale trasformazione per riferimento di espressione dei punti
|
||||
if ( bOk && nRefType == RTY_GLOB)
|
||||
pSTM->ToLoc( frDest) ;
|
||||
else if ( bOk && nRefType == RTY_GRID)
|
||||
pSTM->LocToLoc( pGeomDB->GetGridFrame(), frDest) ;
|
||||
// inserisco la superficie nel DB
|
||||
int nNewId = ( bOk ? pGeomDB->AddGeoObj( GDB_ID_NULL, nParentId, Release( pSTM)) : GDB_ID_NULL) ;
|
||||
ExeSetModified() ;
|
||||
// se richiesto, salvo il comando Lua equivalente
|
||||
if ( IsCmdLog()) {
|
||||
string sPnt ;
|
||||
Point3d ptP ;
|
||||
if ( PL.GetFirstPoint( ptP))
|
||||
sPnt += "{" + ToString( ptP) + "}" ;
|
||||
while ( PL.GetNextPoint( ptP))
|
||||
sPnt += ",{" + ToString( ptP) + "}" ;
|
||||
string sLua = "EgtSurfTmByPolygon(" + IdToString( nParentId) + ",{" +
|
||||
sPnt + "}," +
|
||||
RefTypeToString( nRefType) + ")" +
|
||||
" -- Id=" + ToString( nNewId) ;
|
||||
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
|
||||
}
|
||||
// restituisco l'identificativo della nuova entità
|
||||
return nNewId ;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
int
|
||||
ExeCreateSurfTmByFlatContour( int nParentId, int nCrvId, double dLinTol)
|
||||
|
||||
Reference in New Issue
Block a user