- piccola miglioria a test per concatenamento.

This commit is contained in:
Daniele Bariletti
2025-03-07 09:17:38 +01:00
parent 4b1270f231
commit 0fc8291ef5
+5 -5
View File
@@ -273,7 +273,7 @@ ChainCurves::ChooseStart( const Point3d& ptStart, const INTVECTOR& vStart, int&
// altrimenti, cerco la migliore
int nI = - 1 ;
double dSqDistMin = SQ_INFINITO ;
double dDistMin = INFINITO ;
for ( int i = 0 ; i < nSize ; ++ i) {
// recupero indice e verso
int nId = abs( vStart[i]) - 1 ;
@@ -281,12 +281,12 @@ ChainCurves::ChooseStart( const Point3d& ptStart, const INTVECTOR& vStart, int&
// calcolo un punto vicino all'estremo lungo la tangente
Point3d ptNear = ( bEquiv ? m_vCrvData[nId].ptStart + m_vCrvData[nId].vtStart :
m_vCrvData[nId].ptEnd - m_vCrvData[nId].vtEnd) ;
double dSqDist = SqDist( ptStart, ptNear) ;
double dDist = Dist( ptStart, ptNear) ;
// tengo il segmento più vicino al punto
// favorendo eventualmente quello equiverso se entro EPS da un concorrente
if ( dSqDist < dSqDistMin - EPS_SMALL ||
((dSqDist < dSqDistMin + EPS_SMALL) && bEquiv && vStart[nI] < 0)) {
dSqDistMin = dSqDist ;
if ( dDist < dDistMin - EPS_SMALL ||
((dDist < dDistMin + EPS_SMALL) && bEquiv && vStart[nI] < 0)) {
dDistMin = dDist ;
nI = i ;
}
}