77范文网 - 专业文章范例文档资料分享平台

研究生计算机图形学课程室内场景OpenGL--实验报告(2)

来源:网络收集 时间:2019-04-09 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

void CFormCommandView::Dump(CDumpContext& dc) const { CFormView::Dump(dc); }

CToolDoc* CFormCommandView::GetDocument() // non-debug version is inline { ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CToolDoc))); return (CToolDoc*)m_pDocument; }

#endif //_DEBUG

// OnPaint

void CFormCommandView::OnPaint() { // Device context for painting CPaintDC dc(this); // Options are stored in Application CToolApp *pApp = (CToolApp *)AfxGetApp(); CRect rect; // Color back m_ControlBackColor.GetWindowRect(&rect); ScreenToClient(&rect); CBrush BrushBack(pApp->m_OptionColorGlBack); dc.FillRect(&rect,&BrushBack); }

// OnLButtonUp

void CFormCommandView::OnLButtonUp(UINT nFlags, CPoint point)

{ CRect rect; CToolApp *pApp = (CToolApp *)AfxGetApp();

6

// Option back color m_ControlBackColor.GetWindowRect(&rect); ScreenToClient(&rect); if(rect.PtInRect(point)) { CColorDialog dlg(pApp->m_OptionColorGlBack); if(dlg.DoModal()==IDOK) { pApp->m_OptionColorGlBack = dlg.GetColor(); CRenderView *pView = (CRenderView *)GetRenderView(); pView->m_ClearColorRed (float)GetRValue(pApp->m_OptionColorGlBack) / 255.0f;

pView->m_ClearColorGreen

(float)GetGValue(pApp->m_OptionColorGlBack) / 255.0f;

pView->m_ClearColorBlue (float)GetBValue(pApp->m_OptionColorGlBack) / 255.0f;

this->InvalidateRect(&rect,FALSE); pView->InvalidateRect(NULL,FALSE); } } CFormView::OnLButtonUp(nFlags, point); }

// GetRenderView

CView *CFormCommandView::GetRenderView() { CToolApp *pApp = (CToolApp *)AfxGetApp(); CMainFrame *pFrame = (CMainFrame *)pApp->m_pMainWnd; CView *pView = (CView *)pFrame->m_wndSplitter.GetPane(0,1); return pView; }

// Model

void CFormCommandView::OnRadioModel1() { glPolygonMode(GL_FRONT_AND_BACK,GL_LINE); this->GetRenderView()->InvalidateRect(NULL,FALSE); }

7

= = =

void CFormCommandView::OnRadioModel2() { glPolygonMode(GL_FRONT_AND_BACK,GL_FILL); this->GetRenderView()->InvalidateRect(NULL,FALSE); }

// OnCheckSmooth

void CFormCommandView::OnCheckSmooth() { m_Smooth = !m_Smooth; if(m_Smooth) glShadeModel(GL_SMOOTH); else glShadeModel(GL_FLAT); this->GetRenderView()->InvalidateRect(NULL,FALSE); }

// OnCheckAntialias // Toggle antialiased lines

void CFormCommandView::OnCheckAntialias() { m_Antialias = !m_Antialias; if(m_Antialias) { glEnable(GL_LINE_SMOOTH); glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA); glHint(GL_LINE_SMOOTH_HINT,GL_NICEST); glLineWidth(1.5f); } else { glDisable(GL_LINE_SMOOTH); glDisable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA); glHint(GL_LINE_SMOOTH_HINT,GL_NICEST); glLineWidth(1.0f); }

8

}

GetRenderView()->InvalidateRect(NULL,FALSE);

3、MainFrm.cpp #include \#include \

// Download by http://www.codefans.net #include \

#include \#include \

#ifdef _DEBUG

#define new DEBUG_NEW #undef THIS_FILE

static char THIS_FILE[] = __FILE__; #endif

// CMainFrame

IMPLEMENT_DYNAMIC(CMainFrame, CFrameWnd)

BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) //{{AFX_MSG_MAP(CMainFrame) ON_WM_CREATE() ON_WM_PAINT() //}}AFX_MSG_MAP END_MESSAGE_MAP()

static UINT indicators[] = { ID_SEPARATOR, // status line indicator ID_INDICATOR_CAPS, ID_INDICATOR_NUM, ID_INDICATOR_SCRL, };

// CMainFrame construction/destruction CMainFrame::CMainFrame() { }

9

CMainFrame::~CMainFrame() { }

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CFrameWnd::OnCreate(lpCreateStruct) == -1) return -1; if (!m_wndToolBar.Create(this) || !m_wndToolBar.LoadToolBar(IDR_MAINFRAME)) { TRACE0(\ return -1; // fail to create } if (!m_wndStatusBar.Create(this) || !m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT))) { TRACE0(\ return -1; // fail to create } m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC); return 0; }

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) { cs.cx = 600; cs.cy = 500; return CFrameWnd::PreCreateWindow(cs); }

// CMainFrame diagnostics #ifdef _DEBUG

void CMainFrame::AssertValid() const { CFrameWnd::AssertValid(); }

10

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库研究生计算机图形学课程室内场景OpenGL--实验报告(2)在线全文阅读。

研究生计算机图形学课程室内场景OpenGL--实验报告(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/581201.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: