X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2F3dengfx%2Flibs%2Flib3ds%2Ftypes.h;fp=src%2F3dengfx%2Flibs%2Flib3ds%2Ftypes.h;h=5b6f008ea8b7c84c699de98fc5b297fc731c0165;hb=6e23259dbabaeb1711a2a5ca25b9cb421f693759;hp=0000000000000000000000000000000000000000;hpb=fe068fa879814784c45e0cb2e65dac489e8f5594;p=summerhack diff --git a/src/3dengfx/libs/lib3ds/types.h b/src/3dengfx/libs/lib3ds/types.h new file mode 100644 index 0000000..5b6f008 --- /dev/null +++ b/src/3dengfx/libs/lib3ds/types.h @@ -0,0 +1,148 @@ +/* -*- c -*- */ +#ifndef INCLUDED_LIB3DS_TYPES_H +#define INCLUDED_LIB3DS_TYPES_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: types.h,v 1.18 2005/01/11 16:12:52 madmac Exp $ + */ +#ifdef __cplusplus +extern "C" { +#endif + +#if defined (UBUILD_SHARED) && defined(_WIN32) && (!defined(__GNUC__)) +#ifdef LIB3DS_EXPORT +#define LIB3DSAPI __declspec(dllexport) +#else +#define LIB3DSAPI __declspec(dllimport) +#endif +#else +#define LIB3DSAPI +#endif + +#define LIB3DS_TRUE 1 +#define LIB3DS_FALSE 0 + +typedef int Lib3dsBool; +typedef unsigned char Lib3dsByte; +typedef unsigned short int Lib3dsWord; +typedef unsigned long Lib3dsDword; +typedef signed char Lib3dsIntb; +typedef signed short int Lib3dsIntw; +typedef signed long Lib3dsIntd; +typedef float Lib3dsFloat; +typedef double Lib3dsDouble; + +typedef float Lib3dsVector[3]; +typedef float Lib3dsTexel[2]; +typedef float Lib3dsQuat[4]; +typedef float Lib3dsMatrix[4][4]; +typedef float Lib3dsRgb[3]; +typedef float Lib3dsRgba[4]; + +#define LIB3DS_EPSILON (1e-8) +#define LIB3DS_PI 3.14159265358979323846 +#define LIB3DS_TWOPI (2.0*LIB3DS_PI) +#define LIB3DS_HALFPI (LIB3DS_PI/2.0) +#define LIB3DS_RAD_TO_DEG(x) ((180.0/LIB3DS_PI)*(x)) +#define LIB3DS_DEG_TO_RAD(x) ((LIB3DS_PI/180.0)*(x)) + +#ifndef INCLUDED_STDIO_H +#define INCLUDED_STDIO_H +#include +#endif + +#ifdef _DEBUG + #ifndef ASSERT + #include + #define ASSERT(__expr) assert(__expr) + #endif + #define LIB3DS_ERROR_LOG \ + {printf("\t***LIB3DS_ERROR_LOG*** %s : %d\n", __FILE__, __LINE__);} +#else + #ifndef ASSERT + #define ASSERT(__expr) + #endif + #define LIB3DS_ERROR_LOG +#endif + +typedef struct _Lib3dsIo Lib3dsIo; +typedef struct _Lib3dsFile Lib3dsFile; +typedef struct _Lib3dsBackground Lib3dsBackground; +typedef struct _Lib3dsAtmosphere Lib3dsAtmosphere; +typedef struct _Lib3dsShadow Lib3dsShadow; +typedef struct _Lib3dsViewport Lib3dsViewport; +typedef struct _Lib3dsMaterial Lib3dsMaterial; +typedef struct _Lib3dsFace Lib3dsFace; +typedef struct _Lib3dsBoxMap Lib3dsBoxMap; +typedef struct _Lib3dsMapData Lib3dsMapData; +typedef struct _Lib3dsMesh Lib3dsMesh; +typedef struct _Lib3dsCamera Lib3dsCamera; +typedef struct _Lib3dsLight Lib3dsLight; +typedef struct _Lib3dsBoolKey Lib3dsBoolKey; +typedef struct _Lib3dsBoolTrack Lib3dsBoolTrack; +typedef struct _Lib3dsLin1Key Lib3dsLin1Key; +typedef struct _Lib3dsLin1Track Lib3dsLin1Track; +typedef struct _Lib3dsLin3Key Lib3dsLin3Key; +typedef struct _Lib3dsLin3Track Lib3dsLin3Track; +typedef struct _Lib3dsQuatKey Lib3dsQuatKey; +typedef struct _Lib3dsQuatTrack Lib3dsQuatTrack; +typedef struct _Lib3dsMorphKey Lib3dsMorphKey; +typedef struct _Lib3dsMorphTrack Lib3dsMorphTrack; + +typedef enum _Lib3dsNodeTypes { + LIB3DS_UNKNOWN_NODE =0, + LIB3DS_AMBIENT_NODE =1, + LIB3DS_OBJECT_NODE =2, + LIB3DS_CAMERA_NODE =3, + LIB3DS_TARGET_NODE =4, + LIB3DS_LIGHT_NODE =5, + LIB3DS_SPOT_NODE =6 +} Lib3dsNodeTypes; + +typedef struct _Lib3dsNode Lib3dsNode; + +typedef union _Lib3dsUserData { + void *p; + Lib3dsIntd i; + Lib3dsDword d; + Lib3dsFloat f; + Lib3dsMaterial *material; + Lib3dsMesh *mesh; + Lib3dsCamera *camera; + Lib3dsLight *light; + Lib3dsNode *node; +} Lib3dsUserData; + +#ifndef LIB3DS_EXPORT + /* The purpose of this variable is to force a recompile of any code + * that links to the lib3ds library whenever there is an incompatible + * change in the header files. It should be sufficient to include + * any lib3ds header file in any source file to satisfy this dependency. + * + * This variable will be updated any time there is an incompatible change + * in the lib3ds data structures. + */ +// int lib3ds_version1_3; +#endif + +#ifdef __cplusplus +} +#endif +#endif