Die Punkte eines JsgPolygon oder einer JsgPolygonList können über den Iterator JsgPolyListIter der Reihe nach abgerufen werden.
new JsgPolyListIter( Polys )
Erzeugt eine Iterator für ein JsgPolygon oder eine JsgPolygonList. Wenn Polys nicht definiert ist, muss Polys mit der Funktion Reset() gesetzt werden.
Mit der Funktion GetNextPoint() kann der nächste Punkt des JsgPolygon bzw. der JsgPolygonList abgerufen werden. Mit Back() kann der Zeiger des Iterators eine Position innerhalb des aktuellen JsgPolygon zurückgesetzt werden.
Wenn Polys eine JsgPolygonList ist, behandelt der Iterator alle Polygone der List als ein einziges zusammenhängendes Polygon und iteriert über alle Polygone ohne Unterbrechung, siehe GetNextPoint().
JsgPolyListIter() | Erzeugt ein JsgPolyListIter Objekt |
Reset() | Setzt den Zeiger des Iterators zurück |
GetNextPoint() | gibt den nächsten Punkt zurück und setzt den Zeiger eine Stelle weiter |
Back() | Setzt den Zeiger eine Stelle zurück |
JsgPolyListIter.Reset( Polys )
Wenn Polys definiert ist, wird der JsgPolyListIter mit dem neuen JsgPolygon oder JsgPolygonList verknüpft und der Zeiger wird zurückgesetzt. Wenn Polys nicht definiert ist, wird nur der Zeiger zurückgesetzt.
Diese Funktion kann zum Wiederverwenden eines bestehenden JsgPolyListIter mit einem anderen JsgPolygon oder einer anderen JsgPolygonList oder, durch Weglassen des Parameters Poly, einfach zum Zurücksetzen des Zeigers verwendet werden.
JsgPolyListIter.GetNextPoint( p )
Wenn der Zeiger noch nicht am Ende des letzten verknüpften Polygons angelangt ist, wird der Punkt an der aktuellen Zeigerposition in p kopiert und der Zeiger eine Stelle weiter gesetzt.
Wenn der JsgPolyListIter mit einer JsgPolygonList verknüpft ist, werden alle Polygone der Liste als ein einziges zusammengesetztes Polygon behandelt.
JsgPolyListIter.Back( )
Setzt den Zeiger eine Stelle zurück. Der Zeiger kann nicht über die Grenze eines Polygons zurückgesetzt werden. Der aktuelle Zeiger darf nicht auf das erste Element eines Polygons zeigen.