Hi,
I just checked in a new version of my mesh branch. There was some major restructuring to use a simple array of nodes for the internal representation rather than the complicated side and corner classes I had before. This was motivated by adding support for tensor meshes which naturally calls for an array. Tensor meshes were added as an experiment to see if they would help in smoothing color transitions across patch boundaries (they don't seem to help very much) and are not envisioned to be part of the SVG specification for meshes.
New/newish features:
Corner operations:
Ctrl-B: Toggle selected patch sides between linear and curve. (Select both corner nodes of side to select side.)
Ctrl-C: Attempt to convert selected sides into elliptical arcs by changing the length of the Bezier handles.
Ctrl-G: Toggle on/off tensor points for selected patches. (Select all four corner nodes of a patch to select patch.)
Ctrl-J: Attempt to smooth color transition around a corner by changing length of Bezier handles. This needs lots of work to make it truly useful.
Ctrl-K: Sample colors underneath mesh at corner nodes. For nodes at edge of mesh, move sample point inside mesh.
Older features:
1. Create a simple one patch square mesh the size of an objects bounding box. (Select the third button on the Gradient Tool-Tool Bar and then click-drag on object. You won't see a change as the default mesh has all four corner colors set to the former object color. Click on object again to see mesh handles.)
2. Drag corner nodes (diamonds).
3. Change color of corner nodes.
4. Drag handles (circles). There is no indication of what handle belongs with which corner node or path so it can be confusing. And all handles are shown. (Should be able to toggle on/off handle visibility.)
5. Divide a row or column of patches into two rows or columns. (Double click on the lines connecting corner nodes. Double clicking elsewhere may lead to a crash.) The row/column will be split at the place you click.
6. Save the mesh. The mesh is saved in the proposed SVG standard format (likely to change).
7. Read in saved meshes.
Bugs:
* Frequent crashes. * Changing node color isn't saved until a node is moved. * Linear patch sides are shown as non-linear when corner node moved. * Selected nodes become unselected when any of the corner operations are done. * etc.
Note, a trunk version of the Cairo rendering library is needed.
My branch can be found at:
https://code.launchpad.net/~tavmjong-free/inkscape/mesh
Tav