EgtGraphics 3.1e1 :
- piccola miglioria per controllare centro di rotazione camera dopo zoom.
This commit is contained in:
+11
-2
@@ -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 ;
|
||||
|
||||
Reference in New Issue
Block a user