PIPS
|
#include <stdlib.h>
#include <stdio.h>
#include "boolean.h"
#include "arithmetique.h"
#include "vecteur.h"
#include "contrainte.h"
#include "ray_dte.h"
Go to the source code of this file.
Macros | |
#define | MALLOC(s, t, f) malloc(s) |
package pour la structure de donnees ray_dte, qui represente un rayon ou une droite de systeme generateur More... | |
#define | FREE(s, t, f) free(s) |
Functions | |
Pray_dte | ray_dte_dup (Pray_dte rd_in) |
Pray_dte ray_dte_dup(Pray_dte rd_in): duplication (allocation et copie) d'une structure ray_dte;. More... | |
Pray_dte | ray_dte_new () |
Pray_dte ray_dte_new(): allocation d'une structure ray_dte;. More... | |
Pray_dte | ray_dte_make (Pvecteur v) |
Pray_dte ray_dte_make(Pvecteur v): allocation et initialisation d'une structure ray_dte;. More... | |
Pray_dte | ray_oppose (Pray_dte r) |
Pray_dte ray_oppose(Pray_dte r): transformation d'un rayon en son oppose (effet de bord) More... | |
void | ray_dte_rm (Pray_dte rd) |
void ray_dte_rm(Pray_dte rm): desallocation complete d'une structure ray_dte More... | |
void | dbg_ray_dte_rm (Pray_dte rd, char *f) |
void dbg_ray_dte(Pray_dte rd, char * f): desallocation complete d'une structure ray_dte rd avec trace sur stderr; le nom de la fonction demandant la desallocation est passe comme deuxieme argument, f. More... | |
void | ray_dte_fprint (FILE *f, Pray_dte rd, char *(*nom_var)(Variable)) |
void ray_dte_fprint(File * f, Pray_dte rd, char * (*nom_var)()): impression d'un rayon ou d'une droite More... | |
void | ray_dte_fprint_as_dense (FILE *f, Pray_dte rd, Pbase b) |
void ray_dte_fprint_as_dense(File * f, Pray_dte rd, Pbase b) impression d'un rayon ou d'une droite More... | |
void | ray_dte_dump (Pray_dte rd) |
void ray_dte_dump(Pray_dte rd): impression de debug de rd sur stderr, utilisant variable_debug_name() More... | |
void | fprint_lray_dte (FILE *f, Pray_dte listrd, char *(*nom_var)(Variable)) |
void fprint_lray_dte(FILE * f, Pray_dte listrd, char * (*nom_var)()): impression d'une liste de rayons ou de droites More... | |
void | fprint_lray_dte_as_dense (FILE *f, Pray_dte listrd, Pbase b) |
void fprint_lray_dte_as_dense(FILE * f, Pray_dte listrd): impression d'une liste de rayons ou de droites More... | |
void | ray_dte_normalize (Pray_dte rd) |
void ray_dte_normalize(Pray_dte rd): normalisation des coordonnees d'un rayon ou d'une droite rd (division par le pgcd leurs coefficients) More... | |
bool | rd_in_liste (Pray_dte rd, Pray_dte lrd) |
bool rd_in_liste(Pray-dte rd, Pray_dte lrd): test si rd appartient a la liste lrd More... | |
bool | egaliste_rd (Pray_dte l1, Pray_dte *ad_l2) |
bool egaliste_rd(Pray_dte l1, Pray_dte * l2): egalite de deux listes de rayons ou de droites More... | |
Pray_dte | elim_null_vect (Pray_dte l, int *n) |
Pray_dte elim_null_vect(Pray_dte l, int * n): elimine les vecteurs nuls d'une liste l de rayons ou de droites et renvoie un pointeur vers la nouvelle liste ainsi que le nouveau nombre d'elements de la liste *n. More... | |
void | elim_tt_rd (Pray_dte listrd) |
void elim_tt_rd(Pray_dte listrd): suppression d'une liste de rayons ou d'une liste de droites More... | |
package pour la structure de donnees ray_dte, qui represente un rayon ou une droite de systeme generateur
Francois Irigoin
D'autres procedures sur ray_dte doivent etre dispersees dans les fichiers de Malik
Liste des procedures:
Voir aussi ray_dte.h et poly.h
void dbg_ray_dte_rm | ( | Pray_dte | rd, |
char * | f | ||
) |
void dbg_ray_dte(Pray_dte rd, char * f): desallocation complete d'une structure ray_dte rd avec trace sur stderr; le nom de la fonction demandant la desallocation est passe comme deuxieme argument, f.
rd | d |
Definition at line 145 of file ray_dte.c.
References dbg_vect_rm(), f(), fprintf(), FREE, RAY_DTE, variable_debug_name, and vect_fprint().
bool egaliste_rd(Pray_dte l1, Pray_dte * l2): egalite de deux listes de rayons ou de droites
l1 | 1 |
ad_l2 | d_l2 |
Definition at line 260 of file ray_dte.c.
References rdte::succ, vect_equal(), and rdte::vecteur.
Referenced by egal_rd().
Pray_dte elim_null_vect(Pray_dte l, int * n): elimine les vecteurs nuls d'une liste l de rayons ou de droites et renvoie un pointeur vers la nouvelle liste ainsi que le nouveau nombre d'elements de la liste *n.
la nouvelle liste contient les elements non-nuls en ordre inverse nombre d'elements non-nuls dans l
nouvelle liste
rayon ou droite nul a desallouer
desallocation du rayon ou de la droite
il faut le chainer a la nouvelle liste
n | la nouvelle liste contient les elements non-nuls en ordre inverse liste initiale, passee par valeur |
Definition at line 317 of file ray_dte.c.
References RAY_DTE_RM, and rdte::succ.
void elim_tt_rd | ( | Pray_dte | listrd | ) |
void elim_tt_rd(Pray_dte listrd): suppression d'une liste de rayons ou d'une liste de droites
listrd | istrd |
Definition at line 349 of file ray_dte.c.
References RAY_DTE_RM, and rdte::succ.
Referenced by sg_rm_droites(), and sg_rm_rayons().
void fprint_lray_dte(FILE * f, Pray_dte listrd, char * (*nom_var)()): impression d'une liste de rayons ou de droites
Definition at line 196 of file ray_dte.c.
References f(), nom_var, ray_dte_fprint(), and rdte::succ.
Referenced by sg_fprint().
void fprint_lray_dte_as_dense(FILE * f, Pray_dte listrd): impression d'une liste de rayons ou de droites
listrd | istrd |
Definition at line 210 of file ray_dte.c.
References f(), ray_dte_fprint_as_dense(), and rdte::succ.
Referenced by sg_fprint_as_dense().
void ray_dte_dump | ( | Pray_dte | rd | ) |
void ray_dte_dump(Pray_dte rd): impression de debug de rd sur stderr, utilisant variable_debug_name()
rd | d |
Definition at line 187 of file ray_dte.c.
References ray_dte_fprint(), and variable_debug_name.
Pray_dte ray_dte_dup(Pray_dte rd_in): duplication (allocation et copie) d'une structure ray_dte;.
RAY_DTE.
Le chainage est mis a NULL; le tableau des saturations aussi car on ne peut pas connaitre sa taille; le vecteur est copie pour ne pas introduire de sharing
rd_in | d_in |
Definition at line 66 of file ray_dte.c.
References abort, fprintf(), ray_dte_new(), vect_dup(), and rdte::vecteur.
Referenced by sg_dup(), and sg_union().
void ray_dte_fprint(File * f, Pray_dte rd, char * (*nom_var)()): impression d'un rayon ou d'une droite
FI: tres maladroit; utilise la representation interne d'un vecteur directement Modification par YY (09/91)
Definition at line 162 of file ray_dte.c.
References f(), fprintf(), nom_var, vect_fprint(), and rdte::vecteur.
Referenced by fprint_lray_dte(), and ray_dte_dump().
void ray_dte_fprint_as_dense(File * f, Pray_dte rd, Pbase b) impression d'un rayon ou d'une droite
rd | d |
Definition at line 176 of file ray_dte.c.
References f(), vect_fprint_as_dense(), and rdte::vecteur.
Referenced by fprint_lray_dte_as_dense().
Pray_dte ray_dte_make(Pvecteur v): allocation et initialisation d'une structure ray_dte;.
Le chainage est mis a NULL; le tableau des saturations aussi car on ne peut pas connaitre sa taille; le vecteur n'est pas copie et du sharing est introduit
Definition at line 108 of file ray_dte.c.
References ray_dte_new(), and rdte::vecteur.
Referenced by mk_rn(), and sg_of_rays().
Pray_dte ray_dte_new | ( | void | ) |
Pray_dte ray_dte_new(): allocation d'une structure ray_dte;.
Le chainage est mis a NULL; le tableau des saturations aussi car on ne peut pas connaitre sa taille; le vecteur est initialise a VECTEUR_UNDEFINED
Definition at line 89 of file ray_dte.c.
References rdte::eq_sat, MALLOC, RAY_DTE, rdte::succ, rdte::vecteur, and VECTEUR_UNDEFINED.
Referenced by ray_dte_dup(), and ray_dte_make().
void ray_dte_normalize | ( | Pray_dte | rd | ) |
void ray_dte_normalize(Pray_dte rd): normalisation des coordonnees d'un rayon ou d'une droite rd (division par le pgcd leurs coefficients)
Ancien nom: norm_rd()
rd | d |
Definition at line 226 of file ray_dte.c.
References vect_normalize(), and rdte::vecteur.
void ray_dte_rm | ( | Pray_dte | rd | ) |
void ray_dte_rm(Pray_dte rm): desallocation complete d'une structure ray_dte
rd | d |
Definition at line 134 of file ray_dte.c.
References FREE, RAY_DTE, and vect_rm().
Pray_dte ray_oppose(Pray_dte r): transformation d'un rayon en son oppose (effet de bord)
-> -> r = - r
Definition at line 125 of file ray_dte.c.
References vect_chg_sgn().
Referenced by sg_without_line().
bool rd_in_liste(Pray-dte rd, Pray_dte lrd): test si rd appartient a la liste lrd
Les coordonnees de rd et des elements de lrd sont supposees normalisees.
Il faudrait distinguer le cas des droites qui peuvent avoir des vecteurs directeurs opposes et etre neanmoins egales; a moins que le normalisation soit effectuee de maniere a n'avoir qu'un vecteur directeur possible (le lexico-positif par exemple).
rd | d |
lrd | rd |
Definition at line 242 of file ray_dte.c.
References rdte::succ, vect_equal(), and rdte::vecteur.