CaGe-graph / CaGe

The Chemical and abstract Graph environment
9 stars 2 forks source link

Allow graphs to be embedded with vertex at infinity #2

Open nvcleemp opened 10 years ago

nvcleemp commented 10 years ago

For some graphs it would be useful to be able to put one vertex 'at infinity'.

This could be implemented as a simple hack in embed.

nvcleemp commented 10 years ago

Building this into CaGe would require a big rewrite of the whole piping system between generators and embedders. I think implementing it has a hack in embed is the best way at the moment.

We need to add a new command-line parameter to embed, so we can specify the vertex to place at infinity. This then also acts as the -b parameter, because the face created by placing that vertex at infinity is the new outer face.

In cage.Embedder we need to modify reembed2DRequired so that it checks whether a vertex is clicked and stores this in a field. At the moment it stores an edge of the outer face in the fields e1 and e2.

in cage.NativeEmbedEmbedder we need to modify reembed2D so that it sets the right command-line parameter.

nvcleemp commented 10 years ago

TwoView of course also needs to be aware of the vertex at infinity, so that it knows which additional edges need to be drawn and so that it can adjust the vertex numbering to compensate for the missing vertex.