资源简介
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 实现文件拷贝
相关资源
- 3DS max格式坦克模型
- 详细的MOT文件格式说明
- OpenGL实现3DS文件中的模型自由旋转
- 3DS文件导入OpenGL并动态显示源码
- Siliphen的CSV文件格式解析器ver2
- PandaDirectXMaxExporter for 3DS Max 2012 64位
- BMP文件转化为PGM文件格式
- 3ds模型导入opengl,实现旋转平移缩放
- 3dsmax2018keygen64.rar
- 3DsMAX人体骨骼模型可用于OPENGL读取处
- 3dsMax快速建模专用脚本40多个必备ma
- 3DsMax中文在线-教程帮助文档
- 铁轨FBX文件格式
- 3DS文件导入opengl程序
- gps文件格式转换工具gpsbabel
- ts_tools ue4
- 3dsmax2014注册机
- DOS文件格式转化为UNIX文件格式的C程序
- ELF文件格式详解中文
- DBC 文件格式
- 3ds max插件\\破碎脚本SplitItUp
- VIEW3DS.exe
- 3Dsmax三维动画制作毕业论文
- 3DSMAX人头生成器,方便你制作三维立
- IDL,气象站点逐小时数据处理,转换
- 3ds a9转安装b9破解文件
- 3ds Max uvtools 3.0
- 把Linux中的文本文件格式转为Windows的
- coff文件格式详细说明、有关DSP的cof
- vtk文件格式说明 类和函数介绍
评论
共有 条评论