X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=src%2Fgraph3dview.cpp;h=9526df4c03a81e587bfc2f08a855be2d4a49b466;hp=03c239935903e1b30f287be797b8a6d742b2b04c;hb=806a6ed49930ae2bd8028eb7e3ffb79f017ef7f1;hpb=b91d4ce77b4bd48df8c6e120f725c5a87062a00b diff --git a/src/graph3dview.cpp b/src/graph3dview.cpp index 03c2399..9526df4 100644 --- a/src/graph3dview.cpp +++ b/src/graph3dview.cpp @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (c) 1983-2001 Kevin Rosenberg ** -** $Id: graph3dview.cpp,v 1.7 2001/02/02 23:04:06 kevin Exp $ +** $Id: graph3dview.cpp,v 1.8 2001/02/03 18:38:42 kevin Exp $ ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License (version 2) as @@ -242,13 +242,14 @@ Graph3dFileView::DrawSurface() if (nx == 0 || ny == 0 || ! v) return; - glRotatef( m_dXRotate, 1.0, 0.0, 0.0 ); - glRotatef( m_dZRotate, 0.0, 1.0, 0.0 ); - glRotatef( m_dYRotate, 0.0, 0.0, 1.0 ); - glTranslatef (-static_cast(nx) / 2., 0, -static_cast(ny) / 2.); - InitMaterials(); + glRotatef( m_dXRotate, 1.0, 0.0, 0.0 ); + glRotatef( m_dZRotate, 0.0, 1.0, 0.0 ); + glRotatef( m_dYRotate, 0.0, 0.0, 1.0 ); + glTranslatef (-static_cast(nx) / 2., 0., -static_cast(ny) / 2.); + + if (m_bSmooth) { glShadeModel (GL_SMOOTH); } else { @@ -392,6 +393,7 @@ Graph3dFileView::OnDraw (wxDC* dc) if (! m_pCanvas->GetContext()) return; #endif + m_pCanvas->SwapBuffers(); Draw(); std::ostringstream os; os << "Xangle=" << m_dXRotate << ", Yangle=" << m_dYRotate << ", Zangle=" << m_dZRotate; @@ -423,8 +425,8 @@ Graph3dFileView::InitMaterials() #if 1 static float ambient[] = {0.1, 0.1, 0.1, 1.0}; static float diffuse[] = {1.0, 1.0, 1.0, 1.0}; - static float position0[] = {0, 0, -nx/2, 0, 0.0}; - static float position1[] = {0, 0, nx/2, 0.0}; + static float position0[] = {-nx/2, -ny/2, -ny/2, 0, 0.0}; + static float position1[] = {-nx/2, -ny/2, ny/2, 0.0}; static float ambient1[] = {0.5, 0.5, 0.5, 1.0}; static float diffuse1[] = {1.0, 1.0, 1.0, 1.0}; // static float position0[] = {0.0, 0.0, 20.0, 0.0}; @@ -577,6 +579,11 @@ Graph3dFileView::OnUpdate (wxView *WXUNUSED(sender), wxObject *WXUNUSED(hint) ) int maxDim = maxValue (nx, ny); glOrtho (-maxDim * 0.71, maxDim * 0.71, -maxDim * 0.71, maxDim * 0.71, maxDim * 0.71, -maxDim * 0.71); + GLfloat eyep[3], lookp[3], up[3]; + eyep[0] = -nx/2; eyep[1] = 0; eyep[2] = -ny/2; + lookp[1] = 0; lookp[1] = 0, lookp[2] = 0; + up[0] = 0; up[1] = 1; up[2] = 0; + //gluLookAt (eyep[0], eyep[1], eyep[2], lookp[0], lookp[1], lookp[2], up[0], up[1], up[2]); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); @@ -602,7 +609,7 @@ Graph3dFileView::OnClose (bool deleteWindow) Activate (false); if (m_pCanvas) { -// m_pCanvas->Show(false); + // m_pCanvas->Show(false); m_pCanvas->setView(NULL); m_pCanvas = NULL; } @@ -613,11 +620,11 @@ Graph3dFileView::OnClose (bool deleteWindow) SetFrame(NULL); if (deleteWindow) { -// m_pFrame->Show(false); + // m_pFrame->Show(false); delete m_pFrame; m_pFrame = NULL; -// if (GetDocument() && GetDocument()->getBadFileOpen()) -// ::wxYield(); // wxWindows bug workaround + // if (GetDocument() && GetDocument()->getBadFileOpen()) + // ::wxYield(); // wxWindows bug workaround } return true; @@ -828,7 +835,7 @@ Graph3dFileCanvas::OnMouseEvent(wxMouseEvent& event) void Graph3dFileCanvas::OnEraseBackground(wxEraseEvent& event) { - // Do nothing: avoid flashing. + wxGLCanvas::OnEraseBackground(event); // Do nothing: avoid flashing. }