VIP: Volume Image Processing


fold_arg.h
Go to the documentation of this file.
1/****************************************************************************
2 * PROJECT : V.I.P. Library
3 * MODULE NAME : vip/fold_arg.h * TYPE : Header
4 * AUTHOR : MANGIN J-F * CREATION : 02/03/1999
5 * VERSION : 1.4 * REVISION :
6 * LANGUAGE : C * EXAMPLE :
7 * DEVICE : Linux
8 ****************************************************************************
9 *
10 * DESCRIPTION : recuperation du format de graphe relationnel
11 * attribue sur les plis corticaux de la these de JF Mangin
12 *
13 ****************************************************************************
14 *
15 *
16 ****************************************************************************
17 * REVISIONS : DATE | AUTHOR | DESCRIPTION
18 *--------------------|--------------|---------------------------------------
19 * / / | |
20 ****************************************************************************/
21
22#ifndef VIP_FOLD_ARG_H
23#define VIP_FOLD_ARG_H
24
25#ifdef __cplusplus
26extern "C" {
27#endif
28
29#include <stdio.h>
30#include <stdlib.h>
31#include <string.h>
32#include <stdarg.h>
33#include <limits.h>
34#include <errno.h>
35#include <math.h>
36
37#include <vip/bucket.h>
38#include <vip/depla.h>
39#include <vip/talairach.h>
40
41#define HULL_SURFACE 290
42#define HULL_SURFACE_INDEX 0
43#define FORBIDEN_JUNCTION 99
44
50#define HULL_SURFACE 290
51#define HULL_SURFACE_INDEX 0
52 typedef struct fold_arg {
53 char name[1024];
59 Vip3DPoint_S16BIT min_ima;
60 Vip3DPoint_S16BIT max_ima;
61 Vip3DPoint_VFLOAT min_ref;
62 Vip3DPoint_VFLOAT max_ref;
63 Vip3DPoint_VFLOAT scaleref;
64 Vip3DPoint_VFLOAT vox;
70 Vip3DPoint_S16BIT CA;
71 Vip3DPoint_S16BIT CP;
72 Vip3DPoint_S16BIT IH;
74
75 /*
76 ss_list: liste des noeuds du graphe relationnel: surfaces simples
77 du squelette non externes;
78 jset: liste des jonctions topologiques entre ss
79 NB: les jonctions avec l'exterieur sont inclues dans cette liste;
80 cortex_jset: liste des jonctions corticales entre ss;
81 gotoref: transformation rigide 3D permettant de passer au referentiel commun
82 du modele (a priori defini a partir du referentiel d'inertie
83 du plan inter-hemispherique, autre possibilite moins
84 automatique: Talairach)
85 refmin, refmax: boite englobant le squelette dans le referentiel
86 commun. Elle permet la proportionnalisation ( a priori,
87 6 parametres ==> boite (-1,-1,-1,1,1,1)
88 */
89
90
92
93/*-------------------------------------------------------------------------*/
95 BiJunction *ToUnhook,
96 JunctionSet *jset);
97/*-------------------------------------------------------------------------*/
98/*-------------------------------------------------------------------------*/
100 SurfaceSimpleList *sslist,
101 int inside, int outside);
102/*-------------------------------------------------------------------------*/
103
104/*-------------------------------------------------------------------------*/
106 SurfaceSimpleList *sslist );
107/*-------------------------------------------------------------------------*/
108
109/*-------------------------------------------------------------------------*/
110extern FoldArg *CreateFoldArgFromSquel( char *name, Volume *skeleton, int inside, int outside, int limitsssize,
111int compute_triang, char *rootsvoronoi_name);
112/*-------------------------------------------------------------------------*/
113/*-------------------------------------------------------------------------*/
114extern FoldArg *CreateEmptyFoldArg(char *name);
115/*-------------------------------------------------------------------------*/
116
117/*-------------------------------------------------------------------------*/
119 JunctionSet *jset);
120/*-------------------------------------------------------------------------*/
121/*-------------------------------------------------------------------------*/
123 int index1,
124 int index2,
125 Vip3DBucket_S16BIT *buck,
126 SurfaceSimpleList *sslist);
127/*-------------------------------------------------------------------------*/
128/*-------------------------------------------------------------------------*/
130 SurfaceSimpleList *ss_list,
131 PliDePassageSet *ppset);
132/*-------------------------------------------------------------------------*/
133/*-------------------------------------------------------------------------*/
134extern int VipComputeTmtkTriangulation( Volume *skeleton, FoldArg *arg);
135/*-------------------------------------------------------------------------*/
136
137/*-------------------------------------------------------------------------*/
139 int inside, int outside,
140 VipTalairach *tal);
141/*-------------------------------------------------------------------------*/
142
143/*-------------------------------------------------------------------------*/
144extern int VipComputeSSAttributes(Volume *depth, FoldArg *arg,
145 VipTalairach *tal);
146/*-------------------------------------------------------------------------*/
147
148/*-------------------------------------------------------------------------*/
150 VipTalairach *tal);
151/*-------------------------------------------------------------------------*/
152
153/*-------------------------------------------------------------------------*/
155 VipTalairach *tal);
156/*-------------------------------------------------------------------------*/
157
158/*-------------------------------------------------------------------------*/
160 VipTalairach *tal);
161/*-------------------------------------------------------------------------*/
162#ifdef __cplusplus
163}
164#endif
165
166#endif
struct cortexrelationset CortexRelationSet
struct deplacement VipDeplacement
FoldArg * CreateFoldArgFromSquel(char *name, Volume *skeleton, int inside, int outside, int limitsssize, int compute_triang, char *rootsvoronoi_name)
PliDePassageSet * VipComputeFoldArgPliDePassageSet(SurfaceSimpleList *sslist, JunctionSet *jset)
CortexRelationSet * VipComputeFoldArgCortexRelationSet(Volume *vol, SurfaceSimpleList *sslist)
int VipComputeJunctionAttributes(Volume *depth, FoldArg *arg, VipTalairach *tal)
struct fold_arg FoldArg
int VipComputeCortexRelationAttributes(Volume *depth, FoldArg *arg, VipTalairach *tal)
int VipComputeFoldArgSemanticAttributes(Volume *skeleton, FoldArg *arg, int inside, int outside, VipTalairach *tal)
PliDePassage * CreatePliDePassage(int index1, int index2, Vip3DBucket_S16BIT *buck, SurfaceSimpleList *sslist)
int VipComputePliDePassageAttributes(Volume *depth, FoldArg *arg, VipTalairach *tal)
int FillSSListPliDePassagePtr(SurfaceSimpleList *ss_list, PliDePassageSet *ppset)
int VipComputeSSAttributes(Volume *depth, FoldArg *arg, VipTalairach *tal)
int VipComputeTmtkTriangulation(Volume *skeleton, FoldArg *arg)
int VipUnhookBijunctionFromJset(BiJunction *ToUnhook, JunctionSet *jset)
JunctionSet * VipComputeFoldArgJunctionSet(Volume *vol, SurfaceSimpleList *sslist, int inside, int outside)
FoldArg * CreateEmptyFoldArg(char *name)
struct junctionset JunctionSet
struct bijunction BiJunction
struct plidepassage PliDePassage
struct plidepassageset PliDePassageSet
struct surfacesimplelist SurfaceSimpleList
Vip3DPoint_S16BIT IH
Definition fold_arg.h:72
Vip3DPoint_VFLOAT scaleref
Definition fold_arg.h:63
int gonetoref
Definition fold_arg.h:66
SurfaceSimpleList * ss_list
Definition fold_arg.h:54
Vip3DPoint_S16BIT CP
Definition fold_arg.h:71
int gotoref_filled
Definition fold_arg.h:65
Vip3DPoint_VFLOAT vox
Definition fold_arg.h:64
CortexRelationSet * cortex_jset
Definition fold_arg.h:57
Vip3DPoint_VFLOAT max_ref
Definition fold_arg.h:62
Vip3DPoint_S16BIT max_ima
Definition fold_arg.h:60
int CPfilled
Definition fold_arg.h:68
char name[1024]
Definition fold_arg.h:53
VipDeplacement gotoref
Definition fold_arg.h:58
int IHfilled
Definition fold_arg.h:69
Vip3DPoint_VFLOAT min_ref
Definition fold_arg.h:61
Vip3DPoint_S16BIT CA
Definition fold_arg.h:70
Vip3DPoint_S16BIT min_ima
Definition fold_arg.h:59
PliDePassageSet * ppset
Definition fold_arg.h:56
int CAfilled
Definition fold_arg.h:67
JunctionSet * jset
Definition fold_arg.h:55