F5types.h

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 }    /* extern "C" */
00188 #endif
00189 
00190 
00191 #endif  /* __F5_types_H */
00192