00001 #ifndef __F5_types_H
00002 #define __F5_types_H
00003
00004 #include <F5/hdf5inc.h>
00005 #include <F5/F5defs.h>
00006
00007 #include "F5WinDLLApi.h"
00008
00009 #ifdef __cplusplus
00010 extern "C"
00011 {
00012 #endif
00013
00014 typedef unsigned char F5_byte_t;
00015 typedef unsigned short F5_int16_t;
00016 typedef F5_int16_t F5_uint16_t;
00017 typedef uint32_t F5_uint32_t;
00018 typedef uint64_t F5_uint64_t;
00019 typedef float F5_float_t;
00020 typedef double F5_double_t;
00021
00022 typedef struct { F5_byte_t r,g,b; } F5_rgb_t;
00023 typedef struct { F5_byte_t r,g,b,a; } F5_rgba_t;
00024 typedef struct { F5_byte_t b,g,r; } F5_bgr_t;
00025 typedef struct { F5_int16_t r,g,b; } F5_rgb16_t;
00026
00028 typedef struct { F5_float_t r,g,b; } F5_rgb_real_t;
00029 typedef struct { F5_float_t r,g,b,a; } F5_rgba_real_t;
00030
00031 #define F5T_RGB F5T_rgb_g()
00032 #define F5T_RGBA F5T_rgba_g()
00033 #define F5T_BGR F5T_bgr_g()
00034 #define F5T_RGB16 F5T_rgb16_g()
00035 #define F5T_RGB_REAL F5T_rgb_real_g()
00036 #define F5T_RGBA_REAL F5T_rgba_real_g()
00037
00038 F5_API hid_t F5T_rgb_g();
00039 F5_API hid_t F5T_rgba_g();
00040 F5_API hid_t F5T_bgr_g();
00041 F5_API hid_t F5T_rgb16_g();
00042 F5_API hid_t F5T_rgb_real_g();
00043 F5_API hid_t F5T_rgba_real_g();
00044 F5_API hid_t F5T_vec3_double_g();
00045
00046
00075 typedef struct
00076 {
00078 char *name;
00080 hid_t type_id;
00082 int rank,
00084 dimension,
00086 components;
00093 int *indexing;
00095 int *parity;
00097 int *covariance;
00099 int *reverse_indexing;
00101 char *metric;
00103 char *transformation_rule;
00104
00105 } F5Ttensor_t;
00106
00123 F5_API F5Ttensor_t*newF5Ttensor(const char*name, int rank, int dimension, int components);
00124
00129 F5_API F5Ttensor_t*F5Ttensor_commit(hid_t loc_id, F5Ttensor_t*);
00130
00134 F5_API int deleteF5Ttensor(F5Ttensor_t*);
00135
00136
00144 F5_API hid_t F5Tcommit(hid_t save_location, const char*name, hid_t TransientTypeID);
00145
00152 F5_API int F5Tis_convertible(hid_t first_type, hid_t second_type);
00153
00157 F5_API hid_t F5Ttransient_F5field_Array_enum();
00158
00163 F5_API hid_t F5Tsave_F5field_enum(hid_t loc_id);
00164
00168 F5_API herr_t F5Tset_field_enum(hid_t loc_id, hid_t enum_type_id, ArrayType what);
00169
00173 F5_API ArrayType F5Tget_field_Array_enum(hid_t loc_id, hid_t enum_type_id,
00174 int*major_version, int*minor_version, int*release_version);
00175
00180 F5_API herr_t F5Tset_field_ProcArray_enum(hid_t loc_id, ProceduralArrayType what, hid_t ProcIDLocation);
00181
00182 F5_API ProceduralArrayType F5Tget_field_ProcArray_enum(hid_t loc_id, hid_t enum_type_id,
00183 int*major_version, int*minor_version, int*release_version);
00184
00185
00186 #ifdef __cplusplus
00187 }
00188 #endif
00189
00190
00191 #endif
00192