library: lib3ds 2.0
====================================================
file: lib3ds_node.c
line: 169
original codes:
----------------------------
Lib3dsCameraNode*
lib3ds_node_new_camera(Lib3dsCamera *camera) {
Lib3dsNode *node = lib3ds_node_new(LIB3DS_NODE_CAMERA);
Lib3dsCameraNode *n;
assert(camera);
node = lib3ds_node_new(LIB3DS_NODE_CAMERA);
strcpy(node->name, camera->name);
n = (Lib3dsCameraNode*)node;
lib3ds_track_resize(&n->pos_track, 1);
lib3ds_vector_copy(n->pos_track.keys[0].value, camera->position);
lib3ds_track_resize(&n->fov_track, 1);
n->fov_track.keys[0].value[0] = camera->fov;
lib3ds_track_resize(&n->roll_track, 1);
n->roll_track.keys[0].value[0] = camera->roll;
return n;
}
-----------------------------
my fixed code:
Lib3dsCameraNode*
lib3ds_node_new_camera(Lib3dsCamera *camera) {
Lib3dsNode *node;
Lib3dsCameraNode *n;
assert(camera);
node = lib3ds_node_new(LIB3DS_NODE_CAMERA);
strcpy(node->name, camera->name);
n = (Lib3dsCameraNode*)node;
lib3ds_track_resize(&n->pos_track, 1);
lib3ds_vector_copy(n->pos_track.keys[0].value, camera->position);
lib3ds_track_resize(&n->fov_track, 1);
n->fov_track.keys[0].value[0] = camera->fov;
lib3ds_track_resize(&n->roll_track, 1);
n->roll_track.keys[0].value[0] = camera->roll;
return n;
}
-------------------------------------------------------------------------------
file: lib3ds_file.c
/* cheungmine */
#ifndef FREE_S
# define FREE_S(p) if(p){ void *t=(void*)(p);(p)=0;free(t); }
#endif
/*!
* Free a Lib3dsFile object and all of its resources.
*
* /param file The Lib3dsFile object to be freed.
*/
void
lib3ds_file_free(Lib3dsFile* file) {
Lib3dsNode *p, *q;
assert(file);
lib3ds_file_reserve_materials(file, 0, TRUE);
FREE_S(file->materials)
lib3ds_file_reserve_cameras(file, 0, TRUE);
FREE_S(file->cameras)
lib3ds_file_reserve_lights(file, 0, TRUE);
FREE_S(file->lights)
lib3ds_file_reserve_meshes(file, 0, TRUE);
FREE_S(file->meshes)
for (p = file->nodes; p; p = q) {
q = p->next;
lib3ds_node_free(p);
}
free(file);
}
-----------------------------------------------------------------------------------
lib3ds2.0 BUG fix by cheungmine 2009-2-14 china,shanghai
-----------------------------
分享到:
相关推荐
LIB3DS例子,OpenGL显示3DS文件,编译example时,只要把example/glstub.h.in中的 #include <@GLUT_HEADER_DIR@/glut.h> 改成你的glut.h所在目录
包含lib3ds-1.2.0 lib3ds-1.3.0 lib3ds-20080909 三个版本
lib_wwapi-2.0.12.6.aar
lib3ds 库函数,lib3ds is an overall software library for managing 3D-Studio Release 3 and 4 ".3DS" files.
lib3ds is an overall software library for managing 3D-Studio Release 3 and 4 ".3DS" files. It is a free alternative to Autodesk's 3DS File Toolkit for managing 3DS files. It started out in 1996 to be ...
VC+OpenGL+Lib3ds实现3ds文件导入渲染并予以漫游。使用右键菜单(已添加快捷键)及菜单栏菜单可以调整视口显示。
lib-flexible 移动端适配解决方案
1)包含BUG修复后的最新的lib3ds2.0的全部代码和VS2005的测试项目工程。 2)Windows下的完整的OpenGL库(非源码)。 3)SGI的OpenGL2的库。 全部内容即可编写Windows或SGI的OpenGL程序。
OpenGl开发库2.0 里面有opengl2.0开发所需要的动态链接库,lib文件等等
It is a source code for loading a simple 3ds model with the help of lib3ds. The lib3ds is not included (can be found on the net).
A free and open source library that support loading 3DS files. (GNU GPL)
stm32f10x_lib.h相关头文件 2.0库全部stm32f10x_lib.h相关头文件 2.0库全部stm32f10x_lib.h相关头文件 2.0库全部stm32f10x_lib.h相关头文件 2.0库全部stm32f10x_lib.h相关头文件 2.0库全部stm32f10x_lib.h相关头文件...
OpenGL读取3ds模型,加快OpenGL开发速度。
The 3D Studio File Format Library This program is free software
struts-2.0.11.1-lib.zipstruts-2.0.11.1-lib.zipstruts-2.0.11.1-lib.zipstruts-2.0.11.1-lib.zip
网页自适应js文件
Clib2.0源码
.3ds文件是OBJ的二进制形式,并且多很多信息。有一个C语言写的开源库可以用来加.3ds文件,这就是lib3ds。
本人用lib3ds导入模型后 采用最原始的画三角形的方法遍历模型中所有的点,画出模型 但在光照的时候出现模型表面有很多杂斑(enable了深度缓存)请问 如何去除杂斑?而且如果在场景中添加一个地板 地板会覆盖部分模型...
opencv早期版本使用的库文件,搜集了Lib及Dll两类文件,包含cv200.lib,cv200d.lib,cxcore200.lib,cxcore200d.lib,highgui200.lib,highgui200d.lib等,cv100.dll,cv200.dll,cv200d.dll,cxcore200.dll,cxcore200d.dll,...