/* Listing 41.5. POLYGON.H Fichier en-tête du code de remplissage de polygone */ #define CONVEX 0 #define NONCONVEX 1 #define COMPLEX 2 /* Décrit un seul point (utilisé pour un seul point) */ struct Point { int X; /* coordonnée X */ int Y; /* coordonnée Y */ }; /* Décrit une série de points (utilisé pour stocker une liste de points qui décrit un polygone; chaque point est supposé se connecter aux deux points adjacents, et le dernier point est supposé se connecter au premier) */ struct PointListHeader { int Length; /* nombre de points */ struct Point * PointPtr; /* pointeur sur la liste de points */ }; /* Décrit les coordonnées X de début et de fin d'une seule ligne horizontale */ struct HLine { int XStart; /* coordonnée X du pixel le plus à gauche dans la ligne */ int XEnd; /* coordonnée X du pixel le plus à droite dans la ligne */ }; /* Décrit une série Length-long de lignes horizontales, toutes supposées être sur des lignes d'affichage contiguës commençant à Ystart.*/ struct HLineList { int Length; /* nombre de lignes horizontales */ int YStart; /* coordonnée Y de la ligne la plus haute */ struct HLine * HLinePtr; /* pointeur sur la liste des lignes horizontales*/ }; /* Décrit une couleur comme un triplet RVB, plus un octet pour d'autres infos */ struct RGB { unsigned char Red, Green, Blue, Spare; };