EgtGraphics 1.5b3 :
- aggiunto SceExecutor per eseguire file Tsc - centralizzata gestiopne del logger - mogliorie varie
This commit is contained in:
+34
-36
@@ -43,74 +43,72 @@ Scene::SetCamera( double dAngVertDeg, double dAngOrizzDeg, double dDist)
|
||||
{
|
||||
// assegno la direzione e la distanza
|
||||
m_vtDirCamera.FromSpherical( 1, dAngVertDeg, dAngOrizzDeg) ;
|
||||
if ( dDist < EPS_SMALL)
|
||||
m_dDistCamera = STD_DIST_CAMERA ;
|
||||
else
|
||||
m_dDistCamera = __max( dDist, MIN_DIST_CAMERA) ;
|
||||
// invalido Up e ExtView
|
||||
m_bUpOk = false ;
|
||||
m_bExtViewOk = false ;
|
||||
// calcolo nuovi dati di Z clipping
|
||||
CalcClippingPlanesFromExtView() ;
|
||||
return true ;
|
||||
m_dDistCamera = dDist ;
|
||||
return VerifyCamera() ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
Scene::SetCamera( int nDir, double dDist)
|
||||
{
|
||||
const double ANG_VERT_ISOVIEW = 54.73561032 ;
|
||||
double dAngVertDeg ;
|
||||
double dAngOrizzDeg ;
|
||||
|
||||
|
||||
switch ( nDir) {
|
||||
case CT_TOP :
|
||||
dAngVertDeg = 0 ;
|
||||
dAngOrizzDeg = 0 ;
|
||||
m_vtDirCamera.Set( 0, 0, 1) ;
|
||||
break ;
|
||||
case CT_FRONT :
|
||||
dAngVertDeg = 90 ;
|
||||
dAngOrizzDeg = -90 ;
|
||||
m_vtDirCamera.Set( 0, -1, 0) ;
|
||||
break ;
|
||||
case CT_RIGHT :
|
||||
dAngVertDeg = 90 ;
|
||||
dAngOrizzDeg = 0 ;
|
||||
m_vtDirCamera.Set( 1, 0, 0) ;
|
||||
break ;
|
||||
case CT_BACK :
|
||||
dAngVertDeg = 90 ;
|
||||
dAngOrizzDeg = 90 ;
|
||||
m_vtDirCamera.Set( 0, 1, 0) ;
|
||||
break ;
|
||||
case CT_LEFT :
|
||||
dAngVertDeg = 90 ;
|
||||
dAngOrizzDeg = 180 ;
|
||||
m_vtDirCamera.Set( -1, 0, 0) ;
|
||||
break ;
|
||||
case CT_BOTTOM :
|
||||
dAngVertDeg = 180 ;
|
||||
dAngOrizzDeg = 0 ;
|
||||
m_vtDirCamera.Set( 0, 0, -1) ;
|
||||
break ;
|
||||
case CT_ISO_SW :
|
||||
dAngVertDeg = ANG_VERT_ISOVIEW ;
|
||||
dAngOrizzDeg = -135 ;
|
||||
m_vtDirCamera.Set( - SQRT1_3, - SQRT1_3, SQRT1_3) ;
|
||||
break ;
|
||||
case CT_ISO_SE :
|
||||
dAngVertDeg = ANG_VERT_ISOVIEW ;
|
||||
dAngOrizzDeg = -45 ;
|
||||
m_vtDirCamera.Set( SQRT1_3, - SQRT1_3, SQRT1_3) ;
|
||||
break ;
|
||||
case CT_ISO_NE :
|
||||
dAngVertDeg = ANG_VERT_ISOVIEW ;
|
||||
dAngOrizzDeg = 45 ;
|
||||
m_vtDirCamera.Set( SQRT1_3, SQRT1_3, SQRT1_3) ;
|
||||
break ;
|
||||
case CT_ISO_NW :
|
||||
dAngVertDeg = ANG_VERT_ISOVIEW ;
|
||||
dAngOrizzDeg = 135 ;
|
||||
m_vtDirCamera.Set( - SQRT1_3, SQRT1_3, SQRT1_3) ;
|
||||
break ;
|
||||
default :
|
||||
return false ;
|
||||
break ;
|
||||
}
|
||||
m_dDistCamera = dDist ;
|
||||
|
||||
return SetCamera( dAngVertDeg, dAngOrizzDeg, dDist) ;
|
||||
return VerifyCamera() ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
Scene::VerifyCamera( void)
|
||||
{
|
||||
// verifico il versore
|
||||
if ( ! m_vtDirCamera.Normalize())
|
||||
m_vtDirCamera.Set( 0, 0, 1) ;
|
||||
// verifico la distanza
|
||||
if ( m_dDistCamera < EPS_SMALL)
|
||||
m_dDistCamera = STD_DIST_CAMERA ;
|
||||
else
|
||||
m_dDistCamera = __max( m_dDistCamera, MIN_DIST_CAMERA) ;
|
||||
// invalido Up e ExtView
|
||||
m_bUpOk = false ;
|
||||
m_bExtViewOk = false ;
|
||||
// calcolo nuovi dati di Z clipping
|
||||
CalcClippingPlanesFromExtView() ;
|
||||
return true ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user