Syntax of the CollageSystem - Collage

Collage

Syntax

Collage
Pins Collage
Edge Collage
Part Collage
EndCollage
Pins
Pins Points
Edge
Edge Label Points OptColor

Description

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.

Examples

A start collage

Start
	Edge S  0,0  50,0  25,50
	EndCollage
This 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.

A collage as part of a rule

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 1
This 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.