GdipPathIterNextMarkerPath()



Syntaxe
Resultat.i = GdipPathIterNextMarkerPath(*iterator, @resultCount.l, *path)

Paramètres

*iterator

[in] Pointeur sur un objet GraphicsPathIterator existant.

resultCount.l

[out] resultCount recevra le nombre de points appartenant à la section délimitéé par les marqueurs. S'il n'y a plus de section délimitée par les marqueurs, resultCount recevra la valeur 0.

*path

[in, out] Pointeur sur un objet GraphicsPath existant. Cette fonction assigne au Path passé en paramètre, les points et points type correspondant à la section délimitée par les marqueurs du Path associé au paramètre *iterator.

Description

Cette fonction permet d'obtenir la prochaine section délimitée par le marqueur du Path associé au paramètre *iterator. La fonction copie les Points et les points type de la section retrouvée dans le Path passé en paramètre (*path).
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 path possède un tableau de points de données qui définissent ses lignes et ses courbes. On utilise la fonction GdipSetPathMarker() pour définir certains points du tableau comme marqueurs. Ces marqueurs divisent le chemin en sections. La première fois que l'on utilise la fonction GdipPathIterNextMarkerPath(), on obtient la première section délimitée par le premier marqueur du path associé à l'itérateur. La deuxième fois que l'on utilise la fonction, on obtient la deuxième section et ainsi de suite.
Il est possible de ne dessiner qu'une portion du GraphicsPath.
L'exemple du fichier crée deux fenêtres, un Path et lui ajoute :
- une ligne
- un marqueur
- un rectangle
- un marqueur
- une ellipse
On crée un second Path identique au premier.
Avec la fonction GdipCreatePathIter(), on crée un itérateur associé au second Path que l'on va pouvoir déplacer jusqu'aux marqueurs avec la fonction GdipPathIterNextMarkerPath(), fonction appelée deux fois pour se positionner sur le deuxième marqueur. Le Path complet est dessiné sur la première fenêtre (fenêtre du haut) et la section sélectionnée entre les deux marqueurs est affichée dans la fenêtre du bas (uniquement le rectangle).
Aperçu du Path avec toutes les figures :

Aperçu du Path avec la section sélectionnée par les marqueurs :

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