资源简介

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


评论

共有 条评论