GdipPathIterNextSubpathPath()
Syntaxe
|
Resultat.i = GdipPathIterNextSubpathPath(*iterator, @resultCount.l, @*path, @isClosed.i)
Paramètres |
*iterator[in] Pointeur sur un objet GraphicsPathIterator existant.
resultCount.l[out] resultCount recevra le nombre de points de données de la figure. S'il n'y a plus de figure, resultCount recevra la valeur 0.
*path[out] Pointeur sur un objet GraphicsPath existant. Cette fonction assigne à ce Path passé en paramètre, les points et points type correspondant à la figure courante retrouvée par la fonction pour le Path associé au paramètre *iterator.
isClosed.i[out] isClosed recevra la valeur #True si la figure est fermée sinon #False.
Description |
Cette fonction permet de déplacer le GraphicsPathIterator jusqu'à la figure (subpath) suivante du path associé à l'itérateur. Le paramètre *path est un path existant (différent du path associé à l'itérateur) qui est passé en paramètre. Ce path recevra l'ensemble des points et points type correspondant à la figure courante.
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.
La première fois que l'on utilise la fonction GdipPathIterNextSubpathPath(), on obtient la première figure du path. Lors du second appel de la fonction, on obtient la seconde figure et ainsi de suite. Lorsqu'il n'y a plus de figures, le paramètre resultCount reçoit la valeur 0, sinon il reçoit le nombre de points de données de la figure. La fonction GdipPathIterRewind() permet de repositionner l'itérateur au début du GraphicsPath qui lui est associé pour pouvoir recommencer la séquence.
L'exemple crée un Path avec un parallélogramme puis une ellipse et un rectangle. On affiche le path complet dans la fenêtre supérieure. L'itérateur est repositionné au début du GraphicPath avec la fonction GdipPathIterRewind().Un timer est actionné toutes les secondes permettant de parcourir les figures du Path. Chaque figure du path est affichée individuellement dans la fenêtre inférieure au rythme du timer. Le code reboucle sans arrêt.
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