/* 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; /* X coordinate */ int Y; /* Y coordinate */ }; /* Décrit une série de points (utilisé pour stocker une liste de points qui décrit un polygone; chaque point se connecte aux deux points adjacents 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 X d'une seule ligne horizontale(utilisé uniquement par le code de remplissage de polygone rapide) */ 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 de Length-long lignes horizontales, toutes sont supposées être sur des lignes d'affichage contiguës en commençant en YStart et en procédant vers le bas(utilisé pour décrire un polygone pour le code d'affichage de bas niveau dépendant du matériel) (utilisé uniquement par le code de remplissage de polygone rapide) */ struct HLineList { int Length; /* nombre de lignes horizontales */ int YStart; /* coordonnée Y de la ligne supérieure */ struct HLine * HLinePtr; /* pointeur sur la liste des lignes horizontales */ };