www.pudn.com > VC++Delaunay.rar > DelaunayView.h


// DelaunayView.h : interface of the CDelaunayView class 
// 
///////////////////////////////////////////////////////////////////////////// 
 
#if !defined(AFX_DELAUNAYVIEW_H__8BFDEC2F_B5F7_11D3_AB59_080039014899__INCLUDED_) 
#define AFX_DELAUNAYVIEW_H__8BFDEC2F_B5F7_11D3_AB59_080039014899__INCLUDED_ 
 
#include 
#include 
#include 
#include "Triangle.h"	// Added by ClassView 
#include "LightMaterial.h" 
#include "Lighting.h" 
 
typedef struct 
{ 
	int a; 
	int b; 
	int c; 
} array; 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
 
class CDelaunayView : public CView 
{ 
protected: // create from serialization only 
	CDelaunayView(); 
	DECLARE_DYNCREATE(CDelaunayView) 
 
// Attributes 
public: 
	CDelaunayDoc* GetDocument(); 
 
// Operations 
public: 
 
// Overrides 
	// ClassWizard generated virtual function overrides 
	//{{AFX_VIRTUAL(CDelaunayView) 
	public: 
	virtual void OnDraw(CDC* pDC);  // overridden to draw this view 
	virtual BOOL PreCreateWindow(CREATESTRUCT& cs); 
	protected: 
	//}}AFX_VIRTUAL 
 
// Implementation 
//////////////////////////////////////////// 
public: 
	double b[4][4][4]; 
	double Bezier(POI p); 
	double Power(double a,int e); 
	int Factorial(int n); 
	double S(POI p1,POI p2,POI p3); 
	POI GetTriNormal(POI p1,POI p2,POI p3); 
	POI PointOnEdge_3(double x1, double y1, double x2, double y2); 
	POI BaryCenter(double x1, double y1,double z1,double x2, double y2,double z2,double x3, double y3,double z3); 
	void HCT(CTriangle* temp,int p); 
	void CreateMaterial(); 
	void CreateLights(); 
	void DrawPoints(); 
	void DrawTris(); 
	void DrawPoint(int i); 
	BOOL bSetupPixelFormat(); 
	void InitOpenGl(); 
	void DrawScene(void); 
	int DelTriList(double x,double y,int p); 
	void DrawTri(CTriangle *tri); 
	array Wher(CPointPos *pos); 
	int m_len;int m_oy;int m_ox;//坐标变换用 
	int m_Dimension;//画2维或3维 
	int m_HCT;//是否细分 
	POI m_hct[10]; 
	int m_Draw_what;//画Line or Fill or Wang 
//OpenGl///////////////////////////////////// 
	//HGLRC hglrc; 
	CClientDC *m_pDC; 
	CRect m_oldRect; 
 
	double m_translate_x;double m_translate_y;double m_translate_z; 
	double m_rotate_angle; 
	double m_gl_x;POI eye; 
	double m_gl_y; 
	double m_gl_z; 
 
	float m_colorRed; 
	float m_colorGreen; 
	float m_colorBlue; 
    BOOL m_bMaskRed; 
	BOOL m_bMaskGreen; 
	BOOL m_bMaskBlue; 
    GLfloat m_materialAmb[4]; 
	GLfloat m_materialDif[4]; 
	GLfloat m_materialSpe[4]; 
    GLfloat m_materialEmi[4]; 
	GLfloat m_matshininess; 
	BOOL m_bMaterial; 
 
	GLfloat m_lightAmb[4]; 
	GLfloat m_lightDif[4]; 
	GLfloat m_lightSpe[4]; 
	GLfloat m_lightPos[4]; 
//OpenGl///////////////////////////////////// 
 
	CDelaunayDoc* m_pDoc; 
	//CMainFrame* m_MainFrame; 
//////////////////////////////////////////// 
	virtual ~CDelaunayView(); 
#ifdef _DEBUG 
	virtual void AssertValid() const; 
	virtual void Dump(CDumpContext& dc) const; 
#endif 
 
protected: 
 
// Generated message map functions 
protected: 
	//{{AFX_MSG(CDelaunayView) 
	afx_msg void OnSize(UINT nType, int cx, int cy); 
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); 
	afx_msg void OnLButtonDown(UINT nFlags, CPoint point); 
	afx_msg void OnMouseMove(UINT nFlags, CPoint point); 
	afx_msg void OnDestroy(); 
	afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags); 
	afx_msg void OnCorlorMaterial(); 
	afx_msg void OnUpdateCorlorMaterial(CCmdUI* pCmdUI); 
	afx_msg void OnUpdateLight(CCmdUI* pCmdUI); 
	afx_msg void OnLight(); 
	afx_msg void OnButtonTwo(); 
	afx_msg void OnUpdateButtonTwo(CCmdUI* pCmdUI); 
	afx_msg void OnButtonThree(); 
	afx_msg void OnUpdateButtonThree(CCmdUI* pCmdUI); 
	afx_msg void OnButtonHct(); 
	afx_msg void OnUpdateButtonHct(CCmdUI* pCmdUI); 
	afx_msg void OnButtonFill(); 
	afx_msg void OnUpdateButtonFill(CCmdUI* pCmdUI); 
	afx_msg void OnButtonLine(); 
	afx_msg void OnUpdateButtonLine(CCmdUI* pCmdUI); 
	afx_msg void OnButtonWnag(); 
	//}}AFX_MSG 
	DECLARE_MESSAGE_MAP() 
}; 
 
#ifndef _DEBUG  // debug version in DelaunayView.cpp 
inline CDelaunayDoc* CDelaunayView::GetDocument() 
   { return (CDelaunayDoc*)m_pDocument; } 
#endif 
 
///////////////////////////////////////////////////////////////////////////// 
 
//{{AFX_INSERT_LOCATION}} 
// Microsoft Visual C++ will insert additional declarations immediately before the previous line. 
 
#endif // !defined(AFX_DELAUNAYVIEW_H__8BFDEC2F_B5F7_11D3_AB59_080039014899__INCLUDED_)