# Knotwork's features

The software basically consists in a geometric graph editor, which automatically recomputes the knotwork according to user changes. Different 'knotwork design' are available.## Basic editing

Knotwork offers the base function to create and edit a geometric graph (graph whose vertices are planar points).- Place new vertices
- Join vertices to create edge
- Move vertices and edges
- Delete selected elements
- Save and load graphs, in a specific '.kwk' file

## Knotwork creation

By default, the knotwork is automatically created with the graph. It is possible to modify it, either by moving vertices and edges, or by changing the 'type' of an edge. Each edge is associated with one of the following types:**'UP' edge**the reference thread is passing over the other thread**'DOWN' edge**the reference thread is passing below the other thread**'OPPOSITE' edge**the two thread cross the edges without crossing each other**'LONG' edge**the two thread stay parallel to the edge, without crossing each other and without crossing the edge

## Graphical options

- The visual style of the graph can be chosen between several knotwork styles: celtic, arabic, round, flat. It's difficult to describe them, so please try them !
- It is possible to use of a scalable grid (square, or triangular) to place new nodes
- The grid origin can be changed to any point, possibly one existing node (press TAB to place on the closest node)
- A background image can be used to help design the knotwork
- Different parts of the knotwork can be displayed. The knotwork itself, the graph, the nodes, the control points or the ghost nodes and edges, which are structures created by the program to help building the knotwork.

## Manipulating the knotwork

Some functions are devoted to global manipulation of the knotwork or of its underlying graph.- Get the dual of the graph : the same knotwork (in theory...), but with a different graph
- Pruning of the graph: suppress all nodes connected to only one edge. Useful for one looking for minimal version of the graph.
- Graph information: number of edges, number of vertices, with or without ghosts, adjacency matrix of the graph

# Planned features

Some of the features which are planned for development:- Graph encapsulation, to help creating more complicated graphs
- Copy-cut-paste and some user-friendly gadgets...
- One objective is also to get some mathematical information on the graph: loops number, invariants computation...
- Generate periodic graphs, to create braids or mosaics of knotworks
- Writes a more complete user guide...