X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=libs%2Flib3ds%2Ffile.h;fp=libs%2Flib3ds%2Ffile.h;h=41ac6907896c0fb4544a94c38831edc53189d658;hb=6c322d339ec9c5063c8f47117633b46e2a8eafd0;hp=0000000000000000000000000000000000000000;hpb=787ad7856f5074db4fe805b15bfca61553895de1;p=summerhack diff --git a/libs/lib3ds/file.h b/libs/lib3ds/file.h new file mode 100644 index 0000000..41ac690 --- /dev/null +++ b/libs/lib3ds/file.h @@ -0,0 +1,114 @@ +/* -*- c -*- */ +#ifndef INCLUDED_LIB3DS_FILE_H +#define INCLUDED_LIB3DS_FILE_H +/* + * The 3D Studio File Format Library + * Copyright (C) 1996-2001 by J.E. Hoffmann + * All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 2.1 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public + * License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * + * $Id: file.h,v 1.19 2005/06/13 11:29:10 madmac Exp $ + */ +/* The symbol LIB3DS_VERSION contains the current version number + which can be used to check the version at compile time. + The major, minor and micro version number is encoded as follows: + Version x.y.z becomes the decimal number xyyzz. */ +#define LIB3DS_VERSION 10300 + +#ifndef INCLUDED_LIB3DS_BACKGROUND_H +#include +#endif +#ifndef INCLUDED_LIB3DS_ATMOSPHERE_H +#include +#endif +#ifndef INCLUDED_LIB3DS_SHADOW_H +#include +#endif +#ifndef INCLUDED_LIB3DS_VIEWPORT_H +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/*! + * 3ds file structure + * \ingroup file + */ +struct _Lib3dsFile { + Lib3dsDword mesh_version; + Lib3dsWord keyf_revision; + char name[12+1]; + Lib3dsFloat master_scale; + Lib3dsVector construction_plane; + Lib3dsRgb ambient; + Lib3dsShadow shadow; + Lib3dsBackground background; + Lib3dsAtmosphere atmosphere; + Lib3dsViewport viewport; + Lib3dsViewport viewport_keyf; + Lib3dsIntd frames; + Lib3dsIntd segment_from; + Lib3dsIntd segment_to; + Lib3dsIntd current_frame; + Lib3dsMaterial *materials; + Lib3dsMesh *meshes; + Lib3dsCamera *cameras; + Lib3dsLight *lights; + Lib3dsNode *nodes; +}; + +extern LIB3DSAPI Lib3dsFile* lib3ds_file_load(const char *filename); +extern LIB3DSAPI Lib3dsBool lib3ds_file_save(Lib3dsFile *file, const char *filename); +extern LIB3DSAPI Lib3dsFile* lib3ds_file_new(); +extern LIB3DSAPI void lib3ds_file_free(Lib3dsFile *file); +extern LIB3DSAPI void lib3ds_file_eval(Lib3dsFile *file, Lib3dsFloat t); +extern LIB3DSAPI Lib3dsBool lib3ds_file_read(Lib3dsFile *file, Lib3dsIo *io); +extern LIB3DSAPI Lib3dsBool lib3ds_file_write(Lib3dsFile *file, Lib3dsIo *io); +extern LIB3DSAPI void lib3ds_file_insert_material(Lib3dsFile *file, Lib3dsMaterial *material); +extern LIB3DSAPI void lib3ds_file_remove_material(Lib3dsFile *file, Lib3dsMaterial *material); +extern LIB3DSAPI Lib3dsMaterial* lib3ds_file_material_by_name(Lib3dsFile *file, const char *name); +extern LIB3DSAPI void lib3ds_file_dump_materials(Lib3dsFile *file); +extern LIB3DSAPI void lib3ds_file_insert_mesh(Lib3dsFile *file, Lib3dsMesh *mesh); +extern LIB3DSAPI void lib3ds_file_remove_mesh(Lib3dsFile *file, Lib3dsMesh *mesh); +extern LIB3DSAPI Lib3dsMesh* lib3ds_file_mesh_by_name(Lib3dsFile *file, const char *name); +extern LIB3DSAPI void lib3ds_file_dump_meshes(Lib3dsFile *file); +extern LIB3DSAPI void lib3ds_file_dump_instances(Lib3dsFile *file); +extern LIB3DSAPI void lib3ds_file_insert_camera(Lib3dsFile *file, Lib3dsCamera *camera); +extern LIB3DSAPI void lib3ds_file_remove_camera(Lib3dsFile *file, Lib3dsCamera *camera); +extern LIB3DSAPI Lib3dsCamera* lib3ds_file_camera_by_name(Lib3dsFile *file, const char *name); +extern LIB3DSAPI void lib3ds_file_dump_cameras(Lib3dsFile *file); +extern LIB3DSAPI void lib3ds_file_insert_light(Lib3dsFile *file, Lib3dsLight *light); +extern LIB3DSAPI void lib3ds_file_remove_light(Lib3dsFile *file, Lib3dsLight *light); +extern LIB3DSAPI Lib3dsLight* lib3ds_file_light_by_name(Lib3dsFile *file, const char *name); +extern LIB3DSAPI void lib3ds_file_dump_lights(Lib3dsFile *file); +extern LIB3DSAPI Lib3dsNode* lib3ds_file_node_by_name(Lib3dsFile *file, const char* name, + Lib3dsNodeTypes type); +extern LIB3DSAPI Lib3dsNode* lib3ds_file_node_by_id(Lib3dsFile *file, Lib3dsWord node_id); +extern LIB3DSAPI void lib3ds_file_insert_node(Lib3dsFile *file, Lib3dsNode *node); +extern LIB3DSAPI Lib3dsBool lib3ds_file_remove_node(Lib3dsFile *file, Lib3dsNode *node); +extern LIB3DSAPI void lib3ds_file_dump_nodes(Lib3dsFile *file); +extern LIB3DSAPI void lib3ds_object_bounding_box(Lib3dsFile *file, + Lib3dsVector min, Lib3dsVector max); +extern LIB3DSAPI void lib3ds_file_bounding_box(Lib3dsFile *file, + Lib3dsVector min, Lib3dsVector max); + +#ifdef __cplusplus +} +#endif +#endif +