EgtGeomKernel 1.8e1 :

- modifiche a visualizzazione Zmap.
This commit is contained in:
Dario Sassi
2017-05-03 15:54:08 +00:00
parent ddc16d0a3b
commit 291dffc11e
5 changed files with 985 additions and 1258 deletions
+25 -148
View File
@@ -169,50 +169,6 @@ VolZmap::SubtractIntervals( unsigned int nGrid, unsigned int nI, unsigned int nJ
}
}
}
/*
// Blocco adiacente in X
if ( nXBlock > 0 &&
( nI % m_nDexNumPBlock == 0) &&
( nI / m_nDexNumPBlock <= m_nFracLin[0] - 1)) {
int nAdjXBlock = nXBlock - 1 ;
for ( int k = nMinZBlock ; k <= nMaxZBlock ; ++ k) {
int nBlockNum = k * nLayerBlock + nYBlock * m_nFracLin[0] + nAdjXBlock ;
m_BlockToUpdate[nBlockNum] = true ;
}
}
// Blocco adiacente in Y
if ( nYBlock > 0 &&
( nJ % m_nDexNumPBlock == 0) &&
( nJ / m_nDexNumPBlock <= m_nFracLin[1] - 1)) {
int nAdjYBlock = nYBlock - 1 ;
for ( int k = nMinZBlock ; k <= nMaxZBlock ; ++ k) {
int nBlockNum = k * nLayerBlock + nAdjYBlock * m_nFracLin[0] + nXBlock ;
m_BlockToUpdate[nBlockNum] = true ;
}
}
// Blocco adiacente in XY
if ( ( nXBlock > 0 &&
( nI % m_nDexNumPBlock == 0) &&
( nI / m_nDexNumPBlock <= m_nFracLin[0] - 1)) &&
( nYBlock > 0 &&
( nJ % m_nDexNumPBlock == 0) &&
( nJ / m_nDexNumPBlock <= m_nFracLin[1] - 1))) {
int nAdjXBlock = nXBlock - 1 ;
int nAdjYBlock = nYBlock - 1 ;
for ( int k = nMinZBlock ; k <= nMaxZBlock ; ++ k) {
int nBlockNum = k * nLayerBlock + nAdjYBlock * m_nFracLin[0] + nAdjXBlock ;
m_BlockToUpdate[nBlockNum] = true ;
}
}*/
}
else if ( nGrid == 1) {
@@ -238,50 +194,6 @@ VolZmap::SubtractIntervals( unsigned int nGrid, unsigned int nI, unsigned int nJ
}
}
}
/*
// Blocco adiacente in Y
if ( nYBlock > 0 &&
( nI % m_nDexNumPBlock == 0) &&
( nI / m_nDexNumPBlock <= m_nFracLin[1] - 1)) {
int nAdjYBlock = nYBlock - 1 ;
for ( int k = nMinXBlock ; k <= nMaxXBlock ; ++ k) {
int nBlockNum = nZBlock * nLayerBlock + nAdjYBlock * m_nFracLin[0] + k ;
m_BlockToUpdate[nBlockNum] = true ;
}
}
// Blocco adiacente in Z
if ( nZBlock > 0 &&
( nJ % m_nDexNumPBlock == 0) &&
( nJ / m_nDexNumPBlock <= m_nFracLin[2] - 1)) {
int nAdjZBlock = nZBlock - 1 ;
for ( int k = nMinXBlock ; k <= nMaxXBlock ; ++ k) {
int nBlockNum = nAdjZBlock * nLayerBlock + nYBlock * m_nFracLin[0] + k ;
m_BlockToUpdate[nBlockNum] = true ;
}
}
// Blocco adiacente in YZ
if ( ( nYBlock > 0 &&
( nI % m_nDexNumPBlock == 0) &&
( nI / m_nDexNumPBlock <= m_nFracLin[1] - 1)) &&
( nZBlock > 0 &&
( nJ % m_nDexNumPBlock == 0) &&
( nJ / m_nDexNumPBlock <= m_nFracLin[2] - 1))) {
int nAdjYBlock = nYBlock - 1 ;
int nAdjZBlock = nZBlock - 1 ;
for ( int k = nMinXBlock ; k <= nMaxXBlock ; ++ k) {
int nBlockNum = nAdjZBlock * nLayerBlock + nAdjYBlock * m_nFracLin[0] + k ;
m_BlockToUpdate[nBlockNum] = true ;
}
} */
}
else if ( nGrid == 2) {
@@ -307,50 +219,6 @@ VolZmap::SubtractIntervals( unsigned int nGrid, unsigned int nI, unsigned int nJ
}
}
}
/*
// Blocchi adiacenti in X
if ( nXBlock > 0 &&
( nJ % m_nDexNumPBlock == 0) &&
( nJ / m_nDexNumPBlock <= m_nFracLin[0] - 1)) {
int nAdjXBlock = nXBlock - 1 ;
for ( int k = nMinYBlock ; k <= nMaxYBlock ; ++ k) {
int nBlockNum = nZBlock * nLayerBlock + k * m_nFracLin[0] + nAdjXBlock ;
m_BlockToUpdate[nBlockNum] = true ;
}
}
// Blocchi adiacenti in Z
if ( nZBlock > 0 &&
( nI % m_nDexNumPBlock == 0) &&
( nI / m_nDexNumPBlock <= m_nFracLin[2] - 1)) {
int nAdjZBlock = nZBlock - 1 ;
for ( int k = nMinYBlock ; k <= nMaxYBlock ; ++ k) {
int nBlockNum = nAdjZBlock * nLayerBlock + k * m_nFracLin[0] + nXBlock ;
m_BlockToUpdate[nBlockNum] = true ;
}
}
// Blocchi adiacenti in XZ
if ( ( nXBlock > 0 &&
( nJ % m_nDexNumPBlock == 0) &&
( nJ / m_nDexNumPBlock <= m_nFracLin[0] - 1)) &&
( nZBlock > 0 &&
( nI % m_nDexNumPBlock == 0) &&
( nI / m_nDexNumPBlock <= m_nFracLin[2] - 1))) {
int nAdjXBlock = nXBlock - 1 ;
int nAdjZBlock = nZBlock - 1 ;
for ( int k = nMinYBlock ; k <= nMaxYBlock ; ++ k) {
int nBlockNum = nAdjZBlock * nLayerBlock + k * m_nFracLin[0] + nAdjXBlock ;
m_BlockToUpdate[nBlockNum] = true ;
}
}*/
}
m_OGrMgr.Reset() ;
@@ -1162,7 +1030,7 @@ VolZmap::CylBall_ZMilling( unsigned int nGrid, const Point3d & ptS, const Point3
Vector3d vtTan( - vtCirc.y, vtCirc.x, 0) ; // Tangente alla circonferenza
Vector3d vtCross = vtTan ^ vtMove ;
vtNmax = ( vtCross * vtCirc > 0 ? vtCross : - vtCross) ;
vtNmax = ( vtCross * vtCirc > - EPS_ZERO ? vtCross : - vtCross) ;
vtNmax.Normalize() ;
}
// Minimo
@@ -1180,7 +1048,7 @@ VolZmap::CylBall_ZMilling( unsigned int nGrid, const Point3d & ptS, const Point3
Vector3d vtTan( - vtCirc.y, vtCirc.x, 0) ; // Tangente alla circonferenza
Vector3d vtCross = vtTan ^ vtMove ;
vtNmin = ( vtCross * vtCirc > 0 ? vtCross : - vtCross) ;
vtNmin = ( vtCross * vtCirc > - EPS_ZERO ? vtCross : - vtCross) ;
vtNmin.Normalize() ;
}
@@ -2636,6 +2504,12 @@ VolZmap::Conus_XYPerp( unsigned int nGrid, const Point3d& ptS, const Point3d& pt
Vector3d vtUpCross = vtMove ^ vtUpTan ;
Vector3d vtDwCross = - vtMove ^ vtDwTan ;
if ( vtUpCross.z > 0)
vtUpCross = - vtUpCross ;
if ( vtDwCross.z < 0)
vtDwCross = - vtDwCross ;
// Descrizione piani tangenti al cono
Vector3d vtR0Up = ptUp - ORIG ;
Vector3d vtR0Dw = ptDw - ORIG ;
@@ -3882,7 +3756,7 @@ VolZmap::CompCyl_ZMilling( unsigned int nGrid, const Point3d & ptS, const Point3
Vector3d vtTan( - vtCirc.y, vtCirc.x, 0) ;
Vector3d vtCross = vtTan ^ vtMove ;
vtMax = ( vtCross * vtCirc > 0 ? vtCross : - vtCross) ;
vtMax = ( vtCross * vtCirc > - EPS_ZERO ? vtCross : - vtCross) ;
vtMax.Normalize() ;
}
// Minimo
@@ -3900,7 +3774,7 @@ VolZmap::CompCyl_ZMilling( unsigned int nGrid, const Point3d & ptS, const Point3
Vector3d vtTan( - vtCirc.y, vtCirc.x, 0) ;
Vector3d vtCross = vtTan ^ vtMove ;
vtMin = ( vtCross * vtCirc > 0 ? vtCross : - vtCross) ;
vtMin = ( vtCross * vtCirc > - EPS_ZERO ? vtCross : - vtCross) ;
vtMin.Normalize() ;
}
SubtractIntervals( nGrid, i, j, dMin, dMax, vtMin, vtMax) ;
@@ -4171,9 +4045,9 @@ VolZmap::CompConus_ZMilling( unsigned int nGrid, const Point3d & ptS, const Poin
Vector3d vtCirc = - dIDL_0 * vtV2 - dIDO * vtV3 ;
Vector3d vtTan( - vtCirc.y, vtCirc.x, 0) ;
Vector3d vtCross = vtTan ^ vtUmv ;
vtP = ( vtCross * vtCirc > 0 ? vtCross : - vtCross) ;
vtP.Normalize() ;
vtP.Normalize() ;
}
// Limiti nella direzione negativa di vtV1
@@ -4229,9 +4103,10 @@ VolZmap::CompConus_ZMilling( unsigned int nGrid, const Point3d & ptS, const Poin
Vector3d vtCirc = - dIDL_0 * vtV2 - dIDO * vtV3 ;
Vector3d vtTan( - vtCirc.y, vtCirc.x, 0) ;
Vector3d vtCross = vtTan ^ vtUmv ;
vtP = ( vtCross * vtCirc > 0 ? vtCross : - vtCross) ;
vtP.Normalize() ;
////////////////////////////////////////////////////////////////////////////////////////
vtP = ( vtCross * vtCirc > - EPS_ZERO ? vtCross : - vtCross) ; // vtCross * vtCirc o vtCross * vtMove?
////////////////////////////////////////////////////////////////////////////////////////
vtP.Normalize() ;
}
// Limiti nella direzione negativa di vtV1
@@ -4272,9 +4147,9 @@ VolZmap::CompConus_ZMilling( unsigned int nGrid, const Point3d & ptS, const Poin
Vector3d vtCirc = - dIDL_0 * vtV2 - dIDO * vtV3 ;
Vector3d vtTan( - vtCirc.y, vtCirc.x, 0) ;
Vector3d vtCross = vtTan ^ vtUmv ;
vtM = ( vtCross * vtMove > 0 ? vtCross : - vtCross) ;
vtM.Normalize() ;
vtM = ( vtCross * vtMove > - EPS_ZERO ? vtCross : - vtCross) ;
vtM.Normalize() ;
}
else if ( dIDO >= dMinRad * dSin && dIDO < dMaxRad * dSin) {
@@ -4294,9 +4169,10 @@ VolZmap::CompConus_ZMilling( unsigned int nGrid, const Point3d & ptS, const Poin
Vector3d vtCirc = - dIDL_0 * vtV2 - dIDO * vtV3 ;
Vector3d vtTan( - vtCirc.y, vtCirc.x, 0) ;
Vector3d vtCross = vtTan ^ vtUmv ;
vtM = ( vtCross * vtMove > 0 ? vtCross : - vtCross) ;
vtM.Normalize() ;
vtM = ( vtCross * vtMove > - EPS_ZERO ? vtCross : - vtCross) ;
vtM.Normalize() ;
}
else {
@@ -4323,8 +4199,9 @@ VolZmap::CompConus_ZMilling( unsigned int nGrid, const Point3d & ptS, const Poin
Vector3d vtTan( - vtCirc.y, vtCirc.x, 0) ;
Vector3d vtCross = vtTan ^ vtMove ;
vtM = ( vtCross * vtMove > 0 ? vtCross : - vtCross) ;
vtM.Normalize() ;
vtM = ( vtCross * vtMove > - EPS_ZERO ? vtCross : - vtCross) ;
vtM.Normalize() ;
}
}