资源简介
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 实现文件拷贝
相关资源
- Intel® Parallel Studio XE 2016 Update 1 专业
- VRay 3.60.03 for 3dsmax 2013-2018破解补丁
- ttf文件格式解析及应用
- PE文件格式高清结构图
- 水晶石技法3DS.MAX_VRAY室内空间表现书
-
3DS MAXsc
ript动画制作基础[高清PDF]+随 - 3ds Max游戏角色面部高级绑定视频教程
- du3ds.rar
- YUV Viewer 附测试文件格式:yuv420
- fbx20133_3dsmax2013_win_x64
- 3dsmax,fbx转biped插件
- 3dsmax建模
- opencollada插件2018 64位 v1.6.23 免费版
-
3ds MAXsc
ript飞浪脚本零起点入门系列 - ISO_IEC_14496-12_2015
- 气象数据.img格式文件的详解和读取方
- OPenGL实现 3DS卫星地球
- 3ds2mesh 3ds转mesh ogre
- 3dsmax大作业—沙发
- 3Dslicer软件操作指导
- 3DSMAX导出GLTF插件内涵多个版本,安装
- ELF文件格式分析.pdf
- TMS320C6713dsp库
- 3D-IO Flatiron 1.70 For 3Ds Max 2013 - XFORCE.
- 百度文库器免券源文件格式
-
3ds MAXsc
ript脚本语言完全学习手册电 - QtOpenGL以及Graphics-View框架整合的演示
- Tencent QQ皮肤图像文件格式Gft转png或
-
3ds MAXsc
ript脚本语言 完全学习手册 - EFDC软件输入文件格式 介绍
评论
共有 条评论