Das SBW-Format4.13ermöglicht es, G-Spline-Flächen durch zusammensetzen von gleichgroßen Würfeln mit der Seitenlänge zu erzeugen. Die Ecken der Würfel legen dabei die Kontrollpunkte fest. Die Polygone für das Kontrollnetz werden aus den Seiten der Würfel gebildet. Dabei sind aber nur die Seiten zu berücksichtigen, die nur Teil eines einzigen Würfels sind. Alle anderen liegen innerhalb oder außerhalb des Körpers. Um die Flächen interessanter zu gestalten, kann man die Würfel auch noch längs ihrer -, - oder -Achse verdrehen. Hierzu müssen nur die Kontrollpolygone jeweils um eine Seite versetzt gewählt werden. Neben der Fläche selbst können wir auch gleich eine Funktion auf dieser Fläche über Funktionskontrollpunkte bestimmen. Dies wird über eine von den Koordinaten des Flächenkontrollpunktes abhängige Parametrisierung erreicht. Durch zweimaliges anwenden der Doo-Sabin-Subdivision kann man aus so erzeugten Kontrollnetzen semi-reguläre Kontrollnetze für biquadratische G-Splines erzeugen.
Die Anordnung der Würfel kann über eine ASCII Datei festgelegt werden.
Wir geben dabei nacheinander die --Ebenen in -Richtung an.
Das so erzeugte SBW-Format hat folgende Form:
Die Zeilenumbrüche werden hier berücksichtigt. X,
Y und Z geben die maximale Anzahl der Würfel
in -, -, und -Richtung an. Dabei wird vom Ursprung in die
jeweilige positive Richtung gezählt. Optional kann man eine Funktion
func im Perl Syntax angeben, welche die
Funktionskontrollpunkte festlegt. Diese kann auf die Koordinaten
$x, $y, $z des Flächenkontrollpunktes
zugreifen. Die Würfel werden durch den Rest der Datei bestimmt. Dazu
wird der Raum in ein drei-dimensionales Gitter zerlegt. Die Belegung
der einzelnen Zellen wird durch das Array bestimmt. Ein .
markiert eine leere Zelle, ein * einen Würfel in dieser
Zelle, x ,X, y, Y, z und
Z markieren Zellen, in denen der Würfel um die -, - oder
-Achse verdreht wurde.
Die in Abbildung 4.2 dargestellte Fläche wurde mit Hilfe der folgenden SBW-Datei erzeugt:
2x2x2;$x*$x+$y*$y+$z*$z |
** |
y. |
*. |
.. |
Das Perlskript sbw2odl.pl konvertiert eine Datei im SBW-Format in das ODL-Format. Die SBW-Dateien werden dazu als Argumente übergeben.