Opening a RGG file
At the web page, there exist some example XL files, which you should download in order to have a starting point. Or, if you have installed the Examples-plugin, just select the menu File/Show Examples. A simple, classical example is the Koch curve whose XL source is shown here, you may create the file Koch.xl
by Copy&Paste.
import de.grogra.rgg.*; import de.grogra.lsystem.*; public class Koch extends RGG { public void derivation() [ Axiom ==> F(10) RU(120) F(10) RU(120) F(10); F(x) ==> F(x/3) RU(-60) F(x/3) RU(120) F(x/3) RU(-60) F(x/3); ] }
You can open an XL file like the one shown file via the menu item File/Open, this creates a new project containing the XL file. For a good RGG modelling workflow, you should switch to the RGG panel layout in the menu Panels/Set Layout. This brings up the most frequently used panels: RGG toolbar, 3D view, text editor, attribute editor, file exporer, meta object browser, message panel, and XL console, see Figure 1.1, “Panels in the RGG Layout”.
Figure 1.1. Panels in the RGG Layout
The meta object browser displays objects which have an influence on the scene, but which are not part of the material scene. The RGG object is an example of such an object, and if you open an XL file containing an RGG class, an instance of this class will be created automatically (if the file can be compiled successfully) and inserted into the list of meta objects. By a double click on the RGG object, its editable attributes (the public fields which are declared in its class and are annotated by de.grogra.annotation.Editable
) are shown in the attribute editor.
Working with a Relational Growth Grammar
After an RGG object has been loaded successfully from an XL file, its public methods are made available in the RGG toolbar. Each method appears twice: In the list prefixed with Apply, a click invokes the method once, in the list prefixed with Run, a click starts the repeated invocation of the method. To stop this loop, click the Stop button in the toolbar. Initially, buttons for the first method are accessible immediately; to see a button list for the other methods, you have to click on the small arrow at the right button border.
Normally, RGG methods cause the application of graph grammar rules to the scene. This is the case for the examples provided at GroIMP's web page, and you should try these examples to get familiar with GroIMP's RGG facilities.
The XL source code of a relational growth grammar can be edited in GroIMP's internal text editor, just double-click on the XL file in the file explorer. Whenever modifications of an XL file are saved using the text editor's Save button, it is recompiled, and the RGG object becomes reinitialized. Compilation errors are shown in the message panel and contain hypertext links to their source code locations.
If the filename ends in .rgg
instead of .xl
, a simplified syntax is used. In this case, the most common import statements are implicit, as is the enclosing RGG
-class declaration.