EgtGraphics 3.1e1 :

- piccola miglioria per controllare centro di rotazione camera dopo zoom.
This commit is contained in:
Dario Sassi
2026-05-05 19:18:07 +02:00
parent 50b446c371
commit 0405079553
2 changed files with 11 additions and 2 deletions
+11 -2
View File
@@ -14,9 +14,11 @@
//--------------------------- Include ----------------------------------------
#include "stdafx.h"
#include "Scene.h"
#include "/EgtDev/Include/EgtILogger.h"
#include "/EgtDev/Include/EGnStringUtils.h"
#include "/EgtDev/Include/EGkFrame3d.h"
#include "/EgtDev/Include/EGnStringUtils.h"
#include "/EgtDev/Include/EgtNumUtils.h"
#include "/EgtDev/Include/EgtILogger.h"
using namespace std ;
@@ -538,6 +540,13 @@ Scene::ZoomOnPoint( const Point3d& ptWin, double dCoeff)
if ( ! UnProject( ptView, ptWorld))
return false ;
// verifico che il punto sia nelle dimensioni del mondo geometrico
if ( ! m_b3ExtWorld.Encloses( ptWorld)) {
ptWorld.x = Clamp( ptWorld.x, m_b3ExtWorld.GetMin().x, m_b3ExtWorld.GetMax().x) ;
ptWorld.y = Clamp( ptWorld.y, m_b3ExtWorld.GetMin().y, m_b3ExtWorld.GetMax().y) ;
ptWorld.z = Clamp( ptWorld.z, m_b3ExtWorld.GetMin().z, m_b3ExtWorld.GetMax().z) ;
}
// modifico opportunamente il centro di vista
Point3d ptOldCen = m_ptCenter ;
Point3d ptNewCen = ptWorld + ( m_ptCenter - ptWorld) * dCoeff ;