GdipPathIterEnumerate()



Syntaxe
Resultat.i = GdipPathIterEnumerate(*iterator, @resultCount.l, @points.PointF, @*types.byte, count.l)
Paramètres
*iterator

[in] Pointeur sur un objet GraphicsPathIterator existant.

resultCount.l

[out] resultCount recevra le nombre de points retrouvés dans les tableaux

points.PointF

[out] Tableau de variables PointF (nombres flottants) qui recevra les points de données du GraphicsPath.

*types

[out] Pointer sur un tableau d'octets qui recevra les types des points du GraphicsPath. Les valeurs du tableau sont des éléments de l'énumération PathPointType.

count.l

[in] Nombre d'éléments du tableau points.PointF. C'est le même nombre d'éléments que celui du tableau *types.

Description

Cette fonction permet de copier l'ensemble des points du GraphicsPath dans un tableau de PointF et également de copier l'ensemble des types de points du GraphicsPath dans un tableau d'octets.

Certaines fonctions des GraphicsPath ne stockent pas les tableaux de points d'origine des formes ajoutées mais elles convertissent les courbes (spline cardinale etc.) en une suite de courbes de Bézier et sauvegardent les points qui définissent ces courbes de Bézier. Il en résulte que le nombre de points retrouvés est plus important que le nombre de points d'origine définissant les figures. Toutes les courbes du path sont représentées comme des splines de Bézier, ainsi un point donné du tableau a un des deux types suivant: #PathPointTypeLine ou #PathPointTypeBezier.

Un GraphicsPathIterator associé à un GraphicsPath possède un tableau de points et un tableau de types (type des points). Chaque élément du tableau de types est un octet qui indique le type du point et un jeu de drapeaux pour l'élément correspondant du tableau de points. Les types de point possibles et les drapeaux sont des éléments de l'énumération PathPointType. Vous pouvez utiliser la fonction GdipPathIterGetCount() pour déterminer le nombre de points de données du GraphicsPath. Le paramètre points.PointF pointe la zone mémoire qui recevra les points des données du GraphicsPath et le paramètre *types pointe la zone mémoire qui recevra les types de points. Avant d'utiliser la fonction d'énumération, on doit allouer assez de mémoire pour les tableaux (voir exemple). La taille du tableau de points doit être la valeur de retour contenue dans le paramètre Count de la fonction GdipPathIterGetCount() multiplié par sizeof(PointF). La taille du tableau de types doit être la valeur de retour contenue dans le paramètre Count de la fonction GdipPathIterGetCount().

L'exemple va créer un GraphicsPath et lui ajoute 3 lignes, une courbe de Bézier puis un ligne fermant le tracé. On énumère le contenu du GraphicsPath et l'on affiche le résultat (type de points et coordonnées retrouvées) dans une ListIconGadget.

Résultat de la fonction
Si la fonction réussit, elle retourne #Ok qui est une constante de l'énumération status.
Si la fonction échoue, elle retourne une des autres valeurs de l'énumération status.
 
PB - OS

PureBasic v4.30 bêta 4 (Windows - x86)
Testé avec Windows Vista édition familiale Premium