diff --git a/EXE_GdbCreateSurf.cpp b/EXE_GdbCreateSurf.cpp index c60a2d5..66658d9 100644 --- a/EXE_GdbCreateSurf.cpp +++ b/EXE_GdbCreateSurf.cpp @@ -1,4 +1,4 @@ -//---------------------------------------------------------------------------- +//---------------------------------------------------------------------------- // EgalTech 2014-2015 //---------------------------------------------------------------------------- // File : EXE_GdbCreateSurf.cpp Data : 04.05.15 Versione : 1.6e1 @@ -85,7 +85,7 @@ ExeCreateSurfFrRectangle( int nParentId, const Point3d& ptIni, const Point3d& pt " -- Id=" + ToString( nNewId) ; LOG_INFO( GetCmdLogger(), sLua.c_str()) ; } - // restituisco l'identificativo della nuova entità + // restituisco l'identificativo della nuova entità return nNewId ; } @@ -136,7 +136,7 @@ ExeCreateSurfFrRectangle3P( int nParentId, const Point3d& ptIni, " -- Id=" + ToString( nNewId) ; LOG_INFO( GetCmdLogger(), sLua.c_str()) ; } - // restituisco l'identificativo della nuova entità + // restituisco l'identificativo della nuova entità return nNewId ; } @@ -185,7 +185,7 @@ ExeCreateSurfFrStadium( int nParentId, const Point3d& ptIni, const Point3d& ptCr " -- Id=" + ToString( nNewId) ; LOG_INFO( GetCmdLogger(), sLua.c_str()) ; } - // restituisco l'identificativo della nuova entità + // restituisco l'identificativo della nuova entità return nNewId ; } @@ -202,7 +202,7 @@ ExeCreateSurfFrDisk( int nParentId, const Point3d& ptOrig, double dRad, int nRef // porto in locale il punto e calcolo la normale in locale Point3d ptOrigL = GetPointLocal( pGeomDB, ptOrig, nRefType, frLoc) ; Vector3d vtNL = GetVectorLocal( pGeomDB, Z_AX, nRefType, frLoc) ; - // calcolo riferimento per l'entità + // calcolo riferimento per l'entità Frame3d frEnt ; bOk = bOk && frEnt.Set( ptOrigL, vtNL) ; // creo il disco nel suo riferimento intrinseco @@ -222,7 +222,7 @@ ExeCreateSurfFrDisk( int nParentId, const Point3d& ptOrig, double dRad, int nRef " -- Id=" + ToString( nNewId) ; LOG_INFO( GetCmdLogger(), sLua.c_str()) ; } - // restituisco l'identificativo della nuova entità + // restituisco l'identificativo della nuova entità return nNewId ; } @@ -266,7 +266,7 @@ ExeCreateSurfFrFatCurve( int nParentId, int nCrvId, double dRad, bool bSquaredEn " -- Id=" + ToString( nNewId) ; LOG_INFO( GetCmdLogger(), sLua.c_str()) ; } - // restituisco l'identificativo della nuova entità + // restituisco l'identificativo della nuova entità return nNewId ; } @@ -322,7 +322,7 @@ MyCreateSurfFlatRegion( int nParentId, const INTVECTOR& vCrvIds, int* pnCount) // recupero la prossima superficie pSfr = SfrCntr.GetSurf() ; } - // restituisco l'identificativo della prima nuova entità + // restituisco l'identificativo della prima nuova entità if ( pnCount != nullptr) *pnCount = nCount ; return nFirstId ; @@ -345,7 +345,7 @@ ExeCreateSurfFlatRegion( int nParentId, const INTVECTOR& vCrvIds, int* pnCount) " -- Id=" + ToString( nFirstId) + ",Nbr=" + ToString( nCount) ; LOG_INFO( GetCmdLogger(), sLua.c_str()) ; } - // restituisco l'identificativo della nuova entità + // restituisco l'identificativo della nuova entità return nFirstId ; } @@ -394,7 +394,7 @@ ExeCreateSurfTmPlaneInBBox( int nParentId, const Point3d& ptP, const Vector3d& v " -- Id=" + ToString( nNewId) ; LOG_INFO( GetCmdLogger(), sLua.c_str()) ; } - // restituisco l'identificativo della nuova entità + // restituisco l'identificativo della nuova entità return nNewId ; } @@ -455,7 +455,7 @@ MyCreateSewPolygon( ISurfTriMesh* pStm, const Polygon3d& Polyg) // verifico esistenza superficie if ( pStm == nullptr) return false ; - // se poligono vuoto, non devo fare alcunché + // se poligono vuoto, non devo fare alcunché if ( Polyg.GetSideCount() == 0) return true ; // creo la superficie trimesh del poligono @@ -585,7 +585,7 @@ ExeCreateSurfTmConvexHullInBBox( int nParentId, int nId, const BBox3d& b3Box, in " -- Id=" + ToString( nNewId) ; LOG_INFO( GetCmdLogger(), sLua.c_str()) ; } - // restituisco l'identificativo della nuova entità + // restituisco l'identificativo della nuova entità return nNewId ; } @@ -633,7 +633,7 @@ ExeCreateSurfTmBBox( int nParentId, const BBox3d& b3Box, bool bRegular, int nRef " -- Id=" + ToString( nNewId) ; LOG_INFO( GetCmdLogger(), sLua.c_str()) ; } - // restituisco l'identificativo della nuova entità + // restituisco l'identificativo della nuova entità return nNewId ; } @@ -688,7 +688,7 @@ ExeCreateSurfTmBox( int nParentId, const Point3d& ptIni, const Point3d& ptCross, " -- Id=" + ToString( nNewId) ; LOG_INFO( GetCmdLogger(), sLua.c_str()) ; } - // restituisco l'identificativo della nuova entità + // restituisco l'identificativo della nuova entità return nNewId ; } @@ -745,7 +745,7 @@ ExeCreateSurfTmPyramid( int nParentId, const Point3d& ptIni, const Point3d& ptCr " -- Id=" + ToString( nNewId) ; LOG_INFO( GetCmdLogger(), sLua.c_str()) ; } - // restituisco l'identificativo della nuova entità + // restituisco l'identificativo della nuova entità return nNewId ; } @@ -787,7 +787,7 @@ ExeCreateSurfTmCylinder( int nParentId, const Point3d& ptOrig, const Vector3d& v " -- Id=" + ToString( nNewId) ; LOG_INFO( GetCmdLogger(), sLua.c_str()) ; } - // restituisco l'identificativo della nuova entità + // restituisco l'identificativo della nuova entità return nNewId ; } @@ -829,7 +829,7 @@ ExeCreateSurfTmCone( int nParentId, const Point3d& ptOrig, const Vector3d& vtN, " -- Id=" + ToString( nNewId) ; LOG_INFO( GetCmdLogger(), sLua.c_str()) ; } - // restituisco l'identificativo della nuova entità + // restituisco l'identificativo della nuova entità return nNewId ; } @@ -865,7 +865,7 @@ ExeCreateSurfTmSphere( int nParentId, const Point3d& ptOrig, " -- Id=" + ToString( nNewId) ; LOG_INFO( GetCmdLogger(), sLua.c_str()) ; } - // restituisco l'identificativo della nuova entità + // restituisco l'identificativo della nuova entità return nNewId ; } @@ -907,7 +907,7 @@ ExeCreateSurfTmTriangle( int nParentId, const Point3d& ptP1, const Point3d& ptP2 " -- Id=" + ToString( nNewId) ; LOG_INFO( GetCmdLogger(), sLua.c_str()) ; } - // restituisco l'identificativo della nuova entità + // restituisco l'identificativo della nuova entità return nNewId ; } @@ -956,7 +956,7 @@ ExeCreateSurfTmRectangle( int nParentId, const Point3d& ptO, const Point3d& ptL, " -- Id=" + ToString( nNewId) ; LOG_INFO( GetCmdLogger(), sLua.c_str()) ; } - // restituisco l'identificativo della nuova entità + // restituisco l'identificativo della nuova entità return nNewId ; } @@ -987,7 +987,7 @@ ExeCreateSurfTmByFlatContour( int nParentId, int nCrvId, double dLinTol) " -- Id=" + ToString( nNewId) ; LOG_INFO( GetCmdLogger(), sLua.c_str()) ; } - // restituisco l'identificativo della nuova entità + // restituisco l'identificativo della nuova entità return nNewId ; } @@ -1033,7 +1033,7 @@ ExeCreateSurfTmByRegion( int nParentId, const INTVECTOR& vCrvIds, double dLinTol " -- Id=" + ToString( nNewId) ; LOG_INFO( GetCmdLogger(), sLua.c_str()) ; } - // restituisco l'identificativo della nuova entità + // restituisco l'identificativo della nuova entità return nNewId ; } @@ -1088,7 +1088,7 @@ ExeCreateSurfTmByExtrusion( int nParentId, const INTVECTOR& vCrvIds, const Vecto " -- Id=" + ToString( nFirstId) ; LOG_INFO( GetCmdLogger(), sLua.c_str()) ; } - // restituisco l'identificativo della nuova entità + // restituisco l'identificativo della nuova entità return nFirstId ; } @@ -1132,7 +1132,7 @@ ExeCreateSurfTmByRegionExtrusion( int nParentId, const INTVECTOR& vCrvIds, const " -- Id=" + ToString( nNewId) ; LOG_INFO( GetCmdLogger(), sLua.c_str()) ; } - // restituisco l'identificativo della nuova entità + // restituisco l'identificativo della nuova entità return nNewId ; } @@ -1172,7 +1172,7 @@ ExeCreateSurfTmByRevolve( int nParentId, int nCrvId, " -- Id=" + ToString( nNewId) ; LOG_INFO( GetCmdLogger(), sLua.c_str()) ; } - // restituisco l'identificativo della nuova entità + // restituisco l'identificativo della nuova entità return nNewId ; } @@ -1214,7 +1214,7 @@ ExeCreateSurfTmByScrewing( int nParentId, int nCrvId, " -- Id=" + ToString( nNewId) ; LOG_INFO( GetCmdLogger(), sLua.c_str()) ; } - // restituisco l'identificativo della nuova entità + // restituisco l'identificativo della nuova entità return nNewId ; } @@ -1251,7 +1251,7 @@ ExeCreateSurfTmRectSwept( int nParentId, double dDimH, double dDimV, double dBev " -- Id=" + ToString( nNewId) ; LOG_INFO( GetCmdLogger(), sLua.c_str()) ; } - // restituisco l'identificativo della nuova entità + // restituisco l'identificativo della nuova entità return nNewId ; } @@ -1279,30 +1279,38 @@ ExeCreateSurfTmSwept( int nParentId, int nSectId, int nGuideId, bool bCapEnds, d int nNewId = ( bOk ? pGeomDB->AddGeoObj( GDB_ID_NULL, nParentId, pSTM) : GDB_ID_NULL) ; - // TEMP ***************************************** - if ( nNewId == -1) { - PtrOwner 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 = 10 ; - 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]) ; - pGeomDB->AddGeoObj( GDB_ID_NULL, 3, frCurr->Clone()) ; - delete( frCurr) ; - } + /* RIMUOVERE ! */ + PtrOwner 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) ; } - // ********************************************** + /* RIMUOVERE ! */ + + + ExeSetModified() ; @@ -1316,7 +1324,7 @@ ExeCreateSurfTmSwept( int nParentId, int nSectId, int nGuideId, bool bCapEnds, d " -- Id=" + ToString( nNewId) ; LOG_INFO( GetCmdLogger(), sLua.c_str()) ; } - // restituisco l'identificativo della nuova entità + // restituisco l'identificativo della nuova entità return nNewId ; } @@ -1353,7 +1361,7 @@ ExeCreateSurfTmTransSwept( int nParentId, int nSectId, int nGuideId, bool bCapEn " -- Id=" + ToString( nNewId) ; LOG_INFO( GetCmdLogger(), sLua.c_str()) ; } - // restituisco l'identificativo della nuova entità + // restituisco l'identificativo della nuova entità return nNewId ; } @@ -1370,7 +1378,7 @@ ExeCreateSurfTmRuled( int nParentId, int nPtOrCrvId1, int nPtOrCrvId2, int nType bOk = bOk && pGeomDB->GetGroupGlobFrame( nParentId, frLoc) ; // creo la superficie trimesh ISurfTriMesh* pSTM = nullptr ; - // se la prima entità è un punto e la seconda una curva + // se la prima entità è un punto e la seconda una curva if ( pGeomDB->GetGeoType( nPtOrCrvId1) == GEO_PNT3D && ( pGeomDB->GetGeoType( nPtOrCrvId2) & GEO_CURVE) != 0) { // recupero il punto in locale @@ -1386,7 +1394,7 @@ ExeCreateSurfTmRuled( int nParentId, int nPtOrCrvId1, int nPtOrCrvId2, int nType // calcolo la superficie pSTM = ( bOk ? GetSurfTriMeshRuled( ptP, CrvLoc, dLinTol) : nullptr) ; } - // se la prima entità è una curva e la seconda un punto + // se la prima entità è una curva e la seconda un punto else if ( ( pGeomDB->GetGeoType( nPtOrCrvId1) & GEO_CURVE) != 0 && pGeomDB->GetGeoType( nPtOrCrvId2) == GEO_PNT3D) { // recupero la curva in locale @@ -1430,7 +1438,7 @@ ExeCreateSurfTmRuled( int nParentId, int nPtOrCrvId1, int nPtOrCrvId2, int nType " -- Id=" + ToString( nNewId) ; LOG_INFO( GetCmdLogger(), sLua.c_str()) ; } - // restituisco l'identificativo della nuova entità + // restituisco l'identificativo della nuova entità return nNewId ; } @@ -1541,7 +1549,7 @@ ExeCreateSurfTmBySewing( int nParentId, const INTVECTOR& vIds, bool bErase) bOk = bOk && pGeomDB->GetGlobFrame( nId, frStmS) ; // lo esprimo rispetto a quello della prima superficie frStmS.ToLoc( frLoc) ; - // se è la prima, copio + // se è la prima, copio if ( bFirst) { bOk = bOk && pStm->CopyFrom( pStmS) ; bOk = bOk && pStm->ToGlob( frStmS) ; @@ -1730,7 +1738,7 @@ ExeCreateSurfBezier( int nParentId, int nDegU, int nDegV, int nSpanU, int nSpanV " -- Id=" + ToString( nId) ; LOG_INFO( GetCmdLogger(), sLua.c_str()) ; } - // restituisco l'identificativo della nuova entità + // restituisco l'identificativo della nuova entità return nId ; } @@ -1782,7 +1790,7 @@ ExeCreateSurfBezierRational( int nParentId, int nDegU, int nDegV, int nSpanU, in " -- Id=" + ToString( nId) ; LOG_INFO( GetCmdLogger(), sLua.c_str()) ; } - // restituisco l'identificativo della nuova entità + // restituisco l'identificativo della nuova entità return nId ; }