EgtGeomKernel :
- aggiunta funzione per gestione spigoli in SurfExtend - correzioni a SurfExtend.
This commit is contained in:
+12
-4
@@ -1325,6 +1325,8 @@ GetCurveOnSurfInfo( const ICurve& crCrv, const ISurfTriMesh& pSurf,
|
||||
Point3d ptPrev ;
|
||||
bool bFirst = true ;
|
||||
const ICurveComposite* pCC = GetCurveComposite( &crCrv) ;
|
||||
int nTria = -1 ;
|
||||
Triangle3dEx trTria ;
|
||||
while ( bFound) {
|
||||
// se trovo proiezione, la salvo
|
||||
Point5ax Pt5ax ;
|
||||
@@ -1335,13 +1337,19 @@ GetCurveOnSurfInfo( const ICurve& crCrv, const ISurfTriMesh& pSurf,
|
||||
int nCrv = int( bJoint ? dPar - 1 : dPar) ;
|
||||
if ( nCrv < 0)
|
||||
nCrv = 0 ;
|
||||
int nTria ; pCC->GetCurveTempProp( nCrv, nTria, 0) ;
|
||||
Triangle3d trTria ; pSurf.GetTriangle( nTria, trTria) ;
|
||||
Pt5ax.vtDir1 = trTria.GetN() ;
|
||||
int nTriaCurr ; pCC->GetCurveTempProp( nCrv, nTriaCurr, 0) ;
|
||||
if ( nTriaCurr != nTria)
|
||||
pSurf.GetTriangle( nTriaCurr, trTria) ;
|
||||
if ( ! CalcNormal( ptP, trTria, Pt5ax.vtDir1))
|
||||
Pt5ax.vtDir1 = trTria.GetN() ;
|
||||
nTria = nTriaCurr ;
|
||||
if ( bJoint) {
|
||||
int nTria2 ; pCC->GetCurveTempProp( int( dPar), nTria2, 0) ;
|
||||
Triangle3d trTria2 ; pSurf.GetTriangle( nTria2, trTria2) ;
|
||||
Pt5ax.vtDir2 = trTria2.GetN() ;
|
||||
if ( ! CalcNormal( ptP, trTria2, Pt5ax.vtDir2))
|
||||
Pt5ax.vtDir2 = trTria2.GetN() ;
|
||||
nTria = nTria2 ;
|
||||
trTria = trTria2 ;
|
||||
}
|
||||
else
|
||||
Pt5ax.vtDir2 = Pt5ax.vtDir1 ;
|
||||
|
||||
Reference in New Issue
Block a user