VIP: Volume Image Processing


struct_volume.h
Go to the documentation of this file.
1/*****************************************************************************
2 * PROJECT : V.I.P. Library
3 * MODULE NAME : vip/struct_volume.h * TYPE : Header
4 * AUTHOR : MANGIN J.F. * CREATION : 19/01/1996
5 * VERSION : 0.1 * REVISION :
6 * LANGUAGE : C * EXAMPLE :
7 * DEVICE : Sun SPARC Station 5
8 *****************************************************************************
9 *
10 * DESCRIPTION : jfmangin@cea.fr
11 *
12 *****************************************************************************
13 *
14 * USED MODULES :
15 *
16 *****************************************************************************
17 * REVISIONS : DATE | AUTHOR | DESCRIPTION
18 *--------------------|--------------|----------------------------------------
19 * 29/07/98| POUPON F. | Ajout des champs 'scale' et 'offset'
20 * | | et VmdType dans la structure
21 * | | SHFJ_private_struct
22 * 18/11/98| Frouin V. | Ajout des pointeurs 'start_time' et
23 * | | 'dur_time' dans shfj_private-struct
24 *****************************************************************************/
25
26#ifndef VIP_STRUCT_VOLUME_H
27#define VIP_STRUCT_VOLUME_H
28
29#include <stdio.h>
30
31/* volume private structure */
32/* PLEASE, DO AS IF YOU DID NOT KNOW THIS STRUCTURE */
33/*This encapsulation principle is crucial, we want to
34be able to change it*/
35/*Moreover, it is rather strange because it corresponds
36to Tivoli volume structure*/
37
38typedef struct shfj_private_struct {
39 int unite; /*mode de calibration, cf. vidaio - Rozenn*/
40 int VmdType; /* Type de donnee Vida : FX_SHORT_FX, FX_SHORT_FL ou
41 FX_FLOAT_FL - F.P. */
42 float scale; /* facteur d'echelle pour la quantification. Les facteurs sont
43 les memes pour toutes les coupes. cf. vidaio - F.P. */
44 float offset; /* decalage pour la quantification. Les offsets sont les meme
45 pour toutes les coupes. cf. vidaio - F.P. */
46 int *start_time; /*Pointeur sur une suite a allouer d'entier 32 bits
47 contenant le start time des frames des dyn series*/
48 int *dur_time; /*Pointeur sur une suite a allouer d'entier 32 bits
49 contenant le dura time des frames des dyn series*/
50 int spm_normalized; /*ce flag indique que l'image lue au format SPM etait normalisee
51 et a ete flippee en X, Y, Z*/
52 struct { /*origine du repere proportionnel pour format spm */
53 /* jusqu'a present c'etait un int, mais on va prevoir un float,
54 un jour ils seront peut-etre moins palmes...*/
55 float x;
56 float y;
57 float z;
61
62typedef struct enst_private_struct {
63 int GIS_value; /*a faire...*/
65
66/* 2004/12 Denis
67 Modif for wrapping a cartograph/aims volume
68*/
69/* Comment this macro to disable wrapping */
70#define VIP_CARTO_VOLUME_WRAPPING
71
72#ifdef VIP_CARTO_VOLUME_WRAPPING
73struct VipVolumeCartoPrivate;
74#endif
75
76typedef struct {
77 /* generic attributes : */
78 long id; /*this value is not used by VIP but perhaps by TIVOLI */
80 struct { /*this substructure is used by TIVOLI when only a sub-image */
81 char name[NAME_MAXLEN+1]; /* is read. Then the original volume */
82 int x; /*information is there*/
83 int y;
84 int z;
85 int t;
86 } ref; /* reference image */
87 /* intrinsic caracteristics */
88 int type;
89 struct { /*NB: this values do not take into account the volume borderwidth*/
90 int x; /* number of voxels per line */
91 int y; /* number of lines */
92 int z; /* number of slices */
93 int t; /* number of images in the sequence */
94 } size;
95 struct {
96 float x; /* in millimeters */
97 float y; /* in millimeters */
98 float z; /* in millimeters */
99 float t; /* in second */
100 } voxelSize;
101 /* extrinsic caracteristic */
103 /* numerical values of the image contents */
104 char *data;
105 char ***tab;
106 /* security flag */
107 int state;
108 size_t size3Db; /*What's this?*/
109#ifndef VIP_CARTO_VOLUME_WRAPPING
110 /* memory mapping */
111 char *swapfile;
112#endif
113
116
117#ifdef VIP_CARTO_VOLUME_WRAPPING
118 struct VipVolumeCartoPrivate *carto;
119#endif
120
121} Volume;
122
123/*WARNING: I keep the ifdef in volume structure for compatibility
124with TIVOLI but it seems rather dangerous. We have to think it over later*/
125
126#endif /*VIP_STRUCT_VOLUME_H*/
127
#define NAME_MAXLEN
size_t size3Db
char name[NAME_MAXLEN+1]
struct VipVolumeCartoPrivate * carto
SHFJ_private_struct * shfj
char *** tab
int borderWidth
char * data
ENST_private_struct * enst
struct shfj_private_struct SHFJ_private_struct
struct enst_private_struct ENST_private_struct
struct shfj_private_struct::@170036110054264134107274131147003036207230013031 center