/* NAME = defb.h */
/************************************************************/
/*    defb.h: Fichier include des definitions pour anyflo   */
/*        Version 2004, Ven 23-10-2009 (13.0) (Michel BRET) */
/************************************************************/

/*************/
/* COMMANDES */
/*************/

/* Commandes d'anyflo */
/* ------------------ */

/*??#define libre 0??*/
#define ECR 1
#define FOND 2
/*???#define WINDOW 3	LIBRE ???*/
#define VOL 4
#define TROU 5
#define CLIP 6
#define CUBE 7
#define AFF 8
#define OEIL 9
#define FUI 10
#define FOC 11
#define ROUL 12
#define PERS 13
#define REV 14
#define FAC 15
#define SOURIS 16
#define COU 17
#define COUPE 18
#define FEN 19
#define BOULE 20
#define GRILLE 21
#define LIGNE 22
#define COL 23
#define LUM 24
#define ZBUF 25
#define LOI 26
#define MOTIF 27
#define B_IMAGE 28
#define TREIL 29
#define PLAC 30
#define DEP 31
#define SOM 32
#define ANG 33
#define ROTA 34
#define ROTX 35
#define ROTY 36
#define ROTZ 37
#define DILA 38
#define DILX 39
#define DILY 40
#define DILZ 41
#define COE 42
#define HOM 43
#define FRAC 44
#define EXT 45
#define VOISIN 46
#define VALIDER 47
#define FERMER 48
#define TRAJ 49
#define DISQUE 50
#define SEGMENT 51
#define PIXEL 52
#define RECTANGLE 53
#define MAPPE 54
#define STOCKER 55
#define ALEX 56
#define ALEY 57
#define ALEZ 58
#define ALEA 59
#define ANC 60
#define LEAD 61
#define SUIV 62
#define NORMALE 63
#define NF 64
#define HERITAGE 65
#define B_VIDEO 66
#define MIRE 67
#define RAYON 68
#define ARRIERE 69
#define SYMX 70
#define SYMY 71
#define SYMZ 72
#define SYMA 73
#define MENU 74
#define CONTOUR 75
#define SECX 76
#define SECY 77
#define SECZ 78
#define ENVELOPPE 79
#define TEXTE 80
#define MOVE 81
#define DRAW 82
#define CHASSE 83
#define CADRE 84
#define INTERACTION 85
#define POI 86
#define AMBIANCE 87
#define CIN 88
#define ACC 89
#define DEC 90
#define PEND 91
#define CAMERA 92
#define INTERPOL 93
#define ANIMER 94
#define TIRER 95
#define AXE 96
#define DEVANT 97
#define DERRIERE 98
#define DESSUS 99
#define DESSOUS 100
#define GAUCHE 101
#define DROITE 102
#define SPHERE 103
#define TEXTURE 104
#define CONCAT 105
#define PERIODE 106
#define REANC 107
#define SIMPLE 108
#define INTERIEUR 109
#define ADHERER 110
#define VITESSE 111
#define MASSE 112
#define FORCE 113
#define VUE 114
#define ECHELLE 115
#define TRANSP 116
#define GEOD 117
#define PRISME 118
#define FILET 119
#define BROU 120
#define COULISSE 121
#define CHAMP 122
#define POSER 123
#define INTERSECTION 124
#define TRIANGULER 125
#define CENTRE 126
#define PLAY 127
#define PERIPH 128
#define ATTACHE 129
#define AJUST 130
#define STEREO 131
#define PARTICULE 132
#define TUYAU 133
#define MOTIONBLUR 134
#define DEPTH 135
#define AUDIO 136
#define POSTCRIPT 137
#define B_ZOOM 138
#define B_PAN 139
#define LUMINANCE 140
#define BOITE 141
#define FENDRE 142
#define DEFORMER 143
#define VOIR 144
#define LISSE 145
#define GRAPHIQUE 146
#define B_BITMAP 147
#define MEMOIRE 148
#define OMBRE 149
#define DYNAMIQUE 150
#define RESSORT 151
#define ALPHABET 152
#define COLLISION 153
#define MORPHING 154
#define TSV 155
#define PALETTE 156
#define LUT 157
#define DIGISCOPE 158
#define META 159
#define GENETIQUE 160
#define RESEAU 161
#define NEURONE 162
#define COUPEX 163
#define COUPEY 164
#define COUPEZ 165
#define SCENE 166
#define SPE 167
#define B_COORD 168
#define B_QUAT 169
#define OBJET 170

/* Codes d'erreurs */
/* --------------- */
/* Debordements (message dans evaluer_mult_1) */
#define DEB_AFF -10011
#define DEB_ALEA -10012

/* Flags de compilation */
/* -------------------- */
#define SEM_IRIS4D 1
/*???#define SEM_PC4000 1???*/
/*???#define SEM_SONY_NEWS 1???*/

/* Types internes des objets */
/* ------------------------- */
/* Positions ancrees au temp t */
#define POI0 -10002
/* dup poi */
#define POI1 -10004
/* valider poi vol */
#define POI2 -10005

/* ATTACHE non executable (pour exec_attache) */
#define ATTACHE2 10001

/* Dimensions */
/* ---------- */
/* MAPPE: (num,type,cr,cv,cb,fond,mobx,moby) */
/*    type = 1: Mapping de reflexion */
/*    type = 2: Mapping 2D */
/*    type = 3: Texture mapping 3D */
/*    type = 4: Bump_mapping */
/*    type = 5: Bump_mapping aleatoire */
#define NB_MAP 8
/* (dim,IMAGE,numero,code,dimx,dimy,dim,buffer_r_v_b) */
#define DIM_IMAGE 7
/* (dim,num,n,nx,ny,nz,type,type2) */
#define DIM_VOL 8
/* (p_poi,p_fac,p_vol,p_fac,p_norm_fac,num_vol): Ombres */
#define DIM_OMBRE 6
/* (dim,ZBUF,np,type,dimx,dimy) */
#define DIM_ZBUF 6
#define NB_ANC 24
/* DIM_AFF: (P_aff_old,np,ext,coe) */
#define DIM_AFF 4
/* DIM_TSV: 360 degres d'arc en ciel */
#define DIM_TSV 360
/* DIM_INTERACT: (dim,xo,yo,zo,xf,yf,zf,foc,roul) */
#define DIM_INTERACT 9
/* NB_INTERPOL: (ni,cpt) */
#define NB_INTERPOL 2
/* (DIM_PERIPH,MULT,n,0)(periph commandes) */
#define DIM_PERIPH 100
/* Interaction ascii */
#define DIM_KEY 128

/* audio */
//#define MAX_AUDIO 1024
#define MAX_AUDIO 16384

/* zbuf max */
/* -------- */
#define MAX_16 32767
#define MAX_32 1000000000.0

/* Structure des contours */
/* ---------------------- */
struct Contour
{
/* Tete de contour: np = nombre de points  */
long np;
/* Repere absolue */
    float xa;
    float ya;
    float za;
/* Repere perspectif */
    float xp;
    float yp;
    float zp;
    float w;
/* Repere ecran */
    float xe;
    float ye;
    float ze;
/* Normale */
    float nx;
    float ny;
    float nz;
/* Couleur */
    float r;
    float v;
    float b;
/* Modele d'eclaireme nt */
    float col;
    float ref;
    float spe;
    float bri;
    float tran;
/* Parametres de mappe */
    long num_poi;
    float coe;
    };

/* Structure des mappes */
/* ---------------------- */
#define MAX_MAP 100    /* Nombre maximum de mappes */
struct Mappe
{
/* Type 0: off, 1: Reflexion, 2: 2D, 3: 3D,
   4: Bump mapping
   5: Bump mapping + aleatoire
   [6,7,...]: Texture 3D precalculee
   1000: Texture 3D, pr = adresse de la fonction utilisateur */
    long type;
/* Dimensions de la mappe */
    long dimx_map;
    long dimy_map;
    long dim_map;
/* Adresses des buffers */
    unsigned char *pr;
    unsigned char *pv;
    unsigned char *pb;
/* Origine(x,y) du carreau dans la mappe */
    long x0;
    long y0;
/* Dimensions du carreau */
    float dimx;
    float dimy;
    float dimz;
/* Origine(nx,ny) du carreau dans la mappe */
    long xc;
    long yc;
/* Nombres de carreaux */
    long nxc;
    long nyc;
/* Rapports carreau / facette */
    float cx;
    float cy;
/* Couleur */
    float r;
    float v;
    float b;
/* Fond */
    float rf1, vf1, bf1, rf2, vf2, bf2;
/* Mobilite */
    float mobx, moby;
/* Anim 3D */
	char *nom;
	float *pf;
    };

/* Structure des ancrages */
/* ---------------------- */
struct Ancrage
    {
    long niv;    /* Niveau */
    long ss1;    /* Sommet 1 suiveur */
    long ss2;    /* Sommet 2 suiveur */
    long ss3;    /* Sommet 3 suiveur */
    long type_lead;    /* Type du leader */
    long lead;    /* Numero leader */
    long sl1;    /* Sommet 1 leader */
    long sl2;    /* Sommet 2 leader */
    long sl3;    /* Sommet 3 leader */
    float mat[16];    /* Matrice d'ancrage */
    };

/* Quaternions */
/* ----------- */
typedef struct {
    float w, x, y, z;
    } Quat;

/* Interaction reseau */
/* ------------------ */
typedef struct
    {
    struct Objet *p_obj;
    long *p_matrice;
    long *p_matrice0;
    long *p_fac;
    long *p_neurone;
    long n_max;
    float m1, m2;
    float x, y, d;
    long *p_motif;
    long nb_motif, num_motif;
    } Interac_Reseau;

/* Structure des facettes triangulaires */
/* ------------------------------------ */
typedef struct {
    long num;    /* Numero facette */
    long k1, k2, k3;    /* Numeros des sommets */
    float *p1;    /* P1 */
    float *p2;    /* P2 */
    float *p3;    /* P3 */
    float xg, yg, zg;    /* CG */
    float nx, ny, nz, d;    /* Equation */
    float m2;    /* a*a + b*b + c*c */
    float ray, rayc;    /* Rayon et son carre */
    float nx12, ny12, nz12;    /* Normale a l'arete 12 */
    float nx23, ny23, nz23;    /* Normale a l'arete 23 */
    float nx31, ny31, nz31;    /* Normale a l'arete 31 */
    } Fac3;

typedef struct {
    long num_fac;
    long *p_fac;
    long flag;
    float d;
    } Tri_fac;

/* Structure des intersections */
/* --------------------------- */
struct Intersection {
    long num;
    long type;
    long *p_anc;
    long *p_fac;
    long *p_norm_seg;
    float *pf_CG;
    float *pf_boule;
    long dim_boule;
    float *pf_norm;
    long dim_norm;
    };

/* Structure des dynamiques */
/* ------------------------ */
/* Modifier dans editerb.c vitb.c */
typedef struct
    {
    float xg, yg, zg;    /* CG */
    float ix, iy, iz;    /* Axe Gx */
    float jx, jy, jz;    /* Axe Gy */
    float kx, ky, kz;    /* Axe Gz */
    float omx, omy, omz;    /* Vect rot instantane R = (dj/dt,dk/dt,di/dt) */
    float vx, vy, vz;    /* Vitesse de transl [(R . V) / (R * R) ] R */
    } Dynamique;

/* Extensions */
/* ---------- */
typedef struct {
    float *p;
    float txg, tyg, tzg;    /* Tangente gauche */
    float txd, tyd, tzd;    /* Tangente droite */
    } Tan_var;

/* Interface graphique compatible GL */
/* --------------------------------- */
#define B_LEFTMOUSE	103	/* BUT102 */
#define B_MIDDLEMOUSE	102	/* BUT101 */
#define B_RIGHTMOUSE	101	/* BUT100 */
#define B_KEYBD		513	/* keyboard */

/* Interface OpenGL */
/* ---------------- */
#define VIDEOX 768
#define VIDEOY 576

/* Interaction ascii */
/* ----------------- */
#define MAX_ASCII 100
#define DIM_BUF_ASCII 20
typedef struct
{
	char buf[DIM_BUF_ASCII + 1];
	struct Objet *p_fonc;
} Interaction_Ascii;

/* Objets construits */
/* ----------------- */
#define case_OBJET     \
    case ALPHABET:   \
    case B_IMAGE:   \
    case BROU: \
    case CHAMP:   \
    case CIN:  \
    case GENETIQUE:   \
    case LUM:  \
    case RESEAU: \
    case TRAJ: \
    case VOL:  \
    case VUE:  \
	case OBJET:

/* Transformations */
/* --------------- */
#define case_TRANSF     \
    case ALEA:    \
    case ALEX:    \
    case ALEY:    \
    case ALEZ:    \
    case DEP:    \
    case DEFORMER:    \
    case DILA:    \
    case DILX:    \
    case DILY:    \
    case DILZ:    \
    case FENDRE:    \
    case HOM:    \
    case PLAC:    \
    case ROTA:    \
    case ROTX:    \
    case ROTY:    \
    case ROTZ:    \
    case COUPEX:    \
    case COUPEY:    \
    case COUPEZ:    \
    case SYMA:    \
    case SYMX:    \
    case SYMY:    \
    case SYMZ:

/* Menus */
/* ===== */
typedef struct
    {
    int menu;
    long ind_exec;
    long ind_menu;
    char nom[80];
    char *fonc;
    } Menus;

typedef struct
    {
    int menu;
    long fonc;
    char *pc;
    } Table_Menus;

/* Souris */
/* ------ */
typedef struct
    {
    int xup, yup, zup;    /* passive motion: UP(t) */
    int xup1, yup1, zup1;    /* UP(t-dt) */
    int xup2, yup2, zup2;    /* UP(t-2*dt) */
    float vx, vy, vz;    /* Vitesse */
    float ax, ay, az;    /* Acceleration */
    int xdown, ydown, zdown;    /* motion: DOWN */
    int button;    /* 0:G, 1:M, 2:D */
    int state;    /* 0:UP, 1: DOWN */
    long t;    /* Tempo */
    long dt;    /* Base de temps */
	long verrou;
	long interupt;
    } Souris0;

/* Coupe */
/* ----- */
#define NB_COUPE 1000

/* Menus0[M_MENU,MENU_EXEC,MENU_MENU,
          M_PALETTE,
          M_INTERACTION,INTERACTION_VUE,INTERACTION_MEMOIRE,
          M_PLAY,PLAY_VUE,
          M_SOURIS,
          M_RESEAU] */
/* 10 entrees dans les menus cables */
#define NB_MENU 11
/* 20 sous menus au maximum: func[0-19] (menub.c) */
#define NB_SOUS_MENU 20

#define M_MENU 0

#define M_PALETTE 1

#define M_INTERACTION 2
#define INTERACTION_VUE 3
#define INTERACTION_MEMOIRE 4

#define M_PLAY 5
#define PLAY_VUE 6

#define MENU_EXEC 7
#define MENU_MENU 8

#define M_SOURIS 9

#define M_RESEAU 10

/* Nombre de fenetres */
/* ------------------ */
#define NB_FEN 25

/* FONCTIONS GLOBALES */
/* ================== */

/* affb.c */
/* ------ */
long aff_vol_1(long, long, struct Objet *, long, long *, long *, struct Mappe *,
float *, long, long);
long aff_vol_num(long, long, long *, long, long *, long, long, long);
long aff_b(long *);
long mire(long *);
long *set_anc_som(struct Objet *, long *);
long *set_pers_som(long *, long *);
long arriere_fac(long *, float *, float *, float *, long, long *, struct Contour *,
long, long *, long, float *);
long aff_image(long *, long *, long *, long *, long *, long *, long *,
long *, struct Objet *, long *, long *);
long boite_vol(long *, long *, long *, float, struct Mappe *, long);
long *exec_locales(struct Objet *, long *);
long exec_locales_1(struct Objet *, struct Objet *, long);
long *inc_fac(long *, long);
long tri(float *, float *, long);
float inter2(float, float, float, float, long, float *, long);

/* aleab.c */
/* ------- */
long alea_b(long *, long *, long *, long *);
float det_alea(long);
float rand2f_alea(float, float, long, long *);
float rand3f_alea(float, float, float, float, long, long *);
float alea_inc();

/* anc2b.c */
/* ------- */
long lead_suiv(long *, long *, long *, long *);
long reancrage(long *, long);
long ancrage(void);
void editer_anc(void);
long generer_matrice(void);
long traj_reanc(long);

/* ancb.c */
/* ------ */
long det_mat_anc(struct Objet *, float *);
struct Objet *leader_absolu(struct Objet *);
long propr_som(struct Objet *, long *, long *);
long hom_coe(struct Objet *, long *, long *, long *);
long propr_som_1(struct Objet *, long *, long *);
long generer_suiv(long *, long);
long *generer_suiv_1(struct Objet *, long *, long);

/* animerb.c */
/* --------- */
long animer(long *pd0, struct Objet *p_vol);
long det_pos(struct Objet *p_traj, long im, long ni, float *p_xyz, float *coe, long sem_abs);
long animer_element(struct Objet *p_obj, long *p_num,
long *p_poi, long *p_poi_dup, long im0, long ni0, long im, long ni,
long num, float *buf_cg, long sem, float coe, long cpt_mb, long sem_abs, long *p_vit);
long verifier_np(struct Objet *p_obj);
long puls_animer_1(long *p_puls, struct Objet *p_obj);
long set_interaction(long im0);
long det_stocker(long env, long com, char **nom, long **p_num, long *pas_stocker);
long aff_animer_vol(struct Objet *p_obj, long *pd);
long exec_stocker_graphique(long im0);

/* attacheb.c */
/* ---------- */
long attache(long *, long *);
long exec_attache_0(void);
long exec_attache(struct Objet *);

/* audio2b.cpp */
/* ----------- */
long audio_ini(long *);

/* audiob.c */
/* -------- */
//long audio_b(long *, long *, long *);
float lire_abs(void);

/* bibdiskb.c */
/* ---------- */
struct Objet *lire_fic(char *);
long gare_fic(struct Objet *, char *);
long image_1(long, long, long);

/* blocb.c */
/* ------- */
long masse_b(long *, long *, long *, long *);
long bloc_0(long *, long *, long *, long *);
long *det_datas_anc_poi(struct Objet *);
long *det_datas_CG(struct Objet *, long);
long *det_datas_CG_abs(struct Objet *, long);
long set_nil_b(long *, long *);

/* boiteb.c */
/* -------- */
long boite_b(long *);
long aff_boite(long, long, struct Objet *, long, long *, long *, struct Mappe *, float *, long *);

/* broub.c */
/* ------- */
struct Objet *cre_brou(long num, char *nom);
void brou(float *pf_cou, float *pf_abs, float *r1, float *v1, float *b1, long *p_brou);
long brou_b(long *pd0);
long brou_zbuf(long *);

/* colb.c */
/* ------ */
long aff_col(struct Contour *, struct Contour *, struct Mappe *, long *,
long *, long *, long *, long *, long, long, float *);
short *pos_16(long, long);
float *pos_32(long, long);
long set_ligne(long *, struct Objet *, float **);

/* concatb.c */
/* --------- */
long concat_b(long *);
long trianguler(long *);
long ajust_b(long *, long *, long *, long *);
long ajust_1(long *, long *, long *, long *, long *, long *, long *, long *, long,
long *, long, long *, long *);
long ajust_dist(float *, long, long *, long *, long *);
long ajust_dist_vol(struct Objet *, long *, long *, long, long, long, long);
long ajust_som_0(float *, long, long, long *, long *, long);
long equi_vol(struct Objet *, long *, long *, long *, float *);
long ajust_ang(struct Objet *, long *, long *, long *, long *, long, long *);
long ajust_force_dist(struct Objet *, long *, long *);
float angle2(float *, float *, float *);
long ajust_mappe_1(struct Objet *, long *, long *);
long *trianguler_vol(struct Objet *, long *, long);
long ajust_time(long *, long *, long *, long *, long *, long *, long *, long *, long *);

/* coupb.c */
/* ------- */
long coupe(struct Contour *, struct Contour *, long *, long *, long *,
long *, long *, float *, long *, long *, long *, long *, long , float *, long *, long);

/* cubb.c */
/* ------ */
long cube_b(long *);
long *cre_fac_cub(long *);
long *cre_poi_cub(float, float, float);

/* digib.c */
/* ------- */
long digi_b(long *, long *, long *);

/* disk1b.c */
/* -------- */
long lire_vol(long, long, char *, long, long, long *, long, long *, long, long);
long gare_vol(long, char *, long *, long, long, long, long, long, long *, long);
void type_fic_b(char *, long, long);
long gare_objet(long, char *, long *, long, long);
long lire_objet(long, long, char *, long *);

/* diskb.c */
/* ------- */
long lire_b(long *, long *, long *);
long *cre_loi(long *, long *, long);
long gare_b(long *);
long lire_image(long *, char *, long *, long, long *,
long *, long *, long *, long *, long, long, long *);
long gare_image(long *, char *, long *, long, long, long *, long *, long,
long, long *);
long gare_animer(char *);
long lire_animer(char *);
long interpol_lire_gare(long *);
long gare_image_format(long *, long *, char *, long);
long lire_image_format(long *, long *, char *);

/* distb.c */
/* ------- */
long dist_b(long *, long *);
float det_dist_obj(long *);
float det_dist_fac(long *, struct Objet *);
float det_dist_som(long *, struct Objet *);
long dist_poi_ligne(long *, long *, long *, long *);
float distance2_point_plan(float *, float *, float *, float *);
long gare_image_jpg(long *, char *, long, long *);

/* dupb.c */
/* ------ */
long dup_b(long *, long *, long *, long *);
struct Objet *dup_vol_1(long, long, long);
long valider_b(long *, long *);
void dup_poi_vol_0();

/* echb.c */
/* ------ */
long echelle(long *);
long echelle_b(long *, long *, long *, long *);

/* editerb.c */
/* --------- */
long editer_b(long *);
long max_np(struct Objet *);
long max_np_0(long *, long *);
long editer_dim_b(long *, long *);
long compiler_b(long *);
void editer_commande_multiple(long *);

/* envlpb.c */
/* -------- */
long enveloppe(long, long, struct Objet *, long, struct Mappe *, float *, float, long *);
long b_voir(long *, long *, long *, long *);
long aff_enveloppe_vol(long *);
long enveloppe_b(long *, long *, long *, long *);
long enveloppe_ligne(long *, long *, long *, long, long *);
long trier_b(long *, long *);
long trier_b_1(long *, long *, long *, long *, long *, long *);

/* exeb.c */
/* ------ */
long evaluer_b(long *, long *, long *, long *, long);
void couleur0();
long bye_b(long);
long acq_fond(long *, long *, long *);
long inv_pers_fen(long *, long *);
long stocker_b(long *, long *, long *);
long interpol_b(long *, long *, long *, long *);
long set_get_val_com(long *, long *, long *);
void acq_coupe(float *);
struct Objet *get_cons();
long empiler_com(long *);
long *est_empile(long, long);
long fin_objet(struct Objet *);
long aba_com();
long b_status(long *, long *, struct Commande *);

/* ext1b.c */
/* ------- */
long gen_cubique(Tan_var *, Tan_var *, float *, long, long);
void gen_tan_var_1(float *, float *, float *, float *, float, float);
float *ext_b_2(float *, long, long, long,float *, long *, long, float *);
long *ext_b(long *, float *, long, long, long, float *, long *, float *);
long equi_dist(float *, long, long, float *, long, float *);
float valcin3(float, long, long *, long, long, long);
long lisse_cg(float *, long, long, long, long, long *);
long lisse_ang(float *, long, long, long, long, long *);
float *casteljau(float *, long, long, float *, long, long, float, long);

/* ext3b.c */
/* ------- */
long ext3(long, long, struct Objet *, long *, long *, long *, long *,
float *, long *, long, long *);

/* extb.c */
/* ------ */
long ext_b_var(long *, long *, long *, long *);
long *ext_b_tan(long *, float *, long, long, long, float *,
long *, float *, long *, long *);
long ext(struct Objet *, long, long, struct Contour *,
long *, Tri_fac *, float *, long, struct Mappe *,
float *, long *, float *, float *, long);
long *local_crb(float *, long, long, long *, long *);
long meme_point(float *, float *);
long point_aligne(float *, float *, float *);

/* facb.c */
/* ------ */
long fac_b(long *, long *, long *, long *);
long *det_fac_num(long *, long);
long locale_b(long *, long *, long *, long *);
long memoire_b(long *, long *, long *);
void set_tete_fac(long *, long);
long fermer_dessus_dessous(struct Objet *, long);
long editer_memoire(long *);
long *det_MEMOIRE_datas(long *, long);
long *set_enveloppe(struct Objet *, long *, long *);
void ini_memoire();
long numero_memoire(long *, long *, long *, long *, long);
long memoire_sup(long *);

/* ficb.c */
/* ------ */
long fic_b(long *);

/* fracb.c */
/* ------- */

long fractal(struct Objet *, long, long *, long *, long *,
float *, long, struct Mappe *, long *);

/* genb.c */
/* ------ */
long genetique(long *, long *, long *, long *);
long valider_genetique(long *);
long generer_genetique(long *);
long coupe_genetique(long *, long *);

/* generb.c */
/* -------- */
long generer_b(long *, long *);
long generer_simple_image_1(struct Objet *, long);
long generer_rvb_image_1(struct Objet *);
long generer_obj(long, long *, long *);
long *gen_propr_som_1(struct Objet *, long, long, long, long, long);
long *gen_voisin_fac_fac(struct Objet *, long);
long *gen_voisin_fac_som(struct Objet *, long);
long *gen_voisin_som_som(struct Objet *, long);
long *generer_boule_vol(struct Objet *, long, long, long *);
long *generer_boule_fac(struct Objet *, long, long, long *, long);
long *generer_contour_vol(struct Objet *, long, long);
long *generer_segment(long, long, long , long);
long *generer_segment_vol(struct Objet *, long, long, long);
long *get_segment_vol(long *, long);
long *generer_cg_fac(struct Objet *, long, long, long *, long *);
long *generer_pers_som_1(struct Objet *, long *, long);
long *det_mappe_som_vol(struct Objet *, long);
long *gen_axe(struct Objet *, long, long);
long *gen_fac_precision(long, long, long, long *, struct Objet *, long *);
long *gen_poi_precision(long, long, long, long, long *, long *);
long *generer_anc_poi(struct Objet *, long *, long, float *);
long generer_texte_image(long *, long *);
long *generer_boite_vol(struct Objet *, long, long, long *);
long *generer_boite_fac(struct Objet *, long *, long, long, long *);
long *generer_boite_secxy(struct Objet *, long, long, long *, long);
long *generer_rayon_voisin_som(struct Objet *, long);
long *generer_boite_grille(struct Objet *, long *, long, long *, long, long);
long *generer_boite_som(struct Objet *, long, long *, long, long);
long *gen_voisin_anc_som(struct Objet *, long *, long *, long);
long *generer_grille(struct Objet *, long *, long);
long *gen_voisin_dist_som(struct Objet *, long *, long *, long);
long generer_depth(long *);
long generer_image(long *, long *);
long generer_image_0();
long *gen_voisin_fac_som_ouvert(struct Objet *, long);
long *gen_voisin_fac_som_fermer(struct Objet *, long);
long *generer_META_BOITE_1(struct Objet *, long *, long);

/* geodb.c */
/* ------- */
long fin_geod();
long fin_tuyau();
long ajust_sec(struct Objet *, long *, long *, long *, long *, long *, long *);
long det_pos_attache(struct Objet *, long, long, float *);

/* geomb.c */
/* ------- */
void cg_som(long *, long *, float *);

/* graphb.c */
/* -------- */
long primitive(long *, long *, long *, long *);
long ecran(long *pd0);
struct Objet *get_image(long *, long);

void a_segment(long, long, long, long);
void b_segment(long, long, long, long);
void b_pixel(long, long);
void b_move(long, long);
void a_c_move(long, long);
void b_c_move(long, long);
void b_draw(long, long);
void a_rectfi(long, long, long, long, long *, long *, long *);
void b_rectfi(long, long, long, long, long *, long *, long *);
void a_cadre(long, long, long, long);
void b_cadre(long, long, long, long);
void a_circfi(long, long, long, long, long *, long *, long *);
void b_circfi(long, long, long, long, long *, long *, long *);
void couleur(float, float, float);
long W_ligne(long, long, long, unsigned char *, unsigned char *,
unsigned char *, long *);
long W_ligne_z(long, long, long, unsigned char *, unsigned char *,
unsigned char *, short *, float *, long *);
long R_ligne(long, long, long, unsigned char *, unsigned char *,
unsigned char *, long *);
void ecran_image(long *, long *);
void image_ecran(long *, long *);
void ecran_image_f(float *, float *);
void b_souris_xy(long *, long *);
long zoom(long *, long *);
long pan(long *, long *);
void set_luminance(long);
long set_graphique(long *);
long set_lut(long *, long *, long *);
void a_segment_mem(long, long, long, long);
void a_cadre_mem(long, long, long, long);

/* grilleb.c */
/* --------- */
long grille_b(long *);
long grille_b_1(long *, long, float, long, long, long);
long *gen_fac_ouvert(long, long, long);
void set_nxyz(struct Objet *, long, long, long, long);

/* image1b.c */
/* --------- */
long image_b(long *, long *, long *, long *);
long image_image(long *, long *, long *);
long det_limite_image(struct Objet *, long *, long *, long *);
long det_cou_image(struct Objet *, long *, long *);
lire_image_0(long *);

/* imageb.c */
/* -------- */
long garic21(unsigned char *, long, long, long, long *, long *);
struct Objet *stocker_image(struct Objet *, long);
long restituer_image(struct Objet *, long);
long symx_image(struct Objet *, long, float);
long symy_image(struct Objet *, long, float);
long symim1(long, long, long, long, unsigned char *, unsigned char *, long, long);
long dila_image(struct Objet *, float, float, float, long, long *);
long alea_image(long, struct Objet *, float, float, float);
long dep_image(struct Objet *, long, long);
void rotxy_image(long, struct Objet *, float);
long rotz_image(long *, long *, long *, long *, long *, long, long *);
long sphere_image(long *);
long alexya_image(long, long, float, struct Objet *, long *);
long ajust_image(long *);
long lisse(long *, long *);
long interpol_image(long *);
long ajust_vol_image(long *);
long image_vol(struct Objet *, long, long *, long *, float *, float *,
long *, long *, long *);
long trou_image(long *);
long inv_image(long *);
long luminance(long *, long *);

/* initb.c */
/* ------- */
long init_param();
void initb(long, char **);
long init_b(long *, long *);
long init_vue(long);
long init_zbuf(long);
long init_memoire(long);
void racine_objet(long);
long acq_zbuf(long, long *);
void init_fen();
void traiter_erreur(long);

/* initgb.c */
/* -------- */
long editer_aff();
void mem_circfi(long, long, unsigned char, unsigned char, unsigned char,
long, long, long *, long *, long *);
void mem_circfi_z(long, long, float, unsigned char, unsigned char, unsigned char,
long, long, long *, long *, long *);
void b_segment_3d(float, float, float, float, float, float,
long, long, long, long *, struct Contour *, struct Contour *);
void a_segment_3d_zbuf(float, float, float, float, float, float,
long, long, long, long *, struct Contour *, struct Contour *);
void b_disque_3d(float, float, float, long, long);
void a_pixel_3d(float *);
void mem_pixel(long, long);
void b_cadre_mem(long, long, long, long);
long cal_fen(long *);

/* intb.c */
/* ------ */
long interieur(long *, long *);
Fac3 *gen_fac3(long *, float *, long, long *, long);
long intersect_droite_fac(float *, float *, Fac3 *, float *);
long intersect_demi_droite_fac(float *, float *, Fac3 *, float *);
long adherer_secy_vol(long *, long *, long *, long *, float);
long adherer_vol_ligne(long *, long *, float);
long adherer_attache_vol(long *, long *, long *);
long adherer_dessus_vol(struct Objet *, long *, long, float,
long *, long *, long *, long, long, float);
long adherer_dessous_vol(long *);
long int_segment_plan(float *, float *, float *, float *, float *);
long clip_ligne(long *, long *, long *, long *, long *,
long *, long *, long *, long *);
long interieur_poi_ligne(float *, float *, long, float *);
long collision_b(long *, long *, long *, long *);
long exec_collision(long *);

/* interac3b.c */
/* ----------- */
long init_interaction(long *pd0);
long interaction(long *, long *, long *, long *);
void MENU_interaction(int);
void MENU_reseau(int);
long interaction_fonc(struct Objet *);
void glut_Reshape_Func(int,int);
void interaction_UP(int, int);
void fin_interaction();
long interaction_souris(long *, long *);
long glut_set_lum();
void clear_buffers();
void clear_zbuffer();
void interaction_Idle_Func();
void reseau_Idle_Func();
void interaction_Mouse_Func(int button, int, int, int);
void interaction_Motion_Func(int, int);
void reseau_Motion_Func(int, int);
void interaction_Display_Func(void);
void interaction_ecran(float, float, float);
void set_interac_mappe_0(long, long, long, unsigned char *, long, long);
long aff_textes(int, int, char *, long *, long *, long *, long, long *, long *, long *, long);
void set_x_menu();
long format_GL(char *, long *);
long *interaction_det_poi_abs(long);
long interaction_set_vol(long, float, float, float);
long ligne_dim(long *);
void det_dim_texte_2(char *, long *, long *);

/* interac4b.c */
/* ------------ */
/*
long interaction_collision_vol(long *, long *, long *, long *, long *);
long *interaction_det_poi_abs(long);
long interaction_aff_META(long *);
void dec_interaction_collision_vol();
*/

/* interac5b.c */
long old_interaction(long *, long *, long *, long *);

/* interacb.c */
/* ---------- */
long interac_b(long *, long *, long *, long *);
void valider_poi_interac(struct Objet *, long);
void CG_vol_interac(struct Objet *, float *, float *, float *, long *);
long mod0_interac(struct Objet *, long, float, float, float,
float, float, float, float, long, long, long *);
void rotxyz_interac0(long, long, float);
void valider_interac(void);
long saisie_num_interac(float, float, long, long, long, long, char *);
float saisie_rayon(long, long, long, char *);
float saisie_rayon(long, long, long, char *);
float saisie_coe(long, float, float, long, long, char *);
float saisie_ang(long, float, float, long, char *);
long saisie_ext(float *, long, char *);
long y_cadre_interac(long);
void init_cadre_interac(long, long, long);
void aff_ech_interac(long, long, long, long, long, float, char *);
long aff_cadre_interac(long);

/* interpolb.c */
/* ----------- */
long interpol_bloc(long *, long *, long *, float, long, long, long, long, long, long, long *);
long init_interpol_vol(long *);
long exec_interpol(void);
long interpol_vol(struct Objet *, long *);
void editer_interpol(struct Objet *);
long interpol_vol_vol(long, long *, long *, float, long *, long *);

/* limitb.c */
/* -------- */
long limite_b(long *, long *, long *, long *);
long *cg_fac_0(long *, long *);
long CG_vol(long, long *, long *, long *, long);
long CG_vol_1(struct Objet *, float *, float *, float *, long *);
long det_limite_vol(long, long *, long *, long *, long);
long cg_sec(struct Objet *, long, long, float *);
long det_cg_secxy(struct Objet *, long, long *, long *, long *);
float det_rayon(float *, long, long, long *, struct Objet *);
long set_rayon(struct Objet *, long *, long *);

/* lumb.c */
/* ------ */
long lum_b(long *pd0);
struct Objet *cre_lum(long, char *);
long eclaire(float *, float *, float *, float *,
long *, float *, long *, long *, long *);
float loi(float *, long, long, float);
long init_lum();
long aff_ecl(long, float *);
long aff_lum(long *, float);
void mb_cou(float *, float *, float *, long);
long init_mappe_lum(void);
long *eclaire_som(float *, float *, long *,
long *, long *, long *, long *,
long *, long *, long *);
long cal_cadre_lum(struct Objet *, long *);
long cal_mappe_lum(struct Objet *, long *);
long *cre_def_bloc(long, long);

/* mapb.c */
/* ------ */
long set_mappe(float, struct Contour *, struct Contour *, struct Contour *,
float *, struct Mappe *, float *);
long set_mappe_reflexion(struct Contour *, struct Mappe *, float *);
long cou_mappe(long *);

/* menub.c */
/* ------- */
long menu(long *, long *, long *, long *);
void init_graphique(long);
void Motion_Func(int, int);
void Passive_Motion_Func(int, int);
void c_segment(float *, float *);
void glut_ecran(float, float, float);
void glut_rectangle_1(float, float, float, float, float, float, float);
void glut_rectangle(float, float, float, long, float *);
void glut_cadre_1(float, float, float, float, float, float, float);
void glut_cadre(float, float, float, long, float *);
void glut_segment_1(float, float, float, float, float, float, float);
void glut_segment(float r, float v, float b, long n, float *pf);
void glut_disque(float r, float v, float b, long n, float *pf);
void glut_pixel(float r, float v, float b, long n, float *pf);
void glut_Swap_Buffers();
void gl_Draw_Buffer_FRONT();
void gl_Draw_Buffer_BACK();
void gl_Enable_GL_DEPTH_TEST();
void gl_Disable_GL_DEPTH_TEST();
void gl_Disable_GL_LIGHTING();
void fin_menu();
void souris_vitesse();

long aff_simple(long, long *, long *, long *, float *, float *,
long *, long *);
void change_menu_exec(long, long);
void change_menu_menu(long, long);
int creer_menu_menu();
void interaction_pers(long);
long ecran(long *);

void ini_aff();
void interaction_swap();

long gare_image_bmp(long *, char *);
long lire_image_bmp(long *, char *, long, unsigned char *, long *, long *);
long lire_image_raw_rapide(char *, unsigned char *, long *, long *);

long interaction_ascii(long *);
long exec_interaction_ascii();

long mod_fen(long *, long *);
long fen_b(long *, long *, long *);

/* midi.c */
/* ------ */
long init_midi(long);
void fin_midi();
long lire_midi(long *, long *);
long mmio_com(long *);

/* minmaxb.c */
/* --------- */
long min_max_b(long *, long *);
long adherer(long *, long *, long *);
long min_poi(float *, float *, long, long, long *, long);
long intersect_vol(long, long *, struct Contour *, long *, long *);
long min_poi_boite(float *, float *, long, long, long *, long, long *);

/* modb.c */
/* ------ */
long mod0(long *, long *, long *, long, long *);
void rota1(float *, float *, float, float, float *);
long trou_b(long *);
long tirer_b(long *, long *);
long exec_fonc_locale(long *, struct Objet *, long);
long sphere_vol(long *);
void set_flag_bloc(struct Objet *, long);
void change(float *, float *, float *);
void rota_a(float *, float *, float, float *);

/* morphb.c */
/* -------- */
long morphing(long *);

/* motifb.c */
/* -------- */
long motif(long, long, struct Objet *, long, long,
long *, long *, float *,
long, float *, struct Mappe *, long *);
long *mappoi0(long *, long *);
long mappoi(long *, float *, long, long, long *, long *,
float, long *, long *);
long set_parametres(struct Objet *, struct Objet *, struct Objet *,
long *, long *, long, long, long);
void init_interpol(struct Objet *);
void inc_interpol(struct Objet *);

/* normb.c */
/* ------- */
long *det_normale_fac(struct Objet *, float *, long);
long *normale_fac(long *, long *);
long cal_norm_fac(long *, long *, float *, float *, long);
void cal_norm_poi(long *, long *, long, float *, float *);
long normale_b(long *, long *, long *, long *);
void normale_ligne(long, long, float *, float *);
long *gen_normale_fac(struct Objet *, long *, long);
long *gen_normale_som(struct Objet *, long *, long);
long *gen_norm_fac_grille(struct Objet *, long *, long *, long);
long *gen_norm_som_grille(struct Objet *, long *, float *, long);
long *generer_normale_segment(struct Objet *, long *, long *, long *, long);

/* numb.c */
/* ------ */
long num_b(long *, long *, long *, long *);
long inc_numero(long *);
long num_som_sec(long *, struct Objet *, long *, long *n);
long num_som_fac(long *, struct Objet *, long *,long *);
long NPF(long *, long *);

/* paletteb.c */
/* ---------- */
long palette(long *, long *, long *);
void init_plan_curs(void);
void gare_palette();
long valider_image(long *);
void palette_0();
void palette_image_param(long, long, long, long);
long palette_image_bloc(long, long, long, long, long *);
void palette_restituer();
void palette_aff();
void palette_param_bloc();
void Menu_exec(int);
void palette_texte(float *, long, long, char *);
void get_pos(long *, long *);
void init_fonte(char *);
void texte_fonte(float *, long, long, char *);
void palette_Reshape_Func(int, int);
void palette_Idle_Func();
void palette_bouton(int, int, int, int);
void palette_Motion_Func(int, int);
void palette_Passive_Motion_Func(int, int);
void palette_Mouse_Func(int button, int, int, int);
void palette_Display_Func(void);
void MENU_palette(int);
void set_palette();
void init_palette_0();

/*
void palette_cou(long, float, long, float);
void palette_cou_0();
void palette_cou_1(long, long, float, float, float, float);
void palette_tsv(long, float, long, float);
void palette_tsv_0(long);
void palette_tsv_1(long, long, char *);
*/
void palette_rectangle(int, int, int, int);
void palette_cadre(int, int, int, int);
void palette_rectangle_f(float, float, float, float);
void palette_cadre_f(float, float, float, float);

/* partb.c */
/* ------- */
long aff_particule(long *, float *,
long *, long *, long *, long *, long *,
float *, long *, long *, long, long *, long *,
struct Mappe *, float *, float *, long *,
long *, long *, float *, long *, long *);
long aff_disque_vol(long *, long *, float *, float *,
long *, long *, long *, long *, long *,
long *, long *, long *, long *);
long aff_particule_segment(long *, long *,
long *, float *, long *, long *, long *,
long *, long *, float *, float *,
long *,long *, long *, struct Objet *);
void particule_2(long, long, long, float,
unsigned char, unsigned char, unsigned char, long *, long *);

/* periodeb.c */
/* ---------- */
long init_traj_periode(void);
void inc_periode(void);
long *periode_b(struct Objet *, long *, long *, long, long *);

/* periph1b.c */
/* ---------- */
long periph_b(long *, long *, long *, long *);
long aff_periph(long *, long *, long *);

/* periphb.c */
/* --------- */
long fin_periph(long *);
long periph(long *, long *, long);
float lire_periph(long);
void editer_periph(long *);
long init_periph(long *);
void clean_memoire(long *);
void kill_capteur(char *);
long periode_periph(long *, long *);
//long aff_periph(long *, long *);

/* persb.c */
/* ------- */
long cal_pers(struct Objet *, long);
void abs_oeil(float *, float *);
void oeil_pers(float *, float *);
void pers_ecr(float *, float *);
void ecr_pers(float *, float *);
void pers_oeil(float *, float *);
void oeil_abs(float *, float *);
void abs_pers(float *, float *, float *);
void abs_ecr(float *, float *);
void ecr_abs(float *, float *);
void ecr_oeil(float *, float *);
void pers_abs(float *, float *);
void cal_z_ecr(void);
float z_ecr(float);
long pers_b(long *, long *, long *, long *);
struct Objet *cre_vue(long, char *);
long *cre_bloc_mat(long, long, long, long, long);
long generer_pers_vue(long *);
long stereoscopie(long *);
long set_loi_pers(void);

/* playb.c */
/* ------- */
long play_b(long *);
void play_Idle_Func();
void free_memoire(void);
void fin_play();

/* poib.c */
/* ------ */
long poi_b(long *, long *, long *, long *);

/* polhemusb.c */
/* ----------- */
long init_polhemus(char *);
long polhemus(long *, long *);
void fin_polhemus();

/* poserb.c */
/* -------- */
long poser(long *, long *);
long inter_vol_0(float *, float, float, float, struct Intersection *,
float *, long);
long inter_vol(float *, float, float, float, struct Objet *, float *, long, float *);
long intersection(long *, long *);
long intersection_coupe(long *, long *, long *, long *, long *, float, long);
long generer_intersection(long *);
long gen_envlp_vol(long *, long *, long *, long *, long *, long *, long *,
long *, long *, long);
long generer_mappe_vol(long *);

/* prismeb.c */
/* --------- */
long fin_prisme();

/* quatb.c */
/* ------- */
void mat_axe_ang(float *ax, float *an, float mat[4][4]);
void quaternion_vec_mat(float *, float *, float *, float *, float [4][4]);
long quaternion_axe_ang(float *, float, float [4][4]);
void det_quaternion_axe_ang(float *, float *, float [4][4]);
long quaternion_set_mat(float *, float [4][4]);

/* resb.c */
/* ------ */
long generer_reseau(long *);
long masse_reseau(long *, long *, long *, long *);
long valider_reseau(long *, long *);
long fin_reseau(struct Objet *);
void editer_masse(struct Objet *);
void editer_neurone(long *);
void gare_neurone(long *, char *);
void lire_neurone(long *, char *);
long interaction_init_reseau(Interac_Reseau *);
void graphique_reseau(Interac_Reseau *);
long *generer_masse_reseau_1(struct Objet *, long, float, float, float, float, long);
long neurone(long *, long *);
float det_out(long, long *);
void set_out(long, long *, float);
long *set_meta_erreur(struct *, long, float);
long *set_meta_coe(struct Objet *);
long roul_reseau(long *, long *, long *);
long *set_meta_k(struct Objet *);
void RES_aff_compteur(struct Objet *, long, long, float, float, float, float, float, float);
long generer_masse_alea_rand(struct Objet *, long);
long dim_reseau(long *, long *);

/* revb.c */
/* ------ */
long fin_rev();
long *gen_fac_fermer(long, long, long);
long acq_boule(long *);
struct Objet *boule_1(long *, long, long *);

/* softb.c */
/* ------- */
long soft(long *, char *);

/* somb.c */
/* ------ */
long som(long, long, struct Objet *, long *, long *, long *, long *,
struct Mappe *, long *, long *, long *,
float *, long *, long *, long *, long *, long *, long *, long *, long);
long set_lum_motif(struct Objet *, float, float, float,
float *, long *);
long som_b(long *, long *, long *, long *);

/* sourisb.c */
/* --------- */
long souris(long *, long *);
void init_souris();
void souris_Mouse_Func(int, int, int, int);
void souris_Motion_Func(int, int);
long valider_souris(long *, long *);
void souris_Idle_Func();

/* speb.c */
/* ------ */
long spe(long *, long *);

/* stereob.c */
/* --------- */
long exec_stereo(struct Objet *, long *);
void init_stereo(long, long *);
/*???long exec_stereo_simple(Interac3 *, struct Objet *, long *);???*/
long souris_simple(long *);
long interac_stereo_souris(long *, long *);

/* supb.c */
/* ------ */
long sup_b(long *, long *);
void sup_obj_genre(long, long *, long);
float *det_poi(long *, long);
long clean_b(long *);
long clean_ligne(long *, long *, long *);

/* text3b.c */
/* -------- */
double centre_sin(float *, long, float *);
double turbulence(float, float, float, float);
double noise_b(float, float, float);
long gen_texture(long *);

/* text4b.c */
/* -------- */
double Turbulence (double, double, double, double, double, int);

/* textb.c */
/* ------- */
long write_texte(long *, long *, long *);
long init_alphabet(long *, long *);
long alphabet(long *, long *, long *, long *);
long move_alphabet(long *, long *, long *, long *);
long set_get_chasse(long *, long *, long *);
void texte_image(char *, long *, long, long);

/* treilb.c */
/* -------- */
long treil(long, long, struct Objet *, long *,
long *, long *, long, float *, long *,
struct Mappe *, long, long *, long *, long *);
long *treil0(struct Objet *, long *, long, long,
long *, long, long *, long);
void change_coord(float, float, float, float *, float *, float *, float *,
float, float, float);
void change_coord_2(float, float, float, float *, float *,
float, float, float, float *, float *, float *, float, float, float);
long *treil0_rap(long, long, long, long, long *);

/* tsvb.c */
/* ------ */
void aff_tsv(long, long, long, long);
void rvb_tsv(float *, float *);
void tsv_rvb(float *, float *);

/* utilb.c */
/* ------- */
long evaluer_c (long *, long *, long *, long *);
void pers_utilisateur(long, long, long, float *, float *);
void texture3d_utilisateur(long *, struct Contour *, float *);
void lum_utilisateur(long, float, float, float, float, float, float,
float, float, float, long, float, float,
float, float, float, float, float, float, float *, float *, float *);
void mappe_utilisateur(float *, struct Mappe *, float *);
long type_utilisateur(struct Objet *, long, long *);
long ajust_vol_image_utilisateur(long *, double, double, double, float *, long);
long collision_utilisateur(long, struct Objet *, struct Objet *,
long *, long *, long *, long *, long *);
long fonc_genetique_utilisateur(long, long *, long, float *);
long fonc_particule_utilisateur(long, float *);

/* vitb.c */
/* ------ */
long vitesse_b(long *, long *, long *, long *, long);
long dynamique(long *);
long dynamique_0(struct Objet *, long, long, long, float *);
long *generer_vitesse_vol(struct Objet *, long);
long *generer_vitesse_som(struct Objet *, long, long);
long *gen_poi(struct Objet *, long *, long);
long *gen_vit_ang(struct Objet *, long *, long, long);
long exec_force(long *);

/* voisinb.c */
/* --------- */
long voisin_b(long *, long *, long *);
long moyenne_b(long *);
long det_voisins_som(long, long *, long *, long *, long);
long premier_voisin(long, long *);
long deuxieme_voisin(long, long *, long *, float);

/* volb.c */
/* ------ */
float *get_def_vol(struct Objet *, long);
long det_poi_vol(long, struct Objet *, long, long *, long *);
long cal_cg_fac(struct Objet *, long *, long *, float *);
long dessus_b(long *, long *, long *);
long ang_b(long *, long *, long *, long *);
long det_som_ang(struct Objet *, float *, long *, long);
long loi_b(long *, long *, long *, long *);
float loi_b_1(float, long, float *, long *);
long aff_filet_som_vol(long *, long *, long *, long *);
long executer_type(long *);
long ajust_np(long *);
long ajust_np_1(struct Objet *);
long var_b(long *, long *, long *, long *);
long som_secxyz(long *, struct Objet *, long *, long *);
long boule_b(long *, long *, long, long *, float *);
long *cre_bloc_defau_1(long, long);
long set_alea_cou(struct Objet *, long, long, long *, long *);
long lisse_vol_1(struct Objet *, long *, long *, long *, long, float);
long lisse_vol(long *);
long fac_secxyz(long *, struct Objet *, long *, long *);
long fermer_b(long *, long *, long *, long *);
 
/* END */
