Update to 2.0.0 tree from current Fremantle build
[opencv] / apps / StereoGR / OpenGLView.cpp
diff --git a/apps/StereoGR/OpenGLView.cpp b/apps/StereoGR/OpenGLView.cpp
deleted file mode 100644 (file)
index 3fc5eef..0000000
+++ /dev/null
@@ -1,364 +0,0 @@
-// OpenGLView.cpp : implementation of the COpenGLView class\r
-//\r
-\r
-#include "stdafx.h"\r
-#include "OpenGLView.h"\r
-#include <math.h>\r
-\r
-typedef struct _Point3d\r
-{\r
-  double x, y, z;\r
-} Point3d;\r
-\r
-#ifdef _DEBUG\r
-#define new DEBUG_NEW\r
-#undef THIS_FILE\r
-static char THIS_FILE[] = __FILE__;\r
-#endif\r
-\r
-#define vector_length(a)    sqrt(a.x*a.x+a.y*a.y+a.z*a.z)\r
-#define scalar_product(a,b)    (a.x*b.x+a.y*b.y+a.z*b.z)\r
-#define vector_angle(a,b)    (acos(scalar_product(a,b))*180./3.1415926535)\r
-#define vector_product_x(a,b)  (a.y*b.z-a.z*b.y)\r
-#define vector_product_y(a,b)  (a.z*b.x-a.x*b.z)\r
-#define vector_product_z(a,b)  (a.x*b.y-a.y*b.x)\r
-#define vector_product(a,b,c)  c.x=vector_product_x(a,b);c.y=vector_product_y(a,b);c.z=vector_product_z(a,b)\r
-#define sub_vector(a,b,c)    c.x=a.x-b.x;c.y=a.y-b.y;c.z=a.z-b.z\r
-#define add_vector(a,b,c)    c.x=a.x+b.x;c.y=a.y+b.y;c.z=a.z+b.z\r
-\r
-#define normalize_vector(a)    {float len;len=(float)vector_length(a);if(len>0){a.x /= len;a.y /= len;a.z /= len;}}\r
-\r
-#define vector_lengthV(a)    sqrt(a->x*a->x+a->y*a->y+a->z*a->z)\r
-#define normalize_vectorV(a)  {float len;len=(float)vector_lengthV(a);if(len>0){a->x /= len;a->y /= len;a->z /= len;}}\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-// COpenGLView\r
-\r
-IMPLEMENT_DYNCREATE(COpenGLView, CView)\r
-\r
-BEGIN_MESSAGE_MAP(COpenGLView, CView)\r
-  //{{AFX_MSG_MAP(COpenGLView)\r
-  ON_WM_DESTROY()\r
-  ON_WM_SIZE()\r
-  ON_WM_MOUSEMOVE()\r
-  ON_WM_LBUTTONDOWN()\r
-  ON_WM_CREATE()\r
-  //}}AFX_MSG_MAP\r
-  // Standard printing commands\r
-  ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)\r
-  ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)\r
-  ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)\r
-END_MESSAGE_MAP()\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-// COpenGLView construction/destruction\r
-\r
-COpenGLView::COpenGLView() : m_pDC(0)\r
-{\r
-  InitCameraPosition();\r
-}\r
-\r
-COpenGLView::~COpenGLView()\r
-{\r
-//  delete m_pDC;\r
-}\r
-\r
-BOOL COpenGLView::PreCreateWindow(CREATESTRUCT& cs)\r
-{\r
-  // OpenGL òðåáóåò íàëè÷èÿ ñòèëåé WS_CLIPCHILDREN è WS_CLIPSIBLINGS\r
-  cs.style |= (WS_CLIPCHILDREN | WS_CLIPSIBLINGS);\r
-\r
-  return CView::PreCreateWindow(cs);\r
-}\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-// COpenGLView printing\r
-\r
-BOOL COpenGLView::OnPreparePrinting(CPrintInfo* pInfo)\r
-{\r
-  // default preparation\r
-  return DoPreparePrinting(pInfo);\r
-}\r
-\r
-void COpenGLView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)\r
-{\r
-}\r
-\r
-void COpenGLView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)\r
-{\r
-}\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-// COpenGLView diagnostics\r
-\r
-#ifdef _DEBUG\r
-void COpenGLView::AssertValid() const\r
-{\r
-  CView::AssertValid();\r
-}\r
-\r
-void COpenGLView::Dump(CDumpContext& dc) const\r
-{\r
-  CView::Dump(dc);\r
-}\r
-\r
-CDocument* COpenGLView::GetDocument() // non-debug version is inline\r
-{\r
-  ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CDocument)));\r
-  return (CDocument*)m_pDocument;\r
-}\r
-#endif //_DEBUG\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-// COpenGLView message handlers\r
-\r
-int COpenGLView::InitOpenGL()\r
-{\r
-// Ôîðìèðóåì êîíòåêñò ðàáî÷åé îáëàñòè\r
-  m_pDC = new CClientDC(this);\r
-  ASSERT(m_pDC != NULL);\r
-\r
-// Ïîëó÷àåì äåñêðèïòîð êîíòåêñòà óñòðîéñòâà\r
-  HDC hdc = m_pDC->GetSafeHdc();\r
-\r
-// Óñòàíàâëèâàåì ôîðìàò ïèêñåëåé\r
-  if (SetPixelFormat(hdc)==FALSE)\r
-    return -1;\r
-\r
-// Ñîçäàåì è äåëàåì òåêóùèì êîíòåêñò âîñïðîèçâåäåíèÿ\r
-  if (CreateGLContext(hdc)==FALSE)\r
-    return -1;\r
-\r
-  return 0;\r
-}\r
-\r
-void COpenGLView::OnDestroy()\r
-{\r
-  // Ïîëó÷àåì òåêóùèé êîíòåêñò âîñïðîèçâåäåíèÿ\r
-  HGLRC  hrc = ::wglGetCurrentContext();\r
-\r
-// Ïåðåä óäàëåíèåì îí íå äîëæåí áûòü òåêóùèì\r
-  ::wglMakeCurrent(NULL,  NULL);\r
-\r
-// Óäàëÿåì êîíòåêñò âîñïðîèçâåäåíèÿ\r
-  if (hrc)\r
-    ::wglDeleteContext(hrc);\r
-\r
-// Óäàëÿåì êîíòåêñò ðàáî÷åé îáëàñòè\r
-  if (m_pDC)\r
-    delete m_pDC;\r
-\r
-  CView::OnDestroy();\r
-}\r
-\r
-BOOL COpenGLView::SetPixelFormat(HDC hdc)\r
-{\r
- // Çàïîëíÿåì ïîëÿ ñòðóêòóðû\r
-  static PIXELFORMATDESCRIPTOR pfd =   {\r
-    sizeof(PIXELFORMATDESCRIPTOR),  // ðàçìåð ñòðóêòóðû\r
-    1,                              // íîìåð âåðñèè\r
-    PFD_DRAW_TO_WINDOW   |          // ïîääåðæêà âûâîäà â îêíî\r
-    PFD_SUPPORT_OPENGL   |          // ïîääåðæêà OpenGL\r
-    PFD_DOUBLEBUFFER,               // äâîéíàÿ áóôåðèçàöèÿ\r
-    PFD_TYPE_RGBA,         // öâåòà â ðåæèìå RGBA\r
-    24,                    // 24-ðàçðÿäà íà öâåò\r
-    0, 0, 0, 0, 0, 0,      // áèòû öâåòà èãíîðèðóþòñÿ\r
-    0,                     // íå èñïîëüçóåòñÿ àëüôà ïàðàìåòð\r
-    0,                     // ñìåùåíèå öâåòîâ èãíîðèðóþòñÿ\r
-    0,                     // áóôåð àêêóìóëÿòîðà íå èñïîëüçóåòñÿ\r
-    0, 0, 0, 0,            // áèòû àêêóìóëÿòîðà èãíîðèðóþòñÿ\r
-    32,                    // 32-ðàçðÿäíûé áóôåð ãëóáèíû\r
-    0,                     // áóôåð òðàôàðåòà íå èñïîëüçóåòñÿ\r
-    0,                     // âñïîìîãàòåëüíûé áóôåð íå èñïîëüçóåòñÿ\r
-    PFD_MAIN_PLANE,        // îñíîâíîé ñëîé\r
-    0,                     // çàðåçåðâèðîâàí\r
-    0, 0, 0                // ìàñêè ñëîÿ èãíîðèðóþòñÿ\r
-  };\r
-\r
-  int pixelFormat;\r
-\r
-// Ïîääåðæèâàåò ëè ñèñòåìà íåîáõîäèìûé ôîðìàò ïèêñåëåé?\r
-  if((pixelFormat = ::ChoosePixelFormat(hdc, &pfd)) == 0){\r
-    MessageBox("Ñ çàäàííûì ôîðìàòîì ïèêñåëåé ðàáîòàòü íåëüçÿ");\r
-    return FALSE;\r
-  }\r
-\r
-  if (::SetPixelFormat(hdc, pixelFormat, &pfd) == FALSE)\r
-    {\r
-      MessageBox("Îøèáêà ïðè âûïîëíåíèè SetPixelFormat");\r
-      return FALSE;\r
-    }\r
-\r
-  return TRUE;\r
-}\r
-\r
-BOOL COpenGLView::CreateGLContext(HDC hdc)\r
-{\r
-\r
-// Ñîçäàåì êîíòåêñò âîñïðîèçâåäåíèÿ\r
-  if((m_hrc = ::wglCreateContext(hdc)) == NULL)\r
-    return FALSE;\r
-\r
-// Äåëàåì êîíòåêñò âîñïðîèçâåäåíèÿ òåêóùèì\r
-  if(::wglMakeCurrent(hdc, m_hrc) == FALSE)\r
-    return FALSE;\r
-\r
-  return TRUE;\r
-}\r
-\r
-void COpenGLView::OnSize(UINT nType, int cx, int cy)\r
-{\r
-  CView::OnSize(nType, cx, cy);\r
-\r
-  m_width = cx;\r
-  m_height = cy;\r
-  SetOwnContext();\r
-  glViewport(0, 0, cx, cy);\r
-}\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-// COpenGLView drawing\r
-\r
-void COpenGLView::OnDraw(CDC* pDC)\r
-{\r
-  CDocument* pDoc = GetDocument();\r
-  ASSERT_VALID(pDoc);\r
-}\r
-\r
-void COpenGLView::BeginScene()\r
-{\r
-  SetOwnContext();\r
-  glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);\r
-}\r
-\r
-void COpenGLView::EndScene()\r
-{\r
-  Swap();\r
-}\r
-\r
-void COpenGLView::Swap()\r
-{\r
-   if (m_pDC)\r
-    SwapBuffers(m_pDC->m_hDC);\r
-}\r
-\r
-void COpenGLView::TrackBall(CPoint last, CPoint init, double& angle, double& x, double& y, double& z)\r
-{\r
-  Point3d  end, start, out;\r
-  double    sum, len, norm;\r
-  double pi = 3.1415926535;\r
-\r
-  norm = (double)__min(m_width, m_height);\r
-\r
-  start.x = (2*init.x-m_width)/norm;\r
-  start.y = (m_height-2.*init.y)/norm;\r
-  sum = start.x*start.x + start.y*start.y;\r
-  if (sum < 1.)  start.z = sqrt(1 - sum);\r
-  else      start.z = 0.;\r
-\r
-  end.x = (2.*last.x-m_width)/norm;\r
-  end.y = (m_height-2.*last.y)/norm;\r
-  sum = end.x*end.x + end.y*end.y;\r
-  if (sum < 1.)  end.z = sqrt(1 - sum);\r
-  else      end.z = 0.;\r
-\r
-    ASSERT(vector_length(start)*vector_length(end)>1.0e-30);\r
-  angle = scalar_product(start,end)/(vector_length(start)*vector_length(end));\r
-\r
-    if (angle<=-1) angle = -0.99999;\r
-    if (angle>=1) angle = 0.99999;\r
-\r
-    angle = acos(angle)*180./pi;\r
-  out.x = vector_product_x(start,end);\r
-  out.y = vector_product_y(start,end);\r
-  out.z = vector_product_z(start,end);\r
-\r
-  len = vector_length(out);\r
-  if (len != 0.) {\r
-    out.x /= len;\r
-    out.y /= len;\r
-    out.z /= len;\r
-  }\r
-\r
-  x = out.x;\r
-  y = out.y;\r
-  z = out.z;\r
-}\r
-\r
-void COpenGLView::SetOwnContext()\r
-{\r
-  if (!m_hrc)\r
-    return;\r
-\r
-  if (m_pDC) {\r
-    delete m_pDC;\r
-    m_pDC = NULL;\r
-  }\r
-\r
-  m_pDC = new CClientDC(this);\r
-\r
-  if (wglMakeCurrent(m_pDC->m_hDC, m_hrc))\r
-    return;\r
-\r
-//error handler\r
-\r
-  return;\r
-}\r
-\r
-void COpenGLView::OnMouseMove(UINT nFlags, CPoint point)\r
-{\r
-    SetOwnContext();\r
-    if(nFlags & MK_LBUTTON)\r
-    {\r
-    if(nFlags & MK_SHIFT)\r
-    {\r
-      /* Track translation */\r
-      double x = point.x - m_mousePosition.x;\r
-      double y = point.y - m_mousePosition.y;\r
-      x /= m_width/2;\r
-      y /= m_height/2;\r
-      m_translate[0] += x;\r
-      m_translate[1] += y;\r
-\r
-      m_mousePosition = point;\r
-    }\r
-    else\r
-    {\r
-      /* Track rotation */\r
-          double x, y, z, angle;\r
-\r
-          TrackBall(point, m_mousePosition, angle, x, y, z);\r
-          m_mousePosition = point;\r
-\r
-          glMatrixMode(GL_MODELVIEW);\r
-          glPushMatrix();\r
-          glLoadIdentity();\r
-          glRotated(angle, x, y, z);\r
-          glMultMatrixd(m_rotate);\r
-          glGetDoublev(GL_MODELVIEW_MATRIX, m_rotate);\r
-          glPopMatrix();\r
-    }\r
-    }\r
-\r
-  DrawScene();\r
-\r
-  CView::OnMouseMove(nFlags, point);\r
-}\r
-\r
-void COpenGLView::OnLButtonDown(UINT nFlags, CPoint point)\r
-{\r
-  m_mousePosition = point;\r
-  CView::OnLButtonDown(nFlags, point);\r
-}\r
-\r
-void COpenGLView::InitCameraPosition()\r
-{\r
-  for(int i = 0; i < 16; i++)\r
-    m_rotate[i] = GLdouble(i/4 == i%4);\r
-  for(i = 0; i < 3; i++)\r
-    m_translate[i] = 0;\r
-}\r
-\r
-void COpenGLView::DrawScene(CDC* pDC)\r
-{\r
-}
\ No newline at end of file