資源簡介
3DS格式文件詳解及讀取方法

代碼片段和文件信息
//----------------------------------------------------------------------------
//
//?版權所有?Copyright?(c)?2003?
//?Leon?Lee
//?Leon8086?in?CSDN
//
//?允許在不必征得作者的同意的情況下使用、拷貝、分發該代碼,或將將該代碼使用
//?于除了商業用途之外的其他用途,但請將以上這些說明放置于所有的拷貝之上。
//?未征得作者同意,請勿將該代碼用于商業用途。
//
//?允許在該代碼基礎上進行修改或在此基礎上進行二次開發,但請保持本說明,保證所進行的
//?修改是在本版權說明允許的范圍之內的,并保證所開發代碼也遵循上述版權說明。
//----------------------------------------------------------------------------
#if?defined?_WIN32
#include?
#else
typedef?unsigned?long DWORD;
typedef?unsigned?short WORD;
typedef?unsigned?char BYTE;
typedef?long HRESULT;
#endif
#include?
#include?
//some?symbols(most?of?them?are?std::list?etc.)?are?more?than?255?chars?
//it?will?course?a?c4786?warning
//I?don‘t?know?how?to?deal?with?it?so?just?disable?the?warning
#pragma warning?(disable:4786)
#include?“GLTypeDef.h“
#include?“3DSLoader.h“
#define?SAFE_DELETE(p) {?if(p)?{?delete?(p);?????(p)=NULL;?}?}
#define?SAFE_DELETE_ARRAY(p){?if(p)?{?delete[]?(p);???(p)=NULL;?}?}
using?namespace?std;
static?const?float?PI=3.1415926536f;
#if?((_MSC_VER)?<=?1200)????????//vc6.0
#define?for?if(0);else?for
#endif
//constructor?&?destructor
//no?comment?here
CGL3DSLoader::CGL3DSLoader(?)
{
m_dwobjectNum =?0;
m_dwTextureNum =?0;
m_dwMaterialNum =?0;
m_lpstrName =?NULL;
m_lpstrTexture =?NULL;
m_lplpVertex =?NULL;
m_lplpTexcoord =?NULL;
m_lplpFaceIndex =?NULL;
m_lpVertexNum =?NULL;
m_lpFaceNum =?NULL;
m_lpFlags =?NULL;
m_lpMaterial =?NULL;
m_lpFaceMaterialNum =?NULL;
m_lplpFaceMaterialID =?NULL;
m_lplpFaceMaterialBegin =?NULL;
m_lplpFaceMaterialEnd =?NULL;
m_IsOK =?false;
}
CGL3DSLoader::~CGL3DSLoader(?)
{
Cleanup();
}
CGL3DSLoader::CGL3DSLoader(?string?filename?)
{
m_dwobjectNum =?0;
m_dwTextureNum =?0;
m_dwMaterialNum =?0;
m_lpstrName =?NULL;
m_lpstrTexture =?NULL;
m_lplpVertex =?NULL;
m_lplpTexcoord =?NULL;
m_lplpFaceIndex =?NULL;
m_lpVertexNum =?NULL;
m_lpFaceNum =?NULL;
m_lpFlags =?NULL;
m_lpMaterial =?NULL;
m_lpFaceMaterialNum =?NULL;
m_lplpFaceMaterialID =?NULL;
m_lplpFaceMaterialBegin =?NULL;
m_lplpFaceMaterialEnd =?NULL;
m_IsOK =?false;
Create(?filename?);
}
CGL3DSLoader::MATERIALDATA::MATERIALDATA(?)
:strName(““)
strTexture(““)
{
fOffsetU =?0.0f;
fTilingU =?1.0f;
fOffsetV =?0.0f;
fTilingV =?1.0f;
fRotationW =?0.0f;
pAmbient[0]?=?0.0f;
pAmbient[1]?=?0.0f;
pAmbient[2]?=?0.0f;
pAmbient[3]?=?0.0f;
pDiffuse[0]?=?1.0f;
pDiffuse[1]?=?1.0f;
pDiffuse[2]?=?1.0f;
pDiffuse[3]?=?1.0f;
pSpecular[0]?=?1.0f;
pSpecular[1]?=?1.0f;
pSpecular[2]?=?1.0f;
pSpecular[3]?=?1.0f;
}
CGL3DSLoader::MESHDATA::MESHDATA(?)
:vtxCenter(?0?0?0?)
strName(““)
{
lpVertex =?NULL;
lpTexcoord =?NULL;
lpTriangles =?NULL;
dwVertexNum =?0;
dwFaceNum =?0;
dwFlags =?0;
lpMaterialName
=?NULL;
lpFaceMaterialNum
=?NULL;
lplpFaceMaterialIndex
=?NULL;
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????71168??2003-07-15?01:21??3453453523\從3DS文件中導入網格數據.doc
?????文件??????38006??2003-08-04?11:36??3453453523\3DSLoader.cpp
?????文件??????10104??2003-08-04?11:37??3453453523\3DSLoader.h
?????文件???????3583??2003-08-04?11:36??3453453523\GLTypeDef.h
?????文件???????2916??2004-10-04?21:33??3453453523\Cn700.com.txt
?????文件????????223??2004-10-04?20:06??3453453523\readme.htm
?????文件???????2470??2004-10-04?21:37??3453453523\readme.txt
?????目錄??????????0??2004-11-14?15:12??3453453523
-----------?---------??----------?-----??----
???????????????128470????????????????????8
- 上一篇:基于PL3105的載波通信軟件設計
- 下一篇:mycp 實現文件拷貝
評論
共有 條評論