00001 #ifdef _WIN32
00002 #pragma once
00003 #pragma warning (disable: 4996)
00004 #endif
00005
00006 #ifndef _MRCH_CUBE_H_
00007 #define _MRCH_CUBE_H_
00008
00009 #include <stdio.h>
00010 #include <stdlib.h>
00011 #include "../utils/fv_dictstr.h"
00012
00013
00014 #if defined(__cplusplus)
00015 extern "C" {
00016 #endif
00017
00018 #ifdef _WIN32
00019 # ifdef IOManager_EXPORTS
00020 # define DLL_MAPPING __declspec(dllexport)
00021 # else
00022 # define DLL_MAPPING __declspec(dllimport)
00023 # endif
00024 #else
00025 # define DLL_MAPPING
00026 #endif
00027
00028 #ifdef _WIN32
00029 #define FV_API __stdcall
00030 #else
00031 #define FV_API
00032 #endif
00033
00034 typedef enum FV_Error_enum {
00035 FV_SUCCESS = 0,
00036 FV_FAILED = -1,
00037 FV_INVALID_TYPE = 1,
00038 FV_INVALID_FILE_PATH,
00039 FV_CANT_OPEN_FILE,
00040 FV_ERROR_FILE_NOT_FOUND,
00041 } FV_Result;
00042
00043 typedef enum FV_IO_Items {
00044 FV_NONE = 0x000,
00045 FV_MESH_PRISM = 0x001,
00046 FV_MESH_TETRA = 0x002,
00047 FV_MESH = FV_MESH_PRISM | FV_MESH_TETRA,
00048 FV_FLD_DG = 0x010,
00049 FV_FLD_STD = 0x020,
00050 FV_FIELD = FV_FLD_DG | FV_FLD_STD,
00051 FV_INIT_MESH = 0x100,
00052 FV_INIT_FIELD_DG = 0x200,
00053 FV_INIT_FIELD_STD = 0x400,
00054
00055 } IO_Type;
00056
00057 #define IS_MESH(w) ((w) & FV_MESH)
00058 #define IS_FIELD(w) ((w) & FV_FIELD)
00059 #define IS_DG_FIELD(w) ((w) & FV_FLD_DG)
00060
00061
00062
00063 DLL_MAPPING FV_Result FV_API
00064 IOMgr_Initialize(const int& argc, const char** argv);
00065
00066
00067 DLL_MAPPING FV_Result FV_API
00068 IOMgr_Destroy();
00069
00070
00071 DLL_MAPPING FV_Result FV_API
00072 IOMgr_FileExists(const char* fname, const StrDict* map, const unsigned int size, IO_Type* type);
00073
00074
00075 DLL_MAPPING FV_Result FV_API
00076 IOMgr_ReadFromFile(const char* fname, void* pItem, IO_Type type);
00077
00078
00079 #if defined(__cplusplus)
00080 }
00081 #endif
00082
00083 #endif
00084