資源簡介
本程序由QT+OpenGL開發(fā)而成,能以點,線,面,平滑表面等方式顯示模型,支持自由旋轉,縮放,拖動,能檢查模型是否完整,并自動補全模型,能讀取ascii編碼的obj模型和CAD模型

代碼片段和文件信息
#include?
#include?
#include?
#include?“math.h“
//#include?
#include?“glworkplace.h“
GLWorkplace::GLWorkplace(QWidget?*parent)
????:?QGLWidget(parent)
{
timer?=?new?QTimer(this);
modified?=?false;
}
GLWorkplace::~GLWorkplace()
{
//glDeleteList(obj);
for(int?i=0;i deleteTexture(texture[i]);
}
void?GLWorkplace::initializeGL()
{
stopSign?=?0; //stopSign=1則不能加載文件
xrot=0;
yrot=0;
zrot=0;
xsig=ysig=zsig=0;
showAxis?=?true;
showBox?=?false;
showNormals?=?false;
texturesOn?=?false;
isSmooth?=?false;
editMade?=?NONE;
editDraw?=?false;
otfselectionType?=?TWO;
textureNum?=?0;
infoBar?=?false;
scanRatio?=?0;
pointSize?=?1.0f;
lineWidth?=?1.0f;
paintType?=?F; //初始化作圖模式為三角形面
om?=?new?CobjectModel;
QWidget::setMouseTracking(true);//開啟鼠標跟蹤,若為true則當鼠標不按下按鈕也能觸發(fā)mouseMoveEvent()
cfps?=?0;
//************置matrix_rotate為單位矩陣用于trackball保存動作后的矩陣**********
glPushMatrix();
glLoadIdentity();
glGetDoublev(GL_MODELVIEW_MATRIX?matrix_rotate);
glPopMatrix();
//*****************************************************************************
glEnable(?GL_TEXTURE_2D?);
//啟動紋理貼圖
glClearColor(0.0f0.0f0.0f0.0f);
glClearDepth(?1.0?);
//設置深度緩存
//glEnable(?GL_DEPTH_TEST?);
//glDisable(?GL_DEPTH_TEST?);
//啟用深度測試
glDepthFunc(?GL_LEQUAL?);
//所作深度測試的類型
glClearStencil(0.0f);
glEnable(GL_STENCIL_TEST);
//使用0表示清除模版,啟用?模版測試
//glHint(?GL_PERSPECTIVE_CORRECTION_HINT?GL_NICEST?);
//紋理壓縮GL_FASTESTGL_NICESTGL_DONT_CARE并使紋理與模型顏色混合
//反走樣*************************
glEnable?(GL_LINE_SMOOTH);
????glEnable?(GL_BLEND);
????glBlendFunc?(GL_SRC_ALPHA?GL_ONE_MINUS_SRC_ALPHA);
????glHint?(GL_LINE_SMOOTH_HINT?GL_DONT_CARE);
//*********************************************
//************消除多邊形背面*****************
//glCullFace(GL_BACK);
//glFrontFace(GL_CCW);
//glEnable(GL_CULL_FACE);
//*******************************************
glEnable(GL_DEPTH_TEST);
glEnable(GL_LIGHTING);
//glLightfv(?GL_LIGHT1?GL_SPECULAR?lightSpecular?);
glLightfv(?GL_LIGHT0?GL_AMBIENT?light0.ambient?);
//環(huán)境光
glLightfv(?GL_LIGHT0?GL_DIFFUSE?light0.diffuse?);
//鏡面光
glLightfv(?GL_LIGHT0?GL_SPECULAR?light0.specular?);
glLightfv(?GL_LIGHT0?GL_POSITION?light0.position?);
//燈光位置
//glLightModelfv(GL_LIGHT_MODEL_COLOR_CONTROL?GL_SEPARATE_SPECULAR_COLOR);
????glEnable(GL_LIGHT0);
//開啟燈光
glEnable(GL_COLOR_MATERIAL);
//起用本身顏色混合
glShadeModel(GL_SMOOTH);
//平滑陰影
//**************融合****************
//glEnable(?GL_BLEND?);
//glBlendFunc(?GL_SRC_ALPHA?GL_ONE?);
//glColor4f(?1.0?1.0?1.0?0.5?);
//glColor4f(0.1f?0.3f?0.3f?0.5f);
//**********************************
obj?=?makeobject();
//objfw?=?makeframework();
//*******************透視投影*****************
glMatrixMode(GL_PROJECTION);
//glMatrixMode(GL_PROJECTION)指明接下來的兩行代碼將影響projection?matrix(投影
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????379904??2008-11-04?20:52??3DLab\3DLab.ncb
?????文件????????388??2002-03-03?22:51??3DLab\3DLab.pro
?????文件??????20759??2019-05-03?21:15??3DLab\3DLab.pro.user
?????文件????????724??2007-05-26?16:48??3DLab\3DLab.qrc
?????文件????????875??2008-11-04?20:51??3DLab\3DLab.sln
?????文件????????874??2007-05-15?16:33??3DLab\3DLab.sln.old
????..A..H.?????33280??2008-11-04?20:52??3DLab\3DLab.suo
????..A..H.?????35840??2007-06-14?10:11??3DLab\3DLab.suo.old
?????文件??????17648??2008-11-04?20:51??3DLab\3DLab.vcproj
?????文件??????15699??2002-03-03?22:51??3DLab\3DLab.vcproj.8.00.old
?????文件???????1433??2008-11-04?20:52??3DLab\3DLab.vcproj.DEVELOP-4F9E29B.xuyangjie.user
?????文件???????1407??2007-06-14?10:11??3DLab\3DLab.vcproj.PP.LimiT.user
?????文件??????29451??2007-05-26?16:10??3DLab\glworkplace.cpp
?????文件???????5613??2007-05-20?20:30??3DLab\glworkplace.h
?????文件??????26443??2007-05-28?05:36??3DLab\glworkplace_Runtime.cpp
?????文件???????1339??2005-12-15?01:07??3DLab\images\copy.png
?????文件???????1323??2005-12-15?01:07??3DLab\images\cut.png
?????文件???????2107??2006-06-18?23:50??3DLab\images\delete_face.png
?????文件???????1296??2007-05-26?16:53??3DLab\images\fixholes.png
?????文件???????1205??2007-05-26?16:54??3DLab\images\fixpoints.png
?????文件???????1416??2006-01-02?16:42??3DLab\images\flat.png
?????文件???????3447??2006-01-02?16:42??3DLab\images\flatlines.png
?????文件???????7358??2007-05-15?13:39??3DLab\images\icon.ico
?????文件???????6013??2007-02-04?19:21??3DLab\images\lightposition.png
?????文件????????852??2005-12-15?01:07??3DLab\images\new.png
?????文件???????4655??2007-02-04?19:20??3DLab\images\no_edit.png
?????文件???????2221??2005-12-15?01:07??3DLab\images\open.png
?????文件???????1745??2005-12-15?01:07??3DLab\images\paste.png
?????文件???????1387??2006-01-02?16:42??3DLab\images\points.png
?????文件???????3512??2006-01-02?15:42??3DLab\images\save.png
............此處省略60個文件信息
- 上一篇:算法設計與分析.pdf
- 下一篇:DXPerience 11.2.5 漢化+破解
評論
共有 條評論