prev up next

Previous: Handler Up: Implementation Next: Visitor

down routing

Es gibt eine Reihe von Events, bei deren Bearbeitung es notwendig ist, den gesamten Graphen oder Teile dessen auf eine für den Eventtyp spezifische Art zu traversieren (z.B. weil Informationen an alle Knoten verteilt oder von allen Knoten eingesammelt werden müssen). Diese Vorgehensweise von der Wurzel abwärts zu allen anderen Knoten nennt man down routing.
Um ein down routing durchführen zu können, erben (und überschreiben evtl.) alle Knotenklassen die von SceneGraphObject implementierte Methode _routeDown, die vom Vater des Knotens aufgerufen wird und bei allen Kindern des Knotens wieder _routeDown aufruft. Falls das down routing bzgl. des gerade zu bearbeitenden Eventtyps eine Information vom Knoten einsammelt, wird diese Information als Ergebnis zurückgeliefert. In diesem Fall liefern auch die Kinder des Knotens Informationen als Ergebnisse ihrer _routeDown-Methoden zurück. Diese Ergebnisse müssen in der _routeDown-Methode des Knotens so miteinander verknüpft werden, daß am Ende nur ein Gesamtergebnis an den Vater des Knoten gegeben wird. Die Verknüpfung der Kindergebnisse kann vom Eventtyp abhängen und evtl. müssen Informationen an die Laufzeitumgebung übermittelt werden. Der Knoten ist nicht die geeignete Klasse, um diese Verknüpfung durchzuführen, denn einerseits müßten alle Knotenklassen erweitert werden, wenn die API um einen neuen Eventtyp erweitert würde, und andererseits wissen innere Knoten nichts von der Laufzeitumgebung.


prev up next
Previous: Handler Up: Implementation Next: Visitor