diff --git a/EgtGraphics.rc b/EgtGraphics.rc index 65d1c57..793f481 100644 Binary files a/EgtGraphics.rc and b/EgtGraphics.rc differ diff --git a/EgtGraphics.vcxproj b/EgtGraphics.vcxproj index b452fd1..ddffdcd 100644 --- a/EgtGraphics.vcxproj +++ b/EgtGraphics.vcxproj @@ -22,7 +22,7 @@ {4EC970B1-B4D9-4088-8A31-B462CF72116E} Win32Proj EgtGraphics - 10.0.17763.0 + 10.0.20348.0 @@ -108,6 +108,7 @@ CompileAsCpp + stdcpp17 Windows @@ -170,6 +171,7 @@ copy $(TargetPath) \EgtProg\DllD64 true true Use + stdcpp17 Windows diff --git a/Scene.h b/Scene.h index 005dd28..d677ec8 100644 --- a/Scene.h +++ b/Scene.h @@ -107,6 +107,7 @@ class Scene : public IEGrScene bool ZoomOnPoint( const Point3d& ptWin, double dCoeff) override ; bool ZoomWin( const Point3d& ptWin1, const Point3d& ptWin2) override ; bool RotateCameraWithCube() ; + void GetOrthoCamParam( double* pdWidth, double* pdHeight, double* pdNear, double* pdFar) const override ; // ShowMode bool SetShowMode( int nShowMode) override { if ( nShowMode != SM_WIREFRAME && @@ -143,6 +144,8 @@ class Scene : public IEGrScene bool SetGridShow( bool bShowGrid, bool bShowFrame) override ; bool SetGridGeo( double dSnapStep, int nMinLineSstep, int nMajLineSstep, int nExtSstep) override ; bool SetGridColor( Color colMinLine, Color colMajLine) override ; + void GetGridParam( double& dSnapStep, int& nExtStep) const override ; + bool GetShowGrid() override ; // Glob Frame bool SetGlobFrameShow( bool bShow) override ; // Glob Cube @@ -291,9 +294,9 @@ class Scene : public IEGrScene HDC m_hDC ; // Device Context HGLRC m_hRC ; // OpenGL Rendering Context int m_nOglVer ; // OpenGL Version - bool m_bNewWay ; // flag che indica nuova modalità (OpenGL 3.0 in poi) + bool m_bNewWay ; // flag che indica nuova modalit� (OpenGL 3.0 in poi) // Camera - Point3d m_ptCenter ; // centro verso cui è rivolta la camera + Point3d m_ptCenter ; // centro verso cui � rivolta la camera Vector3d m_vtDirCamera ; // versore direzione dal centro alla camera double m_dDistCamera ; // distanza dal centro alla camera Vector3d m_vtUp ; // versore direzione Su della camera @@ -309,7 +312,7 @@ class Scene : public IEGrScene int m_nShowMode ; // modo di visualizzazione (wireframe, hiddenline, shading) bool m_bShowCurveDirection ; // flag di visualizzazione direzione curve bool m_bShowTriaAdvanced ; // flag per abilitare la visualizzazione avanzata dei triangoli - int m_nShowZmap ; // modo visualizzazione Zmap (+1=surf, +2=spilloni, +4=normali, +8=più colori) + int m_nShowZmap ; // modo visualizzazione Zmap (+1=surf, +2=spilloni, +4=normali, +8=pi� colori) int m_nShowText ; // modo visualizzazione scritte (1=solo contorni, 2=con riempimento) // PointSize - LineWidth double m_dPointSize ; // dimensione punti @@ -334,9 +337,9 @@ class Scene : public IEGrScene SelRec m_nSelBuff[DIM_SEL_BUF] ; // buffer per selezione con OpenGL // Snap // lo snap a oggetti usa la select, quindi anche per esso valgono m_nObjFilterForSelect e m_Unsel - int m_nLastSnapId ; // Id dell'entità generatrice dell'ultimo punto snap + int m_nLastSnapId ; // Id dell'entit� generatrice dell'ultimo punto snap Point3d m_ptLastSnapPnt ; // ultimo punto di snap - bool m_bLastSnapDirOk ; // flag validità direzione associata a ultimo punto snap + bool m_bLastSnapDirOk ; // flag validit� direzione associata a ultimo punto snap Vector3d m_vtLastSnapDir ; // direzione associata a ultimo punto snap // Geometry IGeomDB* m_pGeomDB ; // puntatore al DB geometrico diff --git a/SceneCamera.cpp b/SceneCamera.cpp index c0727ef..f61df93 100644 --- a/SceneCamera.cpp +++ b/SceneCamera.cpp @@ -416,4 +416,18 @@ Scene::ZoomWin( const Point3d& ptWin1, const Point3d& ptWin2) // adatto le dimensioni a quelle della vista return AdjustDimView( dHalfWidth, dHalfHeight) ; -} \ No newline at end of file +} + +//---------------------------------------------------------------------------- +void +Scene::GetOrthoCamParam( double* pdWidth, double* pdHeight, double* pdNear, double* pdFar) const +{ + if ( pdWidth != nullptr) + *pdWidth = m_dHalfWidth ; + if ( pdHeight != nullptr) + *pdHeight = m_dHalfHeight ; + if ( pdNear != nullptr) + *pdNear = m_dZNear ; + if ( pdFar != nullptr) + *pdFar = m_dZFar ; +} diff --git a/SceneGeom.cpp b/SceneGeom.cpp index 4c31ff1..adbe088 100644 --- a/SceneGeom.cpp +++ b/SceneGeom.cpp @@ -301,7 +301,7 @@ Scene::DrawGeoObj( const IGdbIterator& iIter, int nPass, const MdStMkCol& siObj) return false ; // aggiorno la grafica (colori speciali) PolyLine plX, plY, plZ ; - pFrame->GetDrawWithArrowHeads( 10, 0.1, plX, plY, plZ) ; + pFrame->GetDrawWithArrowHeads( 40, 0.1, plX, plY, plZ) ; pGraphics->Clear() ; pGraphics->AddColor( RED) ; pGraphics->AddPolyLine( plX) ; diff --git a/SceneGrid.cpp b/SceneGrid.cpp index 8ac1a0c..afa901f 100644 --- a/SceneGrid.cpp +++ b/SceneGrid.cpp @@ -196,4 +196,19 @@ Scene::DrawGrid( void) glLineWidth( (float) GetLineWidth()) ; return true ; +} + +//---------------------------------------------------------------------------- +void +Scene::GetGridParam( double& dSnapStep, int& nExtStep) const +{ + dSnapStep = m_dSnapStep ; + nExtStep = m_nExtSstep ; +} + +//---------------------------------------------------------------------------- +bool +Scene::GetShowGrid() +{ + return m_bShowGrid ; } \ No newline at end of file