Main Page | Modules | Alphabetical List | Data Structures | File List | Data Fields | Globals

idseq-ido.h

Go to the documentation of this file.
00001 /************************************************************************* 00002 * $Id: idseq-ido.h,v 1.1 2005/09/09 08:22:39 bellet Exp $ 00003 ************************************************************************** 00004 This software is governed by the CeCILL license under French law and 00005 abiding by the rules of distribution of free software. You can use, 00006 modify and/ or redistribute the software under the terms of the CeCILL 00007 license as circulated by CEA, CNRS and INRIA at the following URL 00008 "http://www.cecill.info". 00009 00010 As a counterpart to the access to the source code and rights to copy, 00011 modify and redistribute granted by the license, users are provided only 00012 with a limited warranty and the software's author, the holder of the 00013 economic rights, and the successive licensors have only limited 00014 liability. 00015 00016 In this respect, the user's attention is drawn to the risks associated 00017 with loading, using, modifying and/or developing or reproducing the 00018 software by the user in light of its specific status of free software, 00019 that may mean that it is complicated to manipulate, and that also 00020 therefore means that it is reserved for developers and experienced 00021 professionals having in-depth computer knowledge. Users are therefore 00022 encouraged to load and test the software's suitability as regards their 00023 requirements in conditions enabling the security of their systems and/or 00024 data to be ensured and, more generally, to use and operate it in the 00025 same conditions as regards security. 00026 00027 The fact that you are presently reading this means that you have had 00028 knowledge of the CeCILL license and that you accept its terms. 00029 00030 Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de 00031 l'Image). All rights reserved. See License.txt for details. 00032 00033 Version 1.0 05/09/2005 00034 *************************************************************************/ 00035 00036 #ifndef __IDSEQ_IDO_H__ 00037 #define __IDSEQ_IDO_H__ 00038 /************************************************************************* 00039 * 00040 * Description : Declarations diverses permettant d'utiliser le type SEQUENCE 00041 * de la bibliotheque LIBIDO 00042 * 00043 **************************************************************************/ 00044 #include "idgen.h" 00045 #include "idseq-base.h" 00046 00047 /* Types de sequence 4D */ 00048 00049 #define SEQ_CHAR (SEQ | TY_CHAR) 00050 #define SEQ_UCHAR (SEQ | TY_UCHAR) 00051 #define SEQ_SHORT (SEQ | TY_SHORT) 00052 #define SEQ_USHORT (SEQ | TY_USHORT) 00053 #define SEQ_LONG (SEQ | TY_LONG) 00054 #define SEQ_ULONG (SEQ | TY_ULONG) 00055 #define SEQ_FLOAT (SEQ | TY_FLOAT) 00056 #define SEQ_DOUBLE (SEQ | TY_DOUBLE) 00057 #define SEQ_COMPLEX (SEQ | TY_COMPLEX) 00058 #define SEQ_RGB (SEQ | TY_RGB) 00059 #define SEQ_COMPLEX_DOUBLE (SEQ | TY_COMPLEX_DOUBLE) 00060 #define SEQ_COMPLEX_FLOAT (SEQ | TY_COMPLEX_FLOAT ) 00061 #define SEQ_COMPLEX_CHAR (SEQ | TY_COMPLEX_CHAR ) 00062 #define SEQ_COMPLEX_UCHAR (SEQ | TY_COMPLEX_UCHAR ) 00063 #define SEQ_COMPLEX_SHORT (SEQ | TY_COMPLEX_SHORT ) 00064 #define SEQ_COMPLEX_USHORT (SEQ | TY_COMPLEX_USHORT) 00065 #define SEQ_COMPLEX_LONG (SEQ | TY_COMPLEX_LONG ) 00066 #define SEQ_COMPLEX_ULONG (SEQ | TY_COMPLEX_ULONG ) 00067 #define SEQ_BIT (SEQ | TY_BIT ) 00068 #define SEQ_POINTER (SEQ | TY_POINTER ) 00069 00070 /************************************************************************/ 00071 00072 typedef void **** PPPPSEQUENCE; 00073 typedef char **** PPPPSEQUENCE_CHAR; 00074 typedef unsigned char **** PPPPSEQUENCE_UCHAR; 00075 typedef float **** PPPPSEQUENCE_FLOAT; 00076 typedef double **** PPPPSEQUENCE_DOUBLE; 00077 typedef COMPLEX **** PPPPSEQUENCE_COMPLEX; 00078 typedef RGB **** PPPPSEQUENCE_RGB; 00079 typedef short **** PPPPSEQUENCE_SHORT; 00080 typedef unsigned short **** PPPPSEQUENCE_USHORT; 00081 typedef long **** PPPPSEQUENCE_LONG; 00082 typedef unsigned long **** PPPPSEQUENCE_ULONG; 00083 typedef COMPLEX_DOUBLE **** PPPPSEQUENCE_COMPLEX_DOUBLE; 00084 typedef COMPLEX_FLOAT **** PPPPSEQUENCE_COMPLEX_FLOAT; 00085 typedef COMPLEX_CHAR **** PPPPSEQUENCE_COMPLEX_CHAR; 00086 typedef COMPLEX_UCHAR **** PPPPSEQUENCE_COMPLEX_UCHAR; 00087 typedef COMPLEX_SHORT **** PPPPSEQUENCE_COMPLEX_SHORT; 00088 typedef COMPLEX_USHORT **** PPPPSEQUENCE_COMPLEX_USHORT; 00089 typedef COMPLEX_LONG **** PPPPSEQUENCE_COMPLEX_LONG; 00090 typedef COMPLEX_ULONG **** PPPPSEQUENCE_COMPLEX_ULONG; 00091 typedef PPPPSEQUENCE_UCHAR PPPPPPSEQUENCE_BIT; 00092 typedef void **** PPPPSEQUENCE_POINTER; 00093 00094 /* structure SEQUENCE */ 00095 00096 typedef struct 00097 { 00098 int UsedNbT; 00099 int UsedNbZ; /* JPR */ 00100 int UsedNbY; 00101 int UsedNbX; 00102 int subObject; /* JPR */ 00103 int DimT; 00104 int DimZ; 00105 int DimY; 00106 int DimX; 00107 int Numero; 00108 char *_message,*_fichier; 00109 int BitsPerPixel; /* nombre de bits reellement utilises */ 00110 int Type; /* IMPERATIVEMENT DERNIER DE LA STRUCTURE */ 00111 00112 } PRIVATE_SEQUENCE; 00113 00114 #define _IdSeqPrivate(seq) ( ((PRIVATE_SEQUENCE*)(seq) )-1 ) 00115 00116 #include "idseq-restricted.h" 00117 00118 #define IdSeqDimX(sequence_) ( (_IdSeqPrivate(sequence_) )->DimX) 00119 #define IdSeqDimY(sequence_) ( (_IdSeqPrivate(sequence_) )->DimY) 00120 #define IdSeqDimZ(sequence_) ( (_IdSeqPrivate(sequence_) )->DimZ) 00121 #define IdSeqDimT(sequence_) ( (_IdSeqPrivate(sequence_) )->DimT) 00122 00123 #define IdSeqUsedNbX(sequence_) ( (_IdSeqPrivate(sequence_) )->UsedNbX) 00124 #define IdSeqUsedNbY(sequence_) ( (_IdSeqPrivate(sequence_) )->UsedNbY) 00125 #define IdSeqUsedNbZ(sequence_) ( (_IdSeqPrivate(sequence_) )->UsedNbZ) 00126 #define IdSeqUsedNbT(sequence_) ( (_IdSeqPrivate(sequence_) )->UsedNbT) 00127 00128 #define IdSeqSetUsedNbX(seq_,nb) ( _IdSeqPrivate(seq_)->UsedNbX=(nb) ) 00129 #define IdSeqGetUsedNbX(seq_) ( _IdSeqPrivate(seq_)->UsedNbX) 00130 #define IdSeqSetUsedNbY(seq_,nb) ( _IdSeqPrivate(seq_)->UsedNbY=(nb) ) 00131 #define IdSeqGetUsedNbY(seq_) ( _IdSeqPrivate(seq_)->UsedNbY) 00132 #define IdSeqSetUsedNbZ(seq_,nb) ( _IdSeqPrivate(seq_)->UsedNbZ=(nb) ) 00133 #define IdSeqGetUsedNbZ(seq_) ( _IdSeqPrivate(seq_)->UsedNbZ) 00134 #define IdSeqSetUsedNbT(seq_,nb) ( _IdSeqPrivate(seq_)->UsedNbT=(nb) ) 00135 #define IdSeqGetUsedNbT(seq_) ( _IdSeqPrivate(seq_)->UsedNbT) 00136 00137 #define IdSeqType(sequence_) ( (_IdSeqPrivate(sequence_) )->Type) 00138 00139 #define IdSeqGetBit(seq,x,y,z,t) (((seq)[t][z][y][(x)>>3]>>((x)&7) )&1) 00140 00141 #define IdSeqPutBit(seq,x,y,z,t,n) \ 00142 ( (n) \ 00143 ? ( ((seq)[t][z][y][x>>3])|= (1<<((x)&7) ) ) \ 00144 : ( ((seq)[t][z][y][x>>3])&=~(1<<((x)&7) ) ) ) 00145 00146 00147 #ifdef SWIG 00148 int IdSeqDimX(PPPPSEQUENCE); 00149 int IdSeqDimY(PPPPSEQUENCE); 00150 int IdSeqDimZ(PPPPSEQUENCE); 00151 int IdSeqDimT(PPPPSEQUENCE); 00152 00153 int IdSeqUsedNbX(PPPPSEQUENCE); 00154 int IdSeqUsedNbY(PPPPSEQUENCE); 00155 int IdSeqUsedNbZ(PPPPSEQUENCE); 00156 int IdSeqUsedNbT(PPPPSEQUENCE); 00157 00158 int IdSeqSetUsedNbX(PPPPSEQUENCE,int); 00159 int IdSeqSetUsedNbY(PPPPSEQUENCE,int); 00160 int IdSeqSetUsedNbZ(PPPPSEQUENCE,int); 00161 int IdSeqSetUsedNbT(PPPPSEQUENCE,int); 00162 00163 int IdSeqGetUsedNbX(PPPPSEQUENCE); 00164 int IdSeqGetUsedNbY(PPPPSEQUENCE); 00165 int IdSeqGetUsedNbZ(PPPPSEQUENCE); 00166 int IdSeqGetUsedNbT(PPPPSEQUENCE); 00167 00168 int IdSeqGetBit(PPPPSEQUENCE_UCHAR,int,int,int,int); 00169 int IdSeqPutBit(PPPPSEQUENCE_UCHAR,int,int,int,int,int); 00170 00171 int IdSeqType(PPPPSEQUENCE); 00172 #endif 00173 00174 00175 #endif 00176 00177

Generated on Wed Oct 19 09:28:33 2005 for SIMRI3D by doxygen 1.3.7