Defines a collage. A collage can contain three different kinds of objects which are all optional:
The pin-points of a collage are used when this collage should replace a hyperedge in another collage: The pin-points must then be mapped to the attach-points of the hyperedge using a transformation of one of the predefined transformation classes. If no such transformation exists then the collage can't be used to replace the hyperedge.
The hyperedges of a collage are the placeholders for new collages. Each hyperedge consists of a label (i.e. a name) and a point-sequence called attach-points. The attach-points define the "shape" of the hyperedge and thus the target of the pin-point transformation of collages that are to replace this hyperedge.
The parts are the objects that are actually visible in a collage.
However, they don't play a role in the derivation process of a collage
grammar, i.e. you can place any kinds of parts in a collage without
changing the derivation process itself.
When a collage is used to replace a hyperedge then all parts of that
collage are transformed using the same transformation that was calculated
for the pin-points.
Start Edge S 0,0 50,0 25,50 EndCollageThis defines a start collage that contains nothing but a triangular hyperedge labeled S. Note that no pin-points are specified: these would be useless here because the start collage is never used to replace a hyperedge.
Rule S Pins 0,0 100,0 50,100 Edge S 0,0 50,0 25,50 Edge S 50,0 100,0 75,50 Edge S 25,50 75,50 50,100 Fpgon 0,0 100,0 50,100 EndCollage Table 1This defines a rule labeled S and a collage with pin-points, three hyperedges and one part (a filled polygon in this case). The rule is assigned to derivation table 1.