openCARP
Doxygen code documentation for the open cardiac electrophysiology simulator openCARP
Classes | Macros | Typedefs | Functions | Variables
IGBheader.h File Reference
#include <cstdio>
#include <cstdlib>
#include <fstream>
#include <zlib.h>
#include <cstring>
#include <cctype>
#include <cassert>
#include <cmath>
#include <limits>
#include <algorithm>
#include <type_traits>
#include "short_float.h"
Include dependency graph for IGBheader.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  List
 
struct  S_Complex
 
struct  D_Complex
 
union  rgba
 
class  IGBheader
 

Macros

#define NALLOC   100
 
#define NUL   0
 
#define INCONNU   0
 
#define IGB_BIG_ENDIAN   666666666
 
#define IGB_LITTLE_ENDIAN   777777777
 
#define N_SYSTEMES   2
 
#define IGB_BYTE   1 /* -- byte ----------------------------------- */
 
#define IGB_CHAR   2 /* -- Char ----------------------------------- */
 
#define IGB_SHORT   3 /* -- short ---------------------------------- */
 
#define IGB_LONG   4 /* -- long ----------------------------------- */
 
#define IGB_FLOAT   5 /* -- float ---------------------------------- */
 
#define IGB_DOUBLE   6 /* -- Double --------------------------------- */
 
#define IGB_COMPLEX   7 /* -- 2 x float (real part, imaginary part) -- */
 
#define IGB_D_COMPLEX   8 /* -- 2 x Double (real part, imaginary part) - */
 
#define IGB_RGBA   9 /* -- 4 x byte (red, green, blue, alpha) ----- */
 
#define IGB_STRUCTURE   10 /* -- Structure ------------------------------ */
 
#define IGB_POINTER   11 /* -- void * --------------------------------- */
 
#define IGB_LIST   12 /* -- List --------------------------------- */
 
#define IGB_INT   13 /* -- integer -------------------------------- */
 
#define IGB_UINT   14 /* -- unsigned integer------------------------ */
 
#define IGB_USHORT   15 /* -- unsigned short integer------------------ */
 
#define IGB_VEC3_f   16 /* -- 3 X float ------------------------------ */
 
#define IGB_VEC3_d   17 /* -- 3 X double ----------------------------- */
 
#define IGB_VEC4_f   18 /* -- 4 X float ------------------------------ */
 
#define IGB_VEC4_d   19 /* -- 4 X double ----------------------------- */
 
#define IGB_HFLOAT   20 /* -- half float ----------------------------- */
 
#define IGB_VEC9_f   21 /* -- 9 X foat ------------------------------- */
 
#define IGB_VEC9_d   22 /* -- 9 X double ----------------------------- */
 
#define IGB_MIN_TYPE   1
 
#define IGB_MAX_TYPE   22
 
#define Byte   hByte
 
#define MIN_TRAME   0
 
#define C8   0
 
#define C4   1
 
#define HEX   2
 
#define HEXEDGES   3
 
#define HEXBRIDGES   4
 
#define HEXLINES   5
 
#define HEX2   6
 
#define MAX_TRAME   6
 
#define NTRAMES   7
 
#define IGB_ENDIAN_VAL   -1.24e5
 
#define IGB_LITTLE_END_REP   0,48,242,199
 
#define ERR_EOF_IN_HEADER   1
 
#define ERR_LINE_TOO_LONG   2
 
#define ERR_UNPRINTABLE_CHAR   3
 
#define ERR_IGB_SYNTAX   4
 
#define ERR_UNDEFINED_X_Y_TYPE   5
 
#define ERR_SIZE_REDEFINED   6
 
#define ERR_SIZE_NOT_DEFINED   7
 
#define WARN_DIM_INCONSISTENT   256
 
#define PrMTYPES
 
#define RGBA_ROUGE   3
 
#define RGBA_VERT   2
 
#define RGBA_BLEU   1
 
#define RGBA_ALPHA   0
 
#define HFLT_MIN   -65504
 
#define HFLT_MAX   65504
 
#define CONVERT_TYPE(D, m, M, B)
 

Typedefs

typedef struct List List
 
typedef unsigned char byte
 
typedef unsigned char Byte
 
typedef char * String
 
typedef signed char Char
 
typedef struct S_Complex S_Complex
 
typedef double Double
 
typedef struct D_Complex D_Complex
 
typedef float Float
 
typedef int Int
 
typedef long Long
 
typedef unsigned int UInt
 
typedef short Short
 
typedef int BooleaN
 
typedef int Flag
 
typedef char * RDir
 
typedef char * RFile
 
typedef char * RWDir
 
typedef char * RWFile
 
typedef char * WDir
 
typedef char * WFile
 
typedef char ** Text
 
typedef void Any
 
typedef union rgba rgba
 

Functions

template<class T >
std::enable_if<!std::numeric_limits< T >::is_integer, bool >::type almost_equal (T x, T y, int ulp=2)
 
template<class T >
int read_IGB_data (T *dp, int numt, IGBheader *h, char *buf=NULL)
 
template<class T >
IGB_convert_buffer_datum (IGBheader *, void *buf, int a)
 

Variables

bool Header_Quiet
 
const char * Header_Type [IGB_MAX_TYPE+1]
 
const size_t Data_Size [IGB_MAX_TYPE+1]
 
const unsigned short Num_Components [IGB_MAX_TYPE+1]
 
const char * Header_Systeme [N_SYSTEMES]
 
const unsigned long Header_Systeme_No [N_SYSTEMES]
 
char Header_Message [256]
 

Macro Definition Documentation

◆ Byte

#define Byte   hByte

Definition at line 85 of file IGBheader.h.

◆ C4

#define C4   1

Definition at line 90 of file IGBheader.h.

◆ C8

#define C8   0

Definition at line 89 of file IGBheader.h.

◆ CONVERT_TYPE

#define CONVERT_TYPE (   D,
  m,
  M,
 
)
Value:
{ if(datum > M) datum = M; else if(datum < m) datum = m; \
const D a0 = static_cast<D>(datum); (*reinterpret_cast<D*>(B))=a0;}

convert the value stored in variable datum to type D, clipping it to the range [m, M] and store it in the location pointed to by B

Definition at line 519 of file IGBheader.h.

◆ ERR_EOF_IN_HEADER

#define ERR_EOF_IN_HEADER   1

Definition at line 105 of file IGBheader.h.

◆ ERR_IGB_SYNTAX

#define ERR_IGB_SYNTAX   4

Definition at line 108 of file IGBheader.h.

◆ ERR_LINE_TOO_LONG

#define ERR_LINE_TOO_LONG   2

Definition at line 106 of file IGBheader.h.

◆ ERR_SIZE_NOT_DEFINED

#define ERR_SIZE_NOT_DEFINED   7

Definition at line 111 of file IGBheader.h.

◆ ERR_SIZE_REDEFINED

#define ERR_SIZE_REDEFINED   6

Definition at line 110 of file IGBheader.h.

◆ ERR_UNDEFINED_X_Y_TYPE

#define ERR_UNDEFINED_X_Y_TYPE   5

Definition at line 109 of file IGBheader.h.

◆ ERR_UNPRINTABLE_CHAR

#define ERR_UNPRINTABLE_CHAR   3

Definition at line 107 of file IGBheader.h.

◆ HEX

#define HEX   2

Definition at line 91 of file IGBheader.h.

◆ HEX2

#define HEX2   6

Definition at line 95 of file IGBheader.h.

◆ HEXBRIDGES

#define HEXBRIDGES   4

Definition at line 93 of file IGBheader.h.

◆ HEXEDGES

#define HEXEDGES   3

Definition at line 92 of file IGBheader.h.

◆ HEXLINES

#define HEXLINES   5

Definition at line 94 of file IGBheader.h.

◆ HFLT_MAX

#define HFLT_MAX   65504

Definition at line 171 of file IGBheader.h.

◆ HFLT_MIN

#define HFLT_MIN   -65504

Definition at line 170 of file IGBheader.h.

◆ IGB_BIG_ENDIAN

#define IGB_BIG_ENDIAN   666666666

Definition at line 54 of file IGBheader.h.

◆ IGB_BYTE

#define IGB_BYTE   1 /* -- byte ----------------------------------- */

Definition at line 60 of file IGBheader.h.

◆ IGB_CHAR

#define IGB_CHAR   2 /* -- Char ----------------------------------- */

Definition at line 61 of file IGBheader.h.

◆ IGB_COMPLEX

#define IGB_COMPLEX   7 /* -- 2 x float (real part, imaginary part) -- */

Definition at line 66 of file IGBheader.h.

◆ IGB_D_COMPLEX

#define IGB_D_COMPLEX   8 /* -- 2 x Double (real part, imaginary part) - */

Definition at line 67 of file IGBheader.h.

◆ IGB_DOUBLE

#define IGB_DOUBLE   6 /* -- Double --------------------------------- */

Definition at line 65 of file IGBheader.h.

◆ IGB_ENDIAN_VAL

#define IGB_ENDIAN_VAL   -1.24e5

Definition at line 101 of file IGBheader.h.

◆ IGB_FLOAT

#define IGB_FLOAT   5 /* -- float ---------------------------------- */

Definition at line 64 of file IGBheader.h.

◆ IGB_HFLOAT

#define IGB_HFLOAT   20 /* -- half float ----------------------------- */

Definition at line 79 of file IGBheader.h.

◆ IGB_INT

#define IGB_INT   13 /* -- integer -------------------------------- */

Definition at line 72 of file IGBheader.h.

◆ IGB_LIST

#define IGB_LIST   12 /* -- List --------------------------------- */

Definition at line 71 of file IGBheader.h.

◆ IGB_LITTLE_END_REP

#define IGB_LITTLE_END_REP   0,48,242,199

Definition at line 102 of file IGBheader.h.

◆ IGB_LITTLE_ENDIAN

#define IGB_LITTLE_ENDIAN   777777777

Definition at line 55 of file IGBheader.h.

◆ IGB_LONG

#define IGB_LONG   4 /* -- long ----------------------------------- */

Definition at line 63 of file IGBheader.h.

◆ IGB_MAX_TYPE

#define IGB_MAX_TYPE   22

Definition at line 83 of file IGBheader.h.

◆ IGB_MIN_TYPE

#define IGB_MIN_TYPE   1

Definition at line 82 of file IGBheader.h.

◆ IGB_POINTER

#define IGB_POINTER   11 /* -- void * --------------------------------- */

Definition at line 70 of file IGBheader.h.

◆ IGB_RGBA

#define IGB_RGBA   9 /* -- 4 x byte (red, green, blue, alpha) ----- */

Definition at line 68 of file IGBheader.h.

◆ IGB_SHORT

#define IGB_SHORT   3 /* -- short ---------------------------------- */

Definition at line 62 of file IGBheader.h.

◆ IGB_STRUCTURE

#define IGB_STRUCTURE   10 /* -- Structure ------------------------------ */

Definition at line 69 of file IGBheader.h.

◆ IGB_UINT

#define IGB_UINT   14 /* -- unsigned integer------------------------ */

Definition at line 73 of file IGBheader.h.

◆ IGB_USHORT

#define IGB_USHORT   15 /* -- unsigned short integer------------------ */

Definition at line 74 of file IGBheader.h.

◆ IGB_VEC3_d

#define IGB_VEC3_d   17 /* -- 3 X double ----------------------------- */

Definition at line 76 of file IGBheader.h.

◆ IGB_VEC3_f

#define IGB_VEC3_f   16 /* -- 3 X float ------------------------------ */

Definition at line 75 of file IGBheader.h.

◆ IGB_VEC4_d

#define IGB_VEC4_d   19 /* -- 4 X double ----------------------------- */

Definition at line 78 of file IGBheader.h.

◆ IGB_VEC4_f

#define IGB_VEC4_f   18 /* -- 4 X float ------------------------------ */

Definition at line 77 of file IGBheader.h.

◆ IGB_VEC9_d

#define IGB_VEC9_d   22 /* -- 9 X double ----------------------------- */

Definition at line 81 of file IGBheader.h.

◆ IGB_VEC9_f

#define IGB_VEC9_f   21 /* -- 9 X foat ------------------------------- */

Definition at line 80 of file IGBheader.h.

◆ INCONNU

#define INCONNU   0

Definition at line 52 of file IGBheader.h.

◆ MAX_TRAME

#define MAX_TRAME   6

Definition at line 96 of file IGBheader.h.

◆ MIN_TRAME

#define MIN_TRAME   0

Definition at line 88 of file IGBheader.h.

◆ N_SYSTEMES

#define N_SYSTEMES   2

Definition at line 56 of file IGBheader.h.

◆ NALLOC

#define NALLOC   100

Definition at line 49 of file IGBheader.h.

◆ NTRAMES

#define NTRAMES   7

Definition at line 97 of file IGBheader.h.

◆ NUL

#define NUL   0

Definition at line 51 of file IGBheader.h.

◆ PrMTYPES

#define PrMTYPES

Definition at line 115 of file IGBheader.h.

◆ RGBA_ALPHA

#define RGBA_ALPHA   0

Definition at line 168 of file IGBheader.h.

◆ RGBA_BLEU

#define RGBA_BLEU   1

Definition at line 167 of file IGBheader.h.

◆ RGBA_ROUGE

#define RGBA_ROUGE   3

Definition at line 165 of file IGBheader.h.

◆ RGBA_VERT

#define RGBA_VERT   2

Definition at line 166 of file IGBheader.h.

◆ WARN_DIM_INCONSISTENT

#define WARN_DIM_INCONSISTENT   256

Definition at line 112 of file IGBheader.h.

Typedef Documentation

◆ Any

typedef void Any

Definition at line 149 of file IGBheader.h.

◆ BooleaN

typedef int BooleaN

Definition at line 140 of file IGBheader.h.

◆ byte

typedef unsigned char byte

Definition at line 126 of file IGBheader.h.

◆ Byte

typedef unsigned char Byte

Definition at line 128 of file IGBheader.h.

◆ Char

typedef signed char Char

Definition at line 131 of file IGBheader.h.

◆ D_Complex

typedef struct D_Complex D_Complex

Definition at line 134 of file IGBheader.h.

◆ Double

typedef double Double

Definition at line 133 of file IGBheader.h.

◆ Flag

typedef int Flag

Definition at line 141 of file IGBheader.h.

◆ Float

typedef float Float

Definition at line 135 of file IGBheader.h.

◆ Int

typedef int Int

Definition at line 136 of file IGBheader.h.

◆ List

typedef struct List List

◆ Long

typedef long Long

Definition at line 137 of file IGBheader.h.

◆ RDir

typedef char* RDir

Definition at line 142 of file IGBheader.h.

◆ RFile

typedef char* RFile

Definition at line 143 of file IGBheader.h.

◆ rgba

typedef union rgba rgba

◆ RWDir

typedef char* RWDir

Definition at line 144 of file IGBheader.h.

◆ RWFile

typedef char* RWFile

Definition at line 145 of file IGBheader.h.

◆ S_Complex

typedef struct S_Complex S_Complex

Definition at line 132 of file IGBheader.h.

◆ Short

typedef short Short

Definition at line 139 of file IGBheader.h.

◆ String

typedef char* String

Definition at line 129 of file IGBheader.h.

◆ Text

typedef char** Text

Definition at line 148 of file IGBheader.h.

◆ UInt

typedef unsigned int UInt

Definition at line 138 of file IGBheader.h.

◆ WDir

typedef char* WDir

Definition at line 146 of file IGBheader.h.

◆ WFile

typedef char* WFile

Definition at line 147 of file IGBheader.h.

Function Documentation

◆ almost_equal()

template<class T >
std::enable_if<!std::numeric_limits<T>::is_integer, bool>::type almost_equal ( x,
y,
int  ulp = 2 
)

Definition at line 40 of file IGBheader.h.

◆ IGB_convert_buffer_datum()

template<class T >
T IGB_convert_buffer_datum ( IGBheader ,
void *  buf,
int  a 
)

◆ read_IGB_data()

template<class T >
int read_IGB_data ( T *  dp,
int  numt,
IGBheader h,
char *  buf = NULL 
)

Variable Documentation

◆ Data_Size

const size_t Data_Size[IGB_MAX_TYPE+1]

Definition at line 264 of file IGBheader.cc.

◆ Header_Message

char Header_Message[256]

Definition at line 247 of file IGBheader.cc.

◆ Header_Quiet

bool Header_Quiet

Definition at line 246 of file IGBheader.cc.

◆ Header_Systeme

const char* Header_Systeme[N_SYSTEMES]

Definition at line 289 of file IGBheader.cc.

◆ Header_Systeme_No

const unsigned long Header_Systeme_No[N_SYSTEMES]

Definition at line 282 of file IGBheader.cc.

◆ Header_Type

const char* Header_Type[IGB_MAX_TYPE+1]

Definition at line 249 of file IGBheader.cc.

◆ Num_Components

const unsigned short Num_Components[IGB_MAX_TYPE+1]

the number of components for each data type

Definition at line 275 of file IGBheader.cc.