From 0405079553a7121ece88e7ebd4a181edb2d96ccf Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Tue, 5 May 2026 19:18:07 +0200 Subject: [PATCH] EgtGraphics 3.1e1 : - piccola miglioria per controllare centro di rotazione camera dopo zoom. --- EgtGraphics.rc | Bin 11606 -> 11606 bytes SceneCamera.cpp | 13 +++++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/EgtGraphics.rc b/EgtGraphics.rc index d6ec2cc08aadd36536c14c4308acd6004db03311..4db74ec74c67976dac41c1dfb8fd7635e1590b5b 100644 GIT binary patch delta 116 zcmcZ>buDVcH#SyN1|0^&%?J7RGfm>rnOvZ#!kh}^UzDt5+}y@(#tfI&W`;^sGj7fj SHo+pXo&~NLi(vxFZd?Ek$03LS delta 116 zcmcZ>buDVcH#Sxi1|0^Y%?J7RGfm>rnOvZ#!khx+UzDt5+}y@(#tfI&W`;^sGj7fj SHo+pXo&~NLi(vxFZd?EkuOWy4 diff --git a/SceneCamera.cpp b/SceneCamera.cpp index 87c784e..21032ca 100644 --- a/SceneCamera.cpp +++ b/SceneCamera.cpp @@ -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 ;