EgtExecutor :
- rimozione codici di test. - modifiche parametri LuaCreateSurfTmSwept.
This commit is contained in:
+29
-46
@@ -34,11 +34,6 @@
|
||||
#include "/EgtDev/Include/EgtPointerOwner.h"
|
||||
#include "/EgtDev/Include/EGkExtText.h"
|
||||
|
||||
// TEMP *********************
|
||||
#include "EgtDev/EgtGeomKernel/RotationMinimizeFrame.h" // togliere !
|
||||
#include "EgtDev/EgtGeomKernel/RotationMinimizeFrame.cpp"
|
||||
// **************************
|
||||
|
||||
using namespace std ;
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
@@ -1257,7 +1252,7 @@ ExeCreateSurfTmRectSwept( int nParentId, double dDimH, double dDimV, double dBev
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
int
|
||||
ExeCreateSurfTmSwept( int nParentId, int nSectId, int nGuideId, bool bCapEnds, double dLinTol)
|
||||
ExeCreateSurfTmSwept( int nParentId, int nSectId, int nGuideId, bool bCapEnds, double dLinTol, Vector3d* vtStatic)
|
||||
{
|
||||
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
||||
VERIFY_GEOMDB( pGeomDB, GDB_ID_NULL)
|
||||
@@ -1266,52 +1261,40 @@ ExeCreateSurfTmSwept( int nParentId, int nSectId, int nGuideId, bool bCapEnds, d
|
||||
// recupero il riferimento locale
|
||||
Frame3d frLoc ;
|
||||
bOk = bOk && pGeomDB->GetGroupGlobFrame( nParentId, frLoc) ;
|
||||
// recupero la sezione in locale
|
||||
CurveLocal CrvSect( pGeomDB, nSectId, frLoc) ;
|
||||
bOk = bOk && ( CrvSect.Get() != nullptr) ;
|
||||
// recupero la guida in locale
|
||||
CurveLocal CrvGuide( pGeomDB, nGuideId, frLoc) ;
|
||||
bOk = bOk && ( CrvGuide.Get() != nullptr) ;
|
||||
// creo la superficie trimesh
|
||||
// inizializzazione superficie e suo Id
|
||||
ISurfTriMesh* pSTM = nullptr ;
|
||||
pSTM = ( bOk ? GetSurfTriMeshSwept( CrvSect, CrvGuide, bCapEnds, dLinTol) : nullptr) ;
|
||||
// inserisco la superficie trimesh nel DB
|
||||
int nNewId = ( bOk ? pGeomDB->AddGeoObj( GDB_ID_NULL, nParentId, pSTM) : GDB_ID_NULL) ;
|
||||
int nNewId = GDB_ID_NULL ;
|
||||
// recupero il tipo di entità della sezione
|
||||
int nSecType = pGeomDB->GetGeoType( nSectId) ;
|
||||
|
||||
|
||||
/* RIMUOVERE ! */
|
||||
PtrOwner<ICurve> pCrv( CrvGuide.Get()->Clone()) ;
|
||||
if ( IsNull( pCrv))
|
||||
return false ;
|
||||
Point3d ptStart ; Vector3d vtTan ;
|
||||
if ( ! pCrv->GetPointD1D2( 0., ICurve::FROM_MINUS, ptStart, &vtTan))
|
||||
return false ;
|
||||
Frame3d frStart ;
|
||||
frStart.Set( ptStart, vtTan) ; // la tangente è la Z del frame
|
||||
double dStep = 5 ;
|
||||
RotationMinimizeFrame RMF( pCrv, frStart, dStep) ;
|
||||
FRAME3DVECTOR vRMF ;
|
||||
if ( ! RMF.GetFrames( vRMF))
|
||||
return false ;
|
||||
// disegno i frames ricavati
|
||||
for ( int i = 0 ; i < int( vRMF.size()) ; ++ i) {
|
||||
IGeoFrame3d* frCurr( CreateGeoFrame3d()) ;
|
||||
frCurr->Set( vRMF[i]) ;
|
||||
/*
|
||||
Vector3d vtH = vRMF[i].VersZ() ;
|
||||
vtH.z = 0 ;
|
||||
vtH.Normalize() ;
|
||||
Frame3d frCCCCCC ; frCCCCCC.Set( vRMF[i].Orig(), vtH, Z_AX ^ vtH) ;
|
||||
frCurr->Set( frCCCCCC) ;
|
||||
*/
|
||||
pGeomDB->AddGeoObj( GDB_ID_NULL, 3, frCurr->Clone()) ;
|
||||
delete( frCurr) ;
|
||||
// controllo se la sezione è definita da una curva
|
||||
if ( nSecType == CRV_LINE || nSecType == CRV_ARC ||
|
||||
nSecType == CRV_BEZIER || nSecType == CRV_COMPO) {
|
||||
// recupero la sezione in locale
|
||||
CurveLocal CrvSect( pGeomDB, nSectId, frLoc) ;
|
||||
bOk = bOk && ( CrvSect.Get() != nullptr) ;
|
||||
// calcolo la Swept
|
||||
pSTM = ( bOk ? GetSurfTriMeshSwept( CrvSect, CrvGuide, bCapEnds, dLinTol, vtStatic) : nullptr) ;
|
||||
// inserisco la superficie trimesh nel DB
|
||||
nNewId = ( bOk ? pGeomDB->AddGeoObj( GDB_ID_NULL, nParentId, pSTM) : GDB_ID_NULL) ;
|
||||
}
|
||||
// controllo se la sezione è definita da una regione piana
|
||||
else if ( nSecType == SRF_FLATRGN) {
|
||||
// recupero la sezione e la porto nel frame corrente
|
||||
ISurfFlatRegion* pSfrSec = GetSurfFlatRegion( pGeomDB->GetGeoObj( nSectId)) ;
|
||||
Frame3d frSec ;
|
||||
if ( pSfrSec != nullptr && pGeomDB->GetGlobFrame( nSectId, frSec) &&
|
||||
pSfrSec->LocToLoc( frSec, frLoc)) {
|
||||
// calcolo la Swept
|
||||
pSTM = ( bOk ? GetSurfTriMeshSwept( pSfrSec, CrvGuide, bCapEnds, dLinTol, vtStatic) : nullptr) ;
|
||||
// inserisco la superficie trimesh nel DB
|
||||
nNewId = ( bOk ? pGeomDB->AddGeoObj( GDB_ID_NULL, nParentId, pSTM) : GDB_ID_NULL) ;
|
||||
}
|
||||
delete( pSfrSec) ;
|
||||
}
|
||||
/* RIMUOVERE ! */
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
ExeSetModified() ;
|
||||
// se richiesto, salvo il comando Lua equivalente
|
||||
|
||||
Reference in New Issue
Block a user