The second use of QOCA in Penguins system is to support direct manipulation during editing of diagrams. Constraints inferred during parsing are maintained during manipulation, thus providing an editor which behaves as if it understands the semantics of the visual language. One pleasing observation has been that linear equations and inequalities have proven sufficient to approximate the constraints in a very wide variety of visual languages, namely, state transition diagrams, flow charts, mathematical equations, trees and message sequence charts. Another application in which we have employed QOCA is for the dynamic layout of multiple column web documents composed of text, images and tables. As the viewer changes font selection or resizes the browser, the layout of the document is modified.
Geometric constraints ensure that the layout is appropriate.
Again linear equality and inequality constraints have proven powerful enough. More information about this application can be obtained here . The final applications we have used QOCA for are in graph layout. Currently QOCA is not suitable for arbitrary graph layout since this requires minimization of a complex non-quadratic objective function which captures aesthetics like reducing the number of edge crossings. However, QOCA has proven suitable for tree layout.