#if !defined(AFX_3D_H__FBDDC045_1182_4A10_85C0_F3D3A6EB6307__INCLUDED_)
#define AFX_3D_H__FBDDC045_1182_4A10_85C0_F3D3A6EB6307__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// 3D.h : header file
//

/////////////////////////////////////////////////////////////////////////////
// C3D view

class C3D : public CView
{
protected:
	C3D();           // protected constructor used by dynamic creation
	DECLARE_DYNCREATE(C3D)

// Attributes
public:

// Operations
public:
	void RenderScene();
	BOOL InitializeOpenGL();
	BOOL SetupPixelFormat();
	void OnViewZoomOut();
	void OnViewZoomIn();
	HGLRC m_hRC;
	CDC*	m_pDC;

	double	eye[3];
	double	center[3];

	float m_xPos;
	float m_yPos;
	float m_zPos;
	double	rot[3];
	int mouseX;
	int mouseY;
	float	zoomFactor;
// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(C3D)
	protected:
	virtual void OnDraw(CDC* pDC);      // overridden to draw this view
	//}}AFX_VIRTUAL

// Implementation
protected:
	virtual ~C3D();
#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif

	// Generated message map functions
protected:
	//{{AFX_MSG(C3D)
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
	afx_msg void OnDestroy();
	afx_msg BOOL OnEraseBkgnd(CDC* pDC);
	afx_msg void OnMouseMove(UINT nFlags, CPoint point);
	afx_msg BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt);
	afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
	afx_msg void OnSize(UINT nType, int cx, int cy);
	afx_msg void OnMove(int x, int y);
	afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_3D_H__FBDDC045_1182_4A10_85C0_F3D3A6EB6307__INCLUDED_)
