EgtGraphics :
- migliorato lo ZoomOnPoint.
This commit is contained in:
+4
-3
@@ -538,6 +538,7 @@ Scene::ZoomOnPoint( const Point3d& ptWin, double dCoeff)
|
||||
// modifico opportunamente il centro di vista
|
||||
Point3d ptOldCen = m_ptCenter ;
|
||||
Point3d ptNewCen = ptWorld + ( m_ptCenter - ptWorld) * dCoeff ;
|
||||
ptNewCen += ( ptWorld - ptNewCen) * m_vtDirCamera * m_vtDirCamera ;
|
||||
SetCenter( ptNewCen) ;
|
||||
m_bDistOk = true ;
|
||||
|
||||
@@ -550,7 +551,7 @@ Scene::ZoomOnPoint( const Point3d& ptWin, double dCoeff)
|
||||
dCoeff = dMinDist / m_dDistCamera ;
|
||||
Point3d ptNewCenter = ptWorld + ( ptOldCen - ptWorld) * dCoeff ;
|
||||
SetCenter( ptNewCenter) ;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
// nel caso standard verifico se il nuovo fov supera il valore massimo
|
||||
@@ -558,9 +559,9 @@ Scene::ZoomOnPoint( const Point3d& ptWin, double dCoeff)
|
||||
// adatto il coefficiente di zoom e ricalcolo il centro
|
||||
dCoeff = PERSPECTIVE_TAN_MAX_FOV * m_dDistCamera / m_dHalfHeight ;
|
||||
Point3d ptNewCenter = ptWorld + ( ptOldCen - ptWorld) * dCoeff ;
|
||||
SetCenter( ptNewCenter) ;
|
||||
SetCenter( ptNewCenter) ;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return ZoomChange( dCoeff) ;
|
||||
|
||||
Reference in New Issue
Block a user