141 lines
3.4 KiB
C++
141 lines
3.4 KiB
C++
#ifndef AI_TYPES_H_INC
|
|
#define AI_TYPES_H_INC
|
|
|
|
#include <sys/types.h>
|
|
#include <memory.h>
|
|
|
|
#if (defined _MSC_VER)
|
|
# include "Compiler/VisualStudio/stdint.h"
|
|
#endif // (defined _MSC_VER)
|
|
|
|
#include "aiVector3D.h"
|
|
#include "aiMatrix3x3.h"
|
|
#include "aiMatrix4x4.h"
|
|
#include "aiVector3D.inl"
|
|
#include "aiMatrix3x3.inl"
|
|
#include "aiMatrix4x4.inl"
|
|
|
|
#ifdef __cplusplus
|
|
#include <string>
|
|
extern "C" {
|
|
#endif
|
|
|
|
/** Maximum dimension for strings, ASSIMP strings are zero terminated */
|
|
const size_t MAXLEN = 1024;
|
|
|
|
// ---------------------------------------------------------------------------
|
|
/** Represents a two-dimensional vector.
|
|
*/
|
|
// ---------------------------------------------------------------------------
|
|
typedef struct aiVector2D
|
|
{
|
|
#ifdef __cplusplus
|
|
aiVector2D () : x(0.0f), y(0.0f) {}
|
|
aiVector2D (float _x, float _y) : x(_x), y(_y) {}
|
|
aiVector2D (const aiVector2D& o) : x(o.x), y(o.y) {}
|
|
|
|
#endif // __cplusplus
|
|
|
|
float x, y;
|
|
} aiVector2D_t;
|
|
|
|
// aiVector3D type moved to separate header due to size of operators
|
|
|
|
// aiQuaternion type moved to separate header due to size of operators
|
|
|
|
// aiMatrix4x4 type moved to separate header due to size of operators
|
|
|
|
// ---------------------------------------------------------------------------
|
|
/** Represents a color in Red-Green-Blue space.
|
|
*/
|
|
// ---------------------------------------------------------------------------
|
|
typedef struct aiColor3D
|
|
{
|
|
#ifdef __cplusplus
|
|
aiColor3D () : r(0.0f), g(0.0f), b(0.0f) {}
|
|
aiColor3D (float _r, float _g, float _b) : r(_r), g(_g), b(_b) {}
|
|
aiColor3D (const aiColor3D& o) : r(o.r), g(o.g), b(o.b) {}
|
|
|
|
#endif // __cplusplus
|
|
|
|
float r, g, b;
|
|
} aiColor3D_t;
|
|
|
|
|
|
// ---------------------------------------------------------------------------
|
|
/** Represents a color in Red-Green-Blue space including an
|
|
* alpha component.
|
|
*/
|
|
// ---------------------------------------------------------------------------
|
|
typedef struct aiColor4D
|
|
{
|
|
#ifdef __cplusplus
|
|
aiColor4D () : r(0.0f), g(0.0f), b(0.0f), a(0.0f) {}
|
|
aiColor4D (float _r, float _g, float _b, float _a)
|
|
: r(_r), g(_g), b(_b), a(_a) {}
|
|
aiColor4D (const aiColor4D& o)
|
|
: r(o.r), g(o.g), b(o.b), a(o.a) {}
|
|
|
|
#endif // __cplusplus
|
|
|
|
float r, g, b, a;
|
|
} aiColor4D_t;
|
|
|
|
|
|
// ---------------------------------------------------------------------------
|
|
/** Represents a string, zero byte terminated
|
|
*/
|
|
// ---------------------------------------------------------------------------
|
|
typedef struct aiString
|
|
{
|
|
#ifdef __cplusplus
|
|
inline aiString() :
|
|
length(0)
|
|
{
|
|
// empty
|
|
}
|
|
|
|
inline aiString(const aiString& rOther) :
|
|
length(rOther.length)
|
|
{
|
|
memcpy( data, rOther.data, rOther.length);
|
|
this->data[this->length] = '\0';
|
|
}
|
|
|
|
void Set( const std::string& pString)
|
|
{
|
|
if( pString.length() > MAXLEN - 1)
|
|
return;
|
|
length = pString.length();
|
|
memcpy( data, pString.c_str(), length);
|
|
data[length] = 0;
|
|
}
|
|
#endif // __cplusplus
|
|
|
|
size_t length;
|
|
char data[MAXLEN];
|
|
} aiString_t;
|
|
|
|
|
|
// ---------------------------------------------------------------------------
|
|
/** Standard return type for all library functions.
|
|
*
|
|
* To check whether a function failed or not check against
|
|
* AI_SUCCESS.
|
|
*/
|
|
// ---------------------------------------------------------------------------
|
|
enum aiReturn
|
|
{
|
|
AI_SUCCESS = 0x0,
|
|
AI_FAILURE = -0x1,
|
|
AI_INVALIDFILE = -0x2,
|
|
AI_OUTOFMEMORY = -0x3,
|
|
AI_INVALIDARG = -0x4
|
|
};
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#endif
|
|
|