2 #ifndef INCLUDED_LIB3DS_FILE_H
3 #define INCLUDED_LIB3DS_FILE_H
5 * The 3D Studio File Format Library
6 * Copyright (C) 1996-2001 by J.E. Hoffmann <je-h@gmx.net>
9 * This program is free software; you can redistribute it and/or modify it
10 * under the terms of the GNU Lesser General Public License as published by
11 * the Free Software Foundation; either version 2.1 of the License, or (at
12 * your option) any later version.
14 * This program is distributed in the hope that it will be useful, but
15 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
17 * License for more details.
19 * You should have received a copy of the GNU Lesser General Public License
20 * along with this program; if not, write to the Free Software Foundation,
21 * Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
23 * $Id: file.h,v 1.19 2005/06/13 11:29:10 madmac Exp $
25 /* The symbol LIB3DS_VERSION contains the current version number
26 which can be used to check the version at compile time.
27 The major, minor and micro version number is encoded as follows:
28 Version x.y.z becomes the decimal number xyyzz. */
29 #define LIB3DS_VERSION 10300
31 #ifndef INCLUDED_LIB3DS_BACKGROUND_H
32 #include <lib3ds/background.h>
34 #ifndef INCLUDED_LIB3DS_ATMOSPHERE_H
35 #include <lib3ds/atmosphere.h>
37 #ifndef INCLUDED_LIB3DS_SHADOW_H
38 #include <lib3ds/shadow.h>
40 #ifndef INCLUDED_LIB3DS_VIEWPORT_H
41 #include <lib3ds/viewport.h>
53 Lib3dsDword mesh_version;
54 Lib3dsWord keyf_revision;
56 Lib3dsFloat master_scale;
57 Lib3dsVector construction_plane;
60 Lib3dsBackground background;
61 Lib3dsAtmosphere atmosphere;
62 Lib3dsViewport viewport;
63 Lib3dsViewport viewport_keyf;
65 Lib3dsIntd segment_from;
66 Lib3dsIntd segment_to;
67 Lib3dsIntd current_frame;
68 Lib3dsMaterial *materials;
70 Lib3dsCamera *cameras;
75 extern LIB3DSAPI Lib3dsFile* lib3ds_file_load(const char *filename);
76 extern LIB3DSAPI Lib3dsBool lib3ds_file_save(Lib3dsFile *file, const char *filename);
77 extern LIB3DSAPI Lib3dsFile* lib3ds_file_new();
78 extern LIB3DSAPI void lib3ds_file_free(Lib3dsFile *file);
79 extern LIB3DSAPI void lib3ds_file_eval(Lib3dsFile *file, Lib3dsFloat t);
80 extern LIB3DSAPI Lib3dsBool lib3ds_file_read(Lib3dsFile *file, Lib3dsIo *io);
81 extern LIB3DSAPI Lib3dsBool lib3ds_file_write(Lib3dsFile *file, Lib3dsIo *io);
82 extern LIB3DSAPI void lib3ds_file_insert_material(Lib3dsFile *file, Lib3dsMaterial *material);
83 extern LIB3DSAPI void lib3ds_file_remove_material(Lib3dsFile *file, Lib3dsMaterial *material);
84 extern LIB3DSAPI Lib3dsMaterial* lib3ds_file_material_by_name(Lib3dsFile *file, const char *name);
85 extern LIB3DSAPI void lib3ds_file_dump_materials(Lib3dsFile *file);
86 extern LIB3DSAPI void lib3ds_file_insert_mesh(Lib3dsFile *file, Lib3dsMesh *mesh);
87 extern LIB3DSAPI void lib3ds_file_remove_mesh(Lib3dsFile *file, Lib3dsMesh *mesh);
88 extern LIB3DSAPI Lib3dsMesh* lib3ds_file_mesh_by_name(Lib3dsFile *file, const char *name);
89 extern LIB3DSAPI void lib3ds_file_dump_meshes(Lib3dsFile *file);
90 extern LIB3DSAPI void lib3ds_file_dump_instances(Lib3dsFile *file);
91 extern LIB3DSAPI void lib3ds_file_insert_camera(Lib3dsFile *file, Lib3dsCamera *camera);
92 extern LIB3DSAPI void lib3ds_file_remove_camera(Lib3dsFile *file, Lib3dsCamera *camera);
93 extern LIB3DSAPI Lib3dsCamera* lib3ds_file_camera_by_name(Lib3dsFile *file, const char *name);
94 extern LIB3DSAPI void lib3ds_file_dump_cameras(Lib3dsFile *file);
95 extern LIB3DSAPI void lib3ds_file_insert_light(Lib3dsFile *file, Lib3dsLight *light);
96 extern LIB3DSAPI void lib3ds_file_remove_light(Lib3dsFile *file, Lib3dsLight *light);
97 extern LIB3DSAPI Lib3dsLight* lib3ds_file_light_by_name(Lib3dsFile *file, const char *name);
98 extern LIB3DSAPI void lib3ds_file_dump_lights(Lib3dsFile *file);
99 extern LIB3DSAPI Lib3dsNode* lib3ds_file_node_by_name(Lib3dsFile *file, const char* name,
100 Lib3dsNodeTypes type);
101 extern LIB3DSAPI Lib3dsNode* lib3ds_file_node_by_id(Lib3dsFile *file, Lib3dsWord node_id);
102 extern LIB3DSAPI void lib3ds_file_insert_node(Lib3dsFile *file, Lib3dsNode *node);
103 extern LIB3DSAPI Lib3dsBool lib3ds_file_remove_node(Lib3dsFile *file, Lib3dsNode *node);
104 extern LIB3DSAPI void lib3ds_file_dump_nodes(Lib3dsFile *file);
105 extern LIB3DSAPI void lib3ds_object_bounding_box(Lib3dsFile *file,
106 Lib3dsVector min, Lib3dsVector max);
107 extern LIB3DSAPI void lib3ds_file_bounding_box(Lib3dsFile *file,
108 Lib3dsVector min, Lib3dsVector max);