X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2F3dengfx%2Flibs%2Flib3ds%2Fmesh.h;fp=src%2F3dengfx%2Flibs%2Flib3ds%2Fmesh.h;h=0000000000000000000000000000000000000000;hb=6c322d339ec9c5063c8f47117633b46e2a8eafd0;hp=61b336cf0eeb69d264feab5fe5a5686a57b86559;hpb=787ad7856f5074db4fe805b15bfca61553895de1;p=summerhack diff --git a/src/3dengfx/libs/lib3ds/mesh.h b/src/3dengfx/libs/lib3ds/mesh.h deleted file mode 100644 index 61b336c..0000000 --- a/src/3dengfx/libs/lib3ds/mesh.h +++ /dev/null @@ -1,153 +0,0 @@ -/* -*- c -*- */ -#ifndef INCLUDED_LIB3DS_MESH_H -#define INCLUDED_LIB3DS_MESH_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: mesh.h,v 1.16 2004/12/31 16:17:15 reed Exp $ - */ - -#ifndef INCLUDED_LIB3DS_TYPES_H -#include -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/*! - * Triangular mesh point - * \ingroup mesh - */ -typedef struct _Lib3dsPoint { - Lib3dsVector pos; -} Lib3dsPoint; - -/*! - * Triangular mesh face - * \ingroup mesh - * \sa Lib3dsFaceFlag - */ -struct _Lib3dsFace { - Lib3dsUserData user; /*! Arbitrary user data */ - char material[64]; /*! Material name */ - Lib3dsWord points[3]; /*! Indices into mesh points list */ - Lib3dsWord flags; /*! See Lib3dsFaceFlag, below */ - Lib3dsDword smoothing; /*! Bitmask; each bit identifies a group */ - Lib3dsVector normal; -}; - - -/*! Meaning of _Lib3dsFace::flags. ABC are points of the current face (A: is -1st vertex, B is 2nd vertex, C is 3rd vertex */ -typedef enum { - LIB3DS_FACE_FLAG_VIS_AC = 0x1, /*!< Bit 0: Edge visibility AC */ - LIB3DS_FACE_FLAG_VIS_BC = 0x2, /*!< Bit 1: Edge visibility BC */ - LIB3DS_FACE_FLAG_VIS_AB = 0x4, /*!< Bit 2: Edge visibility AB */ - LIB3DS_FACE_FLAG_WRAP_U = 0x8, /*!< Bit 3: Face is at tex U wrap seam */ - LIB3DS_FACE_FLAG_WRAP_V = 0x10, /*!< Bit 4: Face is at tex V wrap seam */ - LIB3DS_FACE_FLAG_UNK7 = 0x80, /* Bit 5-8: Unused ? */ - LIB3DS_FACE_FLAG_UNK10 = 0x400, /* Bit 9-10: Random ? */ - /* Bit 11-12: Unused ? */ - LIB3DS_FACE_FLAG_SELECT_3 = (1<<13), /*!< Bit 13: Selection of the face in selection 3*/ - LIB3DS_FACE_FLAG_SELECT_2 = (1<<14), /*!< Bit 14: Selection of the face in selection 2*/ - LIB3DS_FACE_FLAG_SELECT_1 = (1<<15) /*!< Bit 15: Selection of the face in selection 1*/ -} Lib3dsFaceFlag; - -/*! - * Triangular mesh box mapping settings - * \ingroup mesh - */ -struct _Lib3dsBoxMap { - char front[64]; - char back[64]; - char left[64]; - char right[64]; - char top[64]; - char bottom[64]; -}; - -/*! - * Lib3dsMapData maptype - * \ingroup tracks - */ -typedef enum { - LIB3DS_MAP_NONE =0xFFFF, - LIB3DS_MAP_PLANAR =0, - LIB3DS_MAP_CYLINDRICAL =1, - LIB3DS_MAP_SPHERICAL =2 -} Lib3dsMapType; - -/*! - * Triangular mesh texture mapping data - * \ingroup mesh - */ -struct _Lib3dsMapData { - Lib3dsWord maptype; - Lib3dsVector pos; - Lib3dsMatrix matrix; - Lib3dsFloat scale; - Lib3dsFloat tile[2]; - Lib3dsFloat planar_size[2]; - Lib3dsFloat cylinder_height; -}; - -/*! - * Triangular mesh object - * \ingroup mesh - */ -struct _Lib3dsMesh { - Lib3dsUserData user; /*! Arbitrary user data */ - Lib3dsMesh *next; - char name[64]; /*! Mesh name */ - Lib3dsByte color; - Lib3dsMatrix matrix; /*! Transformation matrix for mesh data */ - Lib3dsDword points; /*! Number of points in point list */ - Lib3dsPoint *pointL; /*! Point list */ - Lib3dsDword flags; /*! Number of flags in per-point flags list */ - Lib3dsWord *flagL; /*! Per-point flags list */ - Lib3dsDword texels; /*! Number of U-V texel coordinates */ - Lib3dsTexel *texelL; /*! U-V texel coordinates */ - Lib3dsDword faces; /*! Number of faces in face list */ - Lib3dsFace *faceL; /*! Face list */ - Lib3dsBoxMap box_map; - Lib3dsMapData map_data; -}; - -extern LIB3DSAPI Lib3dsMesh* lib3ds_mesh_new(const char *name); -extern LIB3DSAPI void lib3ds_mesh_free(Lib3dsMesh *mesh); -extern LIB3DSAPI Lib3dsBool lib3ds_mesh_new_point_list(Lib3dsMesh *mesh, Lib3dsDword points); -extern LIB3DSAPI void lib3ds_mesh_free_point_list(Lib3dsMesh *mesh); -extern LIB3DSAPI Lib3dsBool lib3ds_mesh_new_flag_list(Lib3dsMesh *mesh, Lib3dsDword flags); -extern LIB3DSAPI void lib3ds_mesh_free_flag_list(Lib3dsMesh *mesh); -extern LIB3DSAPI Lib3dsBool lib3ds_mesh_new_texel_list(Lib3dsMesh *mesh, Lib3dsDword texels); -extern LIB3DSAPI void lib3ds_mesh_free_texel_list(Lib3dsMesh *mesh); -extern LIB3DSAPI Lib3dsBool lib3ds_mesh_new_face_list(Lib3dsMesh *mesh, Lib3dsDword flags); -extern LIB3DSAPI void lib3ds_mesh_free_face_list(Lib3dsMesh *mesh); -extern LIB3DSAPI void lib3ds_mesh_bounding_box(Lib3dsMesh *mesh, Lib3dsVector min, Lib3dsVector max); -extern LIB3DSAPI void lib3ds_mesh_calculate_normals(Lib3dsMesh *mesh, Lib3dsVector *normalL); -extern LIB3DSAPI void lib3ds_mesh_dump(Lib3dsMesh *mesh); -extern LIB3DSAPI Lib3dsBool lib3ds_mesh_read(Lib3dsMesh *mesh, Lib3dsIo *io); -extern LIB3DSAPI Lib3dsBool lib3ds_mesh_write(Lib3dsMesh *mesh, Lib3dsIo *io); - -#ifdef __cplusplus -} -#endif -#endif -