| 1 | |
|---|
| 2 | #ifndef INCLUDED_LIB3DS_TYPES_H |
|---|
| 3 | #define INCLUDED_LIB3DS_TYPES_H |
|---|
| 4 | |
|---|
| 5 | |
|---|
| 6 | |
|---|
| 7 | |
|---|
| 8 | |
|---|
| 9 | |
|---|
| 10 | |
|---|
| 11 | |
|---|
| 12 | |
|---|
| 13 | |
|---|
| 14 | |
|---|
| 15 | |
|---|
| 16 | |
|---|
| 17 | |
|---|
| 18 | |
|---|
| 19 | |
|---|
| 20 | |
|---|
| 21 | |
|---|
| 22 | |
|---|
| 23 | |
|---|
| 24 | |
|---|
| 25 | #ifdef __cplusplus |
|---|
| 26 | extern "C" { |
|---|
| 27 | #endif |
|---|
| 28 | |
|---|
| 29 | |
|---|
| 30 | |
|---|
| 31 | |
|---|
| 32 | |
|---|
| 33 | |
|---|
| 34 | |
|---|
| 35 | |
|---|
| 36 | |
|---|
| 37 | |
|---|
| 38 | |
|---|
| 39 | |
|---|
| 40 | |
|---|
| 41 | #define LIB3DSAPI |
|---|
| 42 | |
|---|
| 43 | #define LIB3DS_TRUE 1 |
|---|
| 44 | #define LIB3DS_FALSE 0 |
|---|
| 45 | |
|---|
| 46 | typedef int Lib3dsBool; |
|---|
| 47 | typedef unsigned char Lib3dsByte; |
|---|
| 48 | typedef unsigned short Lib3dsWord; |
|---|
| 49 | typedef unsigned int Lib3dsDword; |
|---|
| 50 | typedef signed char Lib3dsIntb; |
|---|
| 51 | typedef signed short Lib3dsIntw; |
|---|
| 52 | typedef signed int Lib3dsIntd; |
|---|
| 53 | typedef float Lib3dsFloat; |
|---|
| 54 | typedef double Lib3dsDouble; |
|---|
| 55 | |
|---|
| 56 | typedef float Lib3dsVector[3]; |
|---|
| 57 | typedef float Lib3dsTexel[2]; |
|---|
| 58 | typedef float Lib3dsQuat[4]; |
|---|
| 59 | typedef float Lib3dsMatrix[4][4]; |
|---|
| 60 | typedef float Lib3dsRgb[3]; |
|---|
| 61 | typedef float Lib3dsRgba[4]; |
|---|
| 62 | |
|---|
| 63 | #define LIB3DS_EPSILON (1e-8) |
|---|
| 64 | #define LIB3DS_PI 3.14159265358979323846 |
|---|
| 65 | #define LIB3DS_TWOPI (2.0*LIB3DS_PI) |
|---|
| 66 | #define LIB3DS_HALFPI (LIB3DS_PI/2.0) |
|---|
| 67 | #define LIB3DS_DEG(x) ((180.0/LIB3DS_PI)*(x)) |
|---|
| 68 | #define LIB3DS_RAD(x) ((LIB3DS_PI/180.0)*(x)) |
|---|
| 69 | |
|---|
| 70 | #ifndef INCLUDED_STDIO_H |
|---|
| 71 | #define INCLUDED_STDIO_H |
|---|
| 72 | #include <stdio.h> |
|---|
| 73 | #endif |
|---|
| 74 | |
|---|
| 75 | #ifdef _DEBUG |
|---|
| 76 | #ifndef ASSERT |
|---|
| 77 | #include <assert.h> |
|---|
| 78 | #define ASSERT(__expr) assert(__expr) |
|---|
| 79 | #endif |
|---|
| 80 | #define LIB3DS_ERROR_LOG \ |
|---|
| 81 | {printf("\t***LIB3DS_ERROR_LOG*** %s : %d\n", __FILE__, __LINE__);} |
|---|
| 82 | #else |
|---|
| 83 | #ifndef ASSERT |
|---|
| 84 | #define ASSERT(__expr) |
|---|
| 85 | #endif |
|---|
| 86 | #define LIB3DS_ERROR_LOG |
|---|
| 87 | #endif |
|---|
| 88 | |
|---|
| 89 | typedef struct _Lib3dsFile Lib3dsFile; |
|---|
| 90 | typedef struct _Lib3dsBackground Lib3dsBackground; |
|---|
| 91 | typedef struct _Lib3dsAtmosphere Lib3dsAtmosphere; |
|---|
| 92 | typedef struct _Lib3dsShadow Lib3dsShadow; |
|---|
| 93 | typedef struct _Lib3dsViewport Lib3dsViewport; |
|---|
| 94 | typedef struct _Lib3dsMaterial Lib3dsMaterial; |
|---|
| 95 | typedef struct _Lib3dsFace Lib3dsFace; |
|---|
| 96 | typedef struct _Lib3dsBoxMap Lib3dsBoxMap; |
|---|
| 97 | typedef struct _Lib3dsMapData Lib3dsMapData; |
|---|
| 98 | typedef struct _Lib3dsMesh Lib3dsMesh; |
|---|
| 99 | typedef struct _Lib3dsCamera Lib3dsCamera; |
|---|
| 100 | typedef struct _Lib3dsLight Lib3dsLight; |
|---|
| 101 | typedef struct _Lib3dsBoolKey Lib3dsBoolKey; |
|---|
| 102 | typedef struct _Lib3dsBoolTrack Lib3dsBoolTrack; |
|---|
| 103 | typedef struct _Lib3dsLin1Key Lib3dsLin1Key; |
|---|
| 104 | typedef struct _Lib3dsLin1Track Lib3dsLin1Track; |
|---|
| 105 | typedef struct _Lib3dsLin3Key Lib3dsLin3Key; |
|---|
| 106 | typedef struct _Lib3dsLin3Track Lib3dsLin3Track; |
|---|
| 107 | typedef struct _Lib3dsQuatKey Lib3dsQuatKey; |
|---|
| 108 | typedef struct _Lib3dsQuatTrack Lib3dsQuatTrack; |
|---|
| 109 | typedef struct _Lib3dsMorphKey Lib3dsMorphKey; |
|---|
| 110 | typedef struct _Lib3dsMorphTrack Lib3dsMorphTrack; |
|---|
| 111 | |
|---|
| 112 | typedef enum _Lib3dsNodeTypes { |
|---|
| 113 | LIB3DS_UNKNOWN_NODE =0, |
|---|
| 114 | LIB3DS_AMBIENT_NODE =1, |
|---|
| 115 | LIB3DS_OBJECT_NODE =2, |
|---|
| 116 | LIB3DS_CAMERA_NODE =3, |
|---|
| 117 | LIB3DS_TARGET_NODE =4, |
|---|
| 118 | LIB3DS_LIGHT_NODE =5, |
|---|
| 119 | LIB3DS_SPOT_NODE =6 |
|---|
| 120 | } Lib3dsNodeTypes; |
|---|
| 121 | |
|---|
| 122 | typedef struct _Lib3dsNode Lib3dsNode; |
|---|
| 123 | |
|---|
| 124 | typedef union _Lib3dsUserData { |
|---|
| 125 | void *p; |
|---|
| 126 | Lib3dsIntd i; |
|---|
| 127 | Lib3dsDword d; |
|---|
| 128 | Lib3dsFloat f; |
|---|
| 129 | Lib3dsMaterial *material; |
|---|
| 130 | Lib3dsMesh *mesh; |
|---|
| 131 | Lib3dsCamera *camera; |
|---|
| 132 | Lib3dsLight *light; |
|---|
| 133 | Lib3dsNode *node; |
|---|
| 134 | } Lib3dsUserData; |
|---|
| 135 | |
|---|
| 136 | #ifdef __cplusplus |
|---|
| 137 | } |
|---|
| 138 | #endif |
|---|
| 139 | #endif |
|---|
| 140 | |
|---|
| 141 | |
|---|
| 142 | |
|---|
| 143 | |
|---|
| 144 | |
|---|
| 145 | |
|---|
| 146 | |
|---|
| 147 | |
|---|