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
-----------------------------