Tools API - graph manipulation

Registered by Mathieu Bastian

Tools manipulate visually the graph and play with its position, color, size and other visual properties.

List of ideas
-------------------
- Local force-vector
- ...
- Z-order : Small change on Z position of selected nodes to change the z-order. Base the computing on attributes."
- Shortest path between two nodes
- Heatmap: Colors the graph according to distance from the clicked node

- Hand tool : move the view on the graph (move the "screen"). Duplicate function, but useful for a smoother learning curve.

- Zoom tool : the same as above, for zoom. (zoom in + zoom out)

- Selection tools : Square, ellipse, "drawed" (lasso), polygonal lasso. Options : select parents, select children, select neighbors, selection only. (choose which types of tools are the most strategic).

- Magic wand : another selection tool. Clic one node, and it selects all neighbours / neighbours of neighbours / etc. that have the same or less clustering degree. Another metric may be relevant too (example : select the whole connected component). The goal is to seek (sort of) clusters.

- Brush : paint color and/or size and/or shape. Shape options : sphere or cylinder, size of the brush. Propagation options : children, parents, both, none, recursive propagation (children of children of children...), percentage (alpha: the loss at each depth from selected nodes), flow (yes=continues to paint if the mouse stays clicked, no=acts only if the mouse moves).

- Painter : Like brush, but paints the whole selection in a click.

- Gradient : Choose 2 colors (resp. 2 sizes) and draw a line. Paints color (resp. size) of the selected node in a gradient way. Options : linear, circular, log?, square

- Node pencil : creates a new Node.

- Edge pencil : creates a new what ?

- Eraser / Node eraser / Edge eraser : erases. Truly.

- Finger : moves a node. Option : pulls edges, so that it also moves neighbours, depending on a decreasing strength.

- Modification tools :

   - Bigger nodes

   - Smaller nodes

   - Lighter color

   - Darker color

   NB: Sometimes useful but... Maybe not really relevant.

- Terraformic tools :

   - Exploder : rejects nodes around the "impact" point (where it is clicked). Options : shape?, power, curve, pull edges (like above), flow.

   - Imploder : the same as above, but attracts nodes.

   - Shaker : random jitter

   - Contractor : reduces the length of the edges (contracts)

- Projector tools : organize selected nodes in a deterministic way (simple shape + rule, see below)

   - Orthogonal projector : Draw a line. It projects nodes orthogonally to this line. (NB : +shift=fixed orientation, meaning 0°, 45°, 90°...)

   - Parallel projector : Choose a measure (ex: degree, size, any rank...) and draw a line. Nodes are moved in a line that's parallel to the drawed one, depending on their score on the chosen measure. They are on the side of the starting point if the score is low, on the side of the ending point if the score is high. The starting point corresponds to the minimum score ofr the selected nodes (idem for max/ending point).

   - Radial projector : the same as above, except that you draw a circle. The nodes are moved along the rays, and their distance from the starting point depends on their score on the choosen measure.

   - Table projector : choose a measure for X and a measure for Y, and draw the table. Applies on selected nodes. Doesn't draw the table itself, only projects the nodes.

   NB : options for all these tools : log/linear, starts from 0 (instead of min.)

- Storing tools : same as above, but the goal is to rearrange some parts of the graph, for economy of space

   - Square case : choose a measure, draw a rectangle : moves each node so that it homogeneously fills the rectangles (rows/colons). Options : top-left>bottom-right or bottom-right>top-left

   - Circle case : same as above, but in a radial way (rtgi-style). Center>borders or Borders>center

   - Circle box : only applies a sort of force vector that makes all the nodes homogeneously fill the circle. No measure required.

   - Rectangle box

   - Polygon box ?

Blueprint information

Status:
Started
Approver:
None
Priority:
Medium
Drafter:
Mathieu Jacomy
Direction:
Needs approval
Assignee:
Mathieu Bastian
Definition:
Approved
Series goal:
Accepted for 0.7
Implementation:
Started
Milestone target:
None
Started by
Mathieu Bastian

Related branches

Sprints

Whiteboard

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.