EgtGeomKernel :
- in Polyline aggiunte TempProp e funzioni di Set e Get relative - in ProjectCurveOnSurfTm migliorato calcolo normale nei punti proiettati in - altre piccole migliorie nelle inizializzazioni di oggetti geometrici.
This commit is contained in:
+2
-3
@@ -2684,7 +2684,7 @@ AddZigZag( const ISurfFlatRegion* pSrfPock, double dRad, double dStep, double dA
|
||||
|
||||
// Offset della regione per curva ZigZag
|
||||
double dOffs = dRad ;
|
||||
double dExtra = min( 0.1 * ( 2.0 * dRad), 2.0) ;
|
||||
double dExtra = 0 ;
|
||||
|
||||
// ciclo su tutti i chunks della superificie originale
|
||||
for ( int c = 0 ; c < pSrfPock->GetChunkCount() ; ++ c) {
|
||||
@@ -2815,7 +2815,7 @@ AddOneWay( const ISurfFlatRegion* pSrfPock, double dRad, double dStep, double dA
|
||||
{
|
||||
|
||||
double dOffs = dRad ;
|
||||
double dExtra = min( 0.1 * ( 2. * dRad), 1.0) ;
|
||||
double dExtra = 0 ;
|
||||
|
||||
// copio la regione da svuotare
|
||||
PtrOwner<ISurfFlatRegion> pSrfToPock( pSrfPock->Clone()) ;
|
||||
@@ -2921,7 +2921,6 @@ CalcPocketing( const ISurfFlatRegion *pSfr, double dRad, double dStep, double dA
|
||||
{
|
||||
// controllo dei parametri
|
||||
if ( pSfr == nullptr || ! pSfr->IsValid() ||
|
||||
dRad < EPS_SMALL ||
|
||||
dStep < EPS_SMALL ||
|
||||
( nType != POCKET_SUB_ZIGZAG && nType != POCKET_SUB_ONEWAY && nType != POCKET_SUB_SPIRALIN && nType != POCKET_SUB_SPIRALOUT))
|
||||
return false ;
|
||||
|
||||
+1
-3
@@ -61,10 +61,8 @@ class ArcApproxer
|
||||
//----------------------------------------------------------------------------
|
||||
CurveArc::CurveArc( void)
|
||||
: m_nStatus( TO_VERIFY), m_PtCen(), m_VtN(), m_VtS(), m_dRad(),
|
||||
m_dAngCenDeg(), m_dDeltaN(), m_VtExtr(), m_dThick()
|
||||
m_dAngCenDeg(), m_dDeltaN(), m_VtExtr(), m_dThick(), m_nTempProp{0,0}
|
||||
{
|
||||
m_nTempProp[0] = 0 ;
|
||||
m_nTempProp[1] = 0 ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
+1
-3
@@ -45,10 +45,8 @@ GEOOBJ_REGISTER( CRV_BEZIER, NGE_C_BEZ, CurveBezier) ;
|
||||
//----------------------------------------------------------------------------
|
||||
CurveBezier::CurveBezier( void)
|
||||
: m_nStatus( TO_VERIFY), m_nDeg(), m_bRat( false), m_dParSing( -2),
|
||||
m_VtExtr(), m_dThick()
|
||||
m_VtExtr(), m_dThick(), m_nTempProp{0,0}
|
||||
{
|
||||
m_nTempProp[0] = 0 ;
|
||||
m_nTempProp[1] = 0 ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
+1
-3
@@ -42,10 +42,8 @@ GEOOBJ_REGISTER( CRV_COMPO, NGE_C_CMP, CurveComposite) ;
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
CurveComposite::CurveComposite( void)
|
||||
: m_nStatus( TO_VERIFY), m_VtExtr(), m_dThick(), m_ptStart(), m_Iter( m_CrvSmplS.end())
|
||||
: m_nStatus( TO_VERIFY), m_VtExtr(), m_dThick(), m_ptStart(), m_Iter( m_CrvSmplS.end()), m_nTempProp{0,0}
|
||||
{
|
||||
m_nTempProp[0] = 0 ;
|
||||
m_nTempProp[1] = 0 ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
+1
-3
@@ -30,10 +30,8 @@ GEOOBJ_REGISTER( CRV_LINE, NGE_C_LIN, CurveLine) ;
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
CurveLine::CurveLine( void)
|
||||
: m_nStatus( TO_VERIFY), m_PtStart(), m_PtEnd(), m_VtExtr(), m_dThick()
|
||||
: m_nStatus( TO_VERIFY), m_PtStart(), m_PtEnd(), m_VtExtr(), m_dThick(), m_nTempProp{0,0}
|
||||
{
|
||||
m_nTempProp[0] = 0 ;
|
||||
m_nTempProp[1] = 0 ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
+1
-2
@@ -28,9 +28,8 @@ using namespace std ;
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
PolyLine::PolyLine( void)
|
||||
: m_nRejected( 0), m_iter( m_lUPoints.end()), m_nTempProp{0,0}
|
||||
{
|
||||
m_nRejected = 0 ;
|
||||
m_iter = m_lUPoints.end() ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
+11
-2
@@ -62,16 +62,25 @@ ProjectCurveOnSurfTm( const ICurve& crCrv, const ISurfTriMesh& tmSurf, const Vec
|
||||
ILSIVECTOR vIntRes ;
|
||||
intPLSTM.GetInters( ptL, 1, vIntRes, false) ;
|
||||
if ( vIntRes.size() > 0) {
|
||||
// calcolo il punto
|
||||
int nI = int( vIntRes.size()) - 1 ;
|
||||
Point3d ptInt ;
|
||||
if ( vIntRes[nI].nILTT == ILTT_SEGM || vIntRes[nI].nILTT == ILTT_SEGM_ON_EDGE)
|
||||
ptInt = vIntRes[nI].ptI2 ;
|
||||
else
|
||||
ptInt = vIntRes[nI].ptI ;
|
||||
Triangle3d trTria ;
|
||||
// calcolo la normale (si calcola smooth, in caso di errore si prende quella del triangolo)
|
||||
Triangle3dEx trTria ;
|
||||
if ( ! tmSurf.GetTriangle( vIntRes[nI].nT, trTria))
|
||||
return false ;
|
||||
vMyPt5ax.emplace_back( ptInt, trTria.GetN(), dU, 1) ;
|
||||
Vector3d vtN ;
|
||||
double dU, dV, dW ;
|
||||
if ( BarycentricCoord( ptInt, trTria, dU, dV, dW))
|
||||
vtN = dU * trTria.GetVertexNorm( 0) + dV * trTria.GetVertexNorm( 1) + dW * trTria.GetVertexNorm( 2) ;
|
||||
if ( ! vtN.Normalize())
|
||||
vtN = trTria.GetN() ;
|
||||
// aggiungo al vettore dei proiettati
|
||||
vMyPt5ax.emplace_back( ptInt, vtN, dU, 1) ;
|
||||
}
|
||||
bFound = PL.GetNextUPoint( &dU, &ptP) ;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user