[Gridflow-cvs] [svn] commit: r5709 - in /trunk/doc: index.pd intro.pd make_index.tcl

svn-gridflow at artengine.ca svn-gridflow at artengine.ca
Wed Jul 14 13:43:55 EDT 2010


Author: matju
Date: Wed Jul 14 13:43:53 2010
New Revision: 5709

Log:
add "General Topics" section before the class index

Modified:
    trunk/doc/index.pd
    trunk/doc/intro.pd
    trunk/doc/make_index.tcl

Modified: trunk/doc/index.pd
==============================================================================
--- trunk/doc/index.pd (original)
+++ trunk/doc/index.pd Wed Jul 14 13:43:53 2010
@@ -1,425 +1,439 @@
 #N canvas 0 0 632 659 10;
 #X obj 0 0 doc_demo;
-#X obj 138 50 # +;
-#X text 180 50 plain numeric operators on grids: + - * / etc;
-#X obj -6 82 #apply_colormap_channelwise;
-#X text 180 82 apply color correction tables separately on each channel;
-#X obj 54 114 #background_model;
-#X text 180 114 make mask from learning to distinguish background from foreground;
-#X obj 114 146 #border;
-#X text 180 146 add padding on sides of a grid;
-#X obj 114 178 #camera;
-#X text 180 178 control panel for opening cameras;
-#X obj 114 210 #cast i;
-#X text 180 210 convert grid from one number type to another;
-#X obj 102 242 #centroid;
-#X text 180 242 find centroid (weighted average) of the coordinates of a grid;
-#X obj 114 274 #change;
-#X text 180 274 send grid only if different from previous grid;
-#X obj 102 306 #checkers;
-#X text 180 306 make image of chequered background in two tones of grey;
-#X obj 126 338 #clip;
-#X text 180 338 min and max;
-#X obj 72 370 #cluster_avg 4;
-#X text 180 370 computes several averages at once according to a table of indices;
-#X obj 4 402 #color;
-#X text 180 402 GUI for selecting a colour;
-#X obj 102 473 #contrast;
-#X text 180 473 adjust contrast in two different ways;
-#X obj 102 505 #convolve;
-#X text 180 505 compute convolution product of a grid (blur and edge-detection);
-#X obj 132 537 #dim;
-#X text 180 537 get the size (dimensions) of a grid;
-#X obj 78 569 #downscale_by;
-#X text 180 569 reduce the size of an image by a whole factor;
-#X obj 96 601 #draw_hpgl;
-#X text 180 601 plot lines given in HPGL format \,  using [#draw_polygon];
-#X obj 90 633 #draw_image;
-#X text 180 633 picture-in-picture;
-#X obj 84 665 #draw_points;
-#X text 180 665 (future use);
-#X obj 78 697 #draw_polygon;
-#X text 180 697 draw polygon in an image;
-#X obj 96 729 #draw_rect;
-#X text 180 729 draw a rectangle in an image;
-#X obj 84 761 #draw_slider;
-#X text 180 761 draw a slider in an image;
-#X obj 54 793 #extract_diagonal;
-#X text 180 793 extract the main diagonal from a matrix;
-#X obj 126 825 #fade;
-#X text 180 825 fade in exponential-decay fashion (linear recurrence);
-#X obj 102 857 #fade_lin;
-#X text 180 857 fade in piecewise-linear fashion;
-#X obj 102 889 #fastblur;
-#X text 180 889 speedy shortcut for rectangular blur;
-#X obj 132 921 #fft;
-#X text 180 921 compute forward or inverse one-or-two-dimensional complex FFT of a grid;
-#X obj 102 953 #finished;
-#X text 180 953 bang when grid transmission has ended;
-#X obj 114 985 #fold +;
-#X text 180 985 compute the sum of each row \,  product of each row, and other similar operations;
-#X obj 96 1017 #for 0 4 1;
-#X text 180 1017 make a grid from all numbers or coordinates in a certain range;
-#X obj 102 1049 #from_pix;
-#X text 180 1049 convert pix (GEM) to grid;
-#X obj 120 1081 #gamma;
-#X text 180 1081 apply gamma correction;
-#X obj 120 1113 #grade;
-#X text 180 1113 make an index of the sorting of a grid;
-#X obj 54 1145 #greyscale_to_rgb;
-#X text 180 1145 convert greyscale to RGB;
-#X obj 120 1177 #hello;
-#X text 180 1177 make 7 colour bars;
-#X obj 102 1209 #hueshift;
-#X text 180 1209 apply hue shift by rotating the color wheel;
-#X obj 114 1241 #import;
-#X text 180 1241 convert float \,  list, or symbol ASCII codes, to a grid;
-#X obj 138 1273 #in;
-#X text 180 1273 open file or device for reading or download;
-#X obj 120 1305 #inner;
-#X text 180 1305 scalar ("dot") product \,  matrix product, tensor contraction, image channel remapping, etc.;
-#X obj 84 1337 doc_link #io.aalib;
-#X text 180 1337 open an aalib window;
-#X obj 78 1369 doc_link #io.dc1394;
-#X text 180 1369 open a faiawaia "DC" camera (not DV) using a Linux-compatible OS;
-#X obj 90 1401 doc_link #io.grid;
-#X text 180 1401 read or write a .grid file (GridFlow storage format);
-#X obj 90 1433 doc_link #io.jpeg;
-#X text 180 1433 read or write a .jpeg file;
-#X obj 90 1465 doc_link #io.mpeg;
-#X text 180 1465 read a .mpeg video file;
-#X obj 96 1497 doc_link #io.png;
-#X text 180 1497 read a .png image file;
-#X obj 96 1529 doc_link #io.ppm;
-#X text 180 1529 read a .pbm or .pgm or .ppm image file or write a .ppm image file;
-#X obj 78 1561 doc_link #io.quartz;
-#X text 180 1561 open a Quartz window (OSX);
-#X obj 30 1593 doc_link #io.quicktimeapple;
-#X text 180 1593 read a .mov video file (OSX);
-#X obj 24 1625 doc_link #io.quicktimecamera;
-#X text 180 1625 open a QuickTime Sequence Grabber (Camera / Video input) device;
-#X obj 48 1657 doc_link #io.quicktimehw;
-#X text 180 1657 read a .mov or .avi video file (Linux);
-#X obj 96 1689 doc_link #io.sdl;
-#X text 180 1689 open a SDL window (Windows \, Linux,OSX);
-#X obj 66 1721 doc_link #io.videodev;
-#X text 180 1721 open a V4L1 device (Linux-only interface for video cameras and video digitisers);
-#X obj 96 1753 doc_link #io.x11;
-#X text 180 1753 open a X11 window (Linux \, etc);
-#X obj 126 1785 #join;
-#X text 180 1785 join two grids together along any dimension;
-#X obj 96 1817 #labelling;
-#X text 180 1817 tag connected pixels with region numbers in a two-tone single-channel image;
-#X obj 120 1849 #layer;
-#X text 180 1849 layer two same-sized images;
-#X obj 60 1881 #line_to_polygon;
-#X text 180 1881 convert line (as point pair) to polygon (rotated rectangle);
-#X obj 90 1913 #make_arrow;
-#X text 180 1913 make an arrow "polygon" from 2 points (for use with line mode of [#draw_polygon]);
-#X obj 90 1945 #make_cross;
-#X text 180 1945 make cross-shaped polygon;
-#X obj 107 1977 #many tgl 3 3;
-#X text 180 1977 [#many]: create and organise many identical GUI objects;
-#X obj 114 2046 #moment;
-#X text 180 2046 find 1st or 2nd order moment (weighted average or variance) of the coordinates of a grid;
-#X obj 78 2078 #moment_polar;
-#X text 180 2078 convert covariance matrix to the longest and shortest radius of an ellipse and a rotation angle;
-#X obj 54 2110 #motion_detection;
-#X text 180 2110 frame difference with some options;
-#X obj 120 2142 #mouse;
-#X text 180 2142 converts mouse events to reports of clicks \,  drags, unclicks, motions, and separate buttons and wheel;
-#X obj 60 2174 #noise_gate_yuvs;
-#X text 180 2174 replaces dark pixels by black pixels in signed YUV images;
-#X obj 132 2206 #out;
-#X text 180 2206 open file or device for writing or upload;
-#X obj 108 2238 #outer +;
-#X text 180 2238 apply numeric operator on all possible combinations of elements of one grid with elements of another;
-#X obj 126 2270 #pack;
-#X text 180 2270 combine floats on separate inlets to make a grid;
-#X obj 84 2302 #perspective;
-#X text 180 2302 divide each point by its depth;
-#X obj 78 2334 #polygon_area;
-#X text 180 2334 find area of a polygon in square pixels;
-#X obj 42 2366 #polygon_comparator;
-#X text 180 2366 find similarity between two polygons independently of rotation \,  by radial maps and FFT;
-#X obj 48 2398 #polygon_each_edge;
-#X text 180 2398 convert a polygon to a sequence of overlapping 2-sided polygons representing edges;
-#X obj 66 2430 #polygon_moment;
-#X text 180 2430 find average of all points inside of a polygon;
-#X obj 48 2462 #polygon_perimetre;
-#X text 180 2462 find perimetre of a polygon in pixels (euclidian);
-#X obj 42 2494 #polygon_radial_map;
-#X text 180 2494 find radius of a polygon from a given origin \,  sampled at equally spaced angles;
-#X obj 96 2526 #posterize;
-#X text 180 2526 quantise pixel values;
-#X obj 120 2558 #print;
-#X text 180 2558 print to console;
-#X obj 120 2590 #ravel;
-#X text 180 2590 do #redim so that a grid keeps same number of elements but just one dimension;
-#X obj 114 2622 #record;
-#X text 180 2622 wrapper around [#in quicktime];
-#X obj 102 2654 #redim ();
-#X text 180 2654 change the size of a grid by restreaming contents into a new shape;
-#X obj 90 2686 #reinterval;
-#X text 180 2686 change the scale of values from one interval to another;
-#X obj 84 2718 #remap_image;
-#X text 180 2718 apply object chain on pixel positions to make new image from chosen pixels of the input image;
-#X obj 108 2750 #reverse;
-#X text 180 2750 mirror image of a grid along a dimension;
-#X obj 54 2782 #rgb_to_greyscale;
-#X text 180 2782 convert RGB to greyscale;
-#X obj 84 2814 #rgb_to_rgba;
-#X text 180 2814 convert RGB to RGBA (but setting alpha to 0);
-#X obj 90 2846 #rgb_to_yuv;
-#X text 180 2846 convert RGB to unsigned YUV;
-#X obj 84 2878 #rgba_to_rgb;
-#X text 180 2878 convert RGBA to RGB;
-#X obj 114 2910 #rotate;
-#X text 180 2910 rotate points through two axes (or rotate pixels as points in a colorspace);
-#X obj 72 2942 #rotatificator;
-#X text 180 2942 make rotation matrix for any two dimensions chosen from a space of any number of dimensions;
-#X obj 90 2974 #saturation;
-#X text 180 2974 multiply chroma by some value;
-#X obj 102 3006 #scale_by;
-#X text 180 3006 reduce the size of an image by a whole factor;
-#X obj 102 3038 #scale_to;
-#X text 180 3038 scale an image from one size to any other size by deleting or duplicating rows and columns;
-#X obj 114 3070 #scan +;
-#X text 180 3070 compute the cumulative sums of each row \,  and other similar operations;
-#X obj 91 3102 #see;
-#X text 180 3102 [#see]: view video output within patch and collect mouse/key info;
-#X obj 102 3174 #seq_fold;
-#X text 180 3174 cascade the use of an object on all elements of an incoming grid message sequence;
-#X obj 120 3206 #slice;
-#X text 180 3206 crop an image using a start point (top left) and end point (bottom right);
-#X obj 102 3238 #solarize;
-#X text 180 3238 like pingpong but on all pixel values of a grid;
-#X obj 126 3270 #sort;
-#X text 180 3270 sort each row of a grid;
-#X obj 114 3302 #spread;
-#X text 180 3302 add noise to each vector (point or pixel);
-#X obj 120 3334 #store;
-#X text 180 3334 store image in RAM \,  in-place picture-in-picture, and make lookups in various ways;
-#X obj 126 3366 #swap;
-#X text 180 3366 like [swap] for grids;
-#X obj 138 3398 #t;
-#X text 180 3398 like [t a a] for grids;
-#X obj 72 3430 #text_to_image;
-#X text 180 3430 use a fixed-width font grid to make a tiling of characters as specified by a text string;
-#X obj 102 3462 #to_float;
-#X text 180 3462 convert grid to sequence of floats;
-#X obj 114 3494 #to_iem;
-#X text 180 3494 convert grid(3) to IEMGUI colour code;
-#X obj 108 3526 #to_list;
-#X text 180 3526 convert grid to list;
-#X obj 90 3558 #to_literal;
-#X text 180 3558 convert grid to grid-literal (list with a # sign);
-#X obj 114 3590 #to_pix;
-#X text 180 3590 convert grid to pix (GEM);
-#X obj 96 3622 #to_symbol;
-#X text 180 3622 convert grid of ASCII codes to symbol;
-#X obj 96 3654 #transpose;
-#X text 180 3654 swap two dimensions out of any \,  in a grid;
-#X obj 126 3686 #type;
-#X text 180 3686 get a symbol representing the number type of a grid;
-#X obj 114 3718 #unpack;
-#X text 180 3718 split a grid into floats on separate outlets;
-#X obj 114 3750 #window;
-#X text 180 3750 a [#out window] that can be toggled to appear and disappear;
-#X obj 90 3782 #yuv_to_rgb;
-#X text 180 3782 convert unsigned YUV to RGB;
-#X obj 132 3814 args;
-#X text 180 3814 pick up the arguments of an abstraction instance \,  including nested lists and init-messages;
-#X obj 126 3846 ascii;
-#X text 180 3846 write integer as decimal in ascii codes;
-#X obj 96 3878 ascii_to_f;
-#X text 180 3878 converts a list of ascii codes to a float;
-#X obj 84 3910 class_exists;
-#X text 180 3910 figure out whether a class has been loaded by pd;
-#X obj 114 3942 cv/#Add;
-#X text 180 3942 OpenCV addition;
-#X obj 114 3974 cv/#And;
-#X text 180 3974 OpenCV bitwise AND;
-#X obj 72 4006 cv/#ApproxPoly;
-#X text 180 4006 OpenCV polygon approximator;
-#X obj 60 4038 cv/#CornerHarris;
-#X text 180 4038 OpenCV Harris corner-detector;
-#X obj 114 4070 cv/#Div;
-#X text 180 4070 OpenCV division;
-#X obj 90 4102 cv/#Ellipse;
-#X text 180 4102 OpenCV draw ellipse;
-#X obj 30 4134 cv/#HaarDetectObjects;
-#X text 180 4134 OpenCV (future use);
-#X obj 96 4166 cv/#Invert;
-#X text 180 4166 OpenCV invert matrix;
-#X obj 84 4198 cv/#KMeans 4;
-#X text 180 4198 OpenCV K-Means clusteriser;
-#X obj 114 4230 cv/#Mul;
-#X text 180 4230 OpenCV multiplication;
-#X obj 120 4262 cv/#Or;
-#X text 180 4262 OpenCV bitwise OR;
-#X obj 114 4294 cv/#SVD;
-#X text 180 4294 OpenCV singular value decomposition (eigendecomposition);
-#X obj 114 4326 cv/#Sub;
-#X text 180 4326 OpenCV subtraction;
-#X obj 114 4358 cv/#Xor;
-#X text 180 4358 OpenCV bitwise XOR;
-#X obj 138 4390 display;
-#X text 180 4390 [display]: print message or grid inside of the patch;
-#X obj 66 4422 doc_link doc_accolade;
-#X text 180 4422 GFDP accolade;
-#X obj 96 4454 doc_link doc_add;
-#X text 180 4454 add a [doc_m] in the parent of the parent canvas;
-#X obj 90 4486 doc_link doc_also;
-#X text 180 4486 GFDP subheader for listing related classes;
-#X obj 84 4518 doc_link doc_below;
-#X text 180 4518 instruct [doc_layout] to put a GFDP element below another one;
-#X obj 78 4550 doc_link doc_bottom;
-#X text 180 4550 find the bottom of a GFDP element;
-#X obj 108 4582 doc_link doc_c;
-#X text 180 4582 GFDP subheader for creation arguments documentation;
-#X obj 102 4614 doc_link doc_cc;
-#X text 180 4614 GFDP subsubheader for creation arguments documentation;
-#X obj 90 4646 doc_link doc_demo;
-#X text 180 4646 header of an example patch;
-#X obj 66 4678 doc_link doc_editmode;
-#X text 180 4678 automatically move [cnv] and [bng] when switching from/to edit mode;
-#X obj 84 4710 doc_link doc_exist;
-#X text 180 4710 check whether a certain GFDP component already exists in the help patch;
-#X obj 108 4742 doc_link doc_f;
-#X text 180 4742 footer of a GFDP help patch;
-#X obj 108 4774 doc_link doc_h;
-#X text 180 4774 header of a GFDP help patch;
-#X obj 108 4806 doc_link doc_i;
-#X text 180 4806 GFDP subheader for inlet documentation;
-#X obj 102 4838 doc_link doc_ii;
-#X text 180 4838 GFDP subsubheader for inlet documentation;
-#X obj 78 4870 doc_link doc_layout;
-#X text 180 4870 enforce correct layout of the abstraction containing it \,  in the parent's abstraction;
-#X obj 90 4902 doc_link doc_link;
-#X text 180 4902 GFDP hyperlink for opening another helpfile;
-#X obj 108 4934 doc_link doc_m;
-#X text 180 4934 GFDP subsubsubheader for one method or one creation argument;
-#X obj 90 4966 doc_link doc_make;
-#X text 180 4966 add GFDP subsubheaders in the parent of the parent canvas;
-#X obj 108 4998 doc_link doc_o;
-#X text 180 4998 GFDP subheader for outlet documentation;
-#X obj 102 5030 doc_link doc_oo;
-#X text 180 5030 GFDP subsubheader for outlet documentation;
-#X obj 90 5062 doc_link doc_same;
-#X text 180 5062 GFDP pseudo-comment for saying a method is same as a creation argument;
-#X obj 55 5094 doremi;
-#X text 180 5094 [doremi]: gui object for displaying midi notes;
-#X obj 120 5183 expect;
-#X text 180 5183 currently does like list.== (will do more than that in the future);
-#X obj 138 5215 for;
-#X text 180 5215 make sequence of float messages for each number in a range with specified stepping;
-#X obj 114 5247 foreach;
-#X text 180 5247 convert a list to a sequence of atom messages;
-#X obj 138 5279 fps;
-#X text 180 5279 measure frames per second and make statistics;
-#X obj 108 5311 gf.error;
-#X text 180 5311 emit error message from the perspective of the current abstraction instance in its parent patch;
-#X obj 72 5343 gf.io_generate;
-#X text 180 5343 for internal use by #in and #out;
-#X obj 96 5375 gf.oneshot;
-#X text 180 5375 spigot that shuts itself down after each message;
-#X obj 60 5407 gf.suffix_lookup;
-#X text 180 5407 find the objectclass corresponding ;
-#X obj 66 5439 gf/canvas_count;
-#X text 180 5439 tell total number of objects in a canvas;
-#X obj 36 5471 gf/canvas_dollarzero;
-#X text 180 5471 tell the \$0 of an uplevel canvas;
-#X obj 42 5503 gf/canvas_edit_mode;
-#X text 180 5503 tell the edit mode of a canvas;
-#X obj 48 5535 gf/canvas_filename;
-#X text 180 5535 tell the filename of a canvas;
-#X obj 60 5567 gf/canvas_getpos;
-#X text 180 5567 tell the position of a canvas in its parent canvas;
-#X obj 66 5599 gf/canvas_index;
-#X text 180 5599 tell the index of a canvas in its parent canvas;
-#X obj 36 5631 gf/canvas_isselected;
-#X text 180 5631 tell whether a canvas is selected in its parent canvas;
-#X obj 48 5663 gf/canvas_loadbang;
-#X text 180 5663 send loadbang to the most recently created objects of a canvas;
-#X obj 60 5695 gf/canvas_setgop;
-#X text 180 5695 set GOP options of a canvas;
-#X obj 60 5727 gf/canvas_setpos;
-#X text 180 5727 set the position of a canvas in its parent canvas;
-#X obj 78 5759 gf/canvas_xid;
-#X text 180 5759 tell the x11 id of a canvas \,  its window, and tell the tk id of a canvas;
-#X obj 84 5791 gf/find_file;
-#X text 180 5791 find a file the same way that [#in] does;
-#X obj 102 5823 gf/getcwd;
-#X text 180 5823 tell the current working directory (as set by the "cd" shell command);
-#X obj 102 5855 gf/getpid;
-#X text 180 5855 tell the process id of the pd server;
-#X obj 84 5887 gf/mouse_spy;
-#X text 180 5887 tell mouse/key events of a single patch window in [#out window] format;
-#X obj 90 5919 gf/selector;
-#X text 180 5919 report the true selector of the incoming message;
-#X obj 90 5951 gf/string_<;
-#X text 180 5951 compare two strings;
-#X obj 60 5983 gf/string_length;
-#X text 180 5983 measure the length of a string (in bytes);
-#X obj 54 6015 gf/string_replace;
-#X text 180 6015 search and replace substrings in a symbol;
-#X obj 108 6047 gridflow;
-#X text 180 6047 get GridFlow's version number...;
-#X obj 72 6079 hpgl_find_bbox;
-#X text 180 6079 find the bounding box of a sequence of hpgl commands;
-#X obj 60 6111 hpgl_font_render;
-#X text 180 6111 include hpgl files from disk for drawing text;
-#X obj 114 6143 hpgl_op;
-#X text 180 6143 use [#] on hpgl commands;
-#X obj 42 6175 hpgl_track_position;
-#X text 180 6175 remember last mentioned hpgl coordinate;
-#X obj 60 6207 interval_overlap;
-#X text 180 6207 test whether two intervals of floats overlap;
-#X obj 132 6239 inv*;
-#X text 180 6239 swapped /;
-#X obj 132 6271 inv+;
-#X text 180 6271 swapped -;
-#X obj 114 6303 list.==;
-#X text 180 6303 test two lists of floats and/or symbols for equality;
-#X obj 108 6335 listfind;
-#X text 180 6335 find index of an element in a list;
-#X obj 90 6367 listflatten;
-#X text 180 6367 merge all nested lists together \,  depth-first;
-#X obj 108 6399 listread;
-#X text 180 6399 find element at an index in a list;
-#X obj 90 6431 listreverse;
-#X text 180 6431 mirror image of a list;
-#X obj 102 6463 norecurse;
-#X text 180 6463 simple spigot for preventing control-recursion;
-#X obj 60 6495 doc_link parallel_port;
-#X text 180 6495 send to and receive from a DB25 parallel port;
-#X obj 108 6527 pingpong;
-#X text 180 6527 turns value of a counter into a zigzag between 0 and a given value;
-#X obj 66 6559 plotter_control;
-#X text 180 6559 make HPGL commands;
-#X obj 72 6591 plotter_parser;
-#X text 180 6591 interprets ascii codes as HPGL commands and output them as messages;
-#X obj 84 6623 qwerty_piano;
-#X text 180 6623 imitation of [notein] using [key] and [keyup];
-#X obj 126 6655 range;
-#X text 180 6655 multiple moses in cascade;
-#X obj 84 6687 receives \$0-;
-#X text 180 6687 multiple receives with common outlet and other outlet telling the name of intended destination;
-#X obj 120 6719 route2;
-#X text 180 6719 route messages but keep them intact (does not remove selector);
-#X obj 108 6751 seq_fold;
-#X text 180 6751 cascade the use of an object on all elements of an incoming message sequence;
-#X obj 126 6783 shunt;
-#X text 180 6783 demultiplexer: send input to separately specified outlet;
-#X obj 96 6815 systemtime;
-#X text 180 6815 time spent by process in kernel mode \,  as measured by the OS;
-#X obj 114 6847 tsctime;
-#X text 180 6847 high-resolution real time \,  as measured by the CPU;
-#X obj 102 6879 unix_time;
-#X text 180 6879 real time as measured by the OS \,  including date;
-#X obj 108 6911 usertime;
-#X text 180 6911 time spent by process in non-kernel mode \,  as measured by the OS;
-#X obj 126 6943 var.#;
-#X text 180 6943 like [f] for grids;
-#X text 0 6975 211 classes are listed in this index.;
+#X obj 3 32 doc_section General Topics;
+#X obj 108 64 doc_link about 1;
+#X text 180 64 about GridFlow (credits \,  etc);
+#X obj 108 96 doc_link intro 1;
+#X text 180 96 the main goal of this library (but not the only one);
+#X obj 114 128 doc_link grid 1;
+#X text 180 128 what is a grid ?;
+#X obj 108 160 doc_link image 1;
+#X text 180 160 an image of pixels is just one way to use a grid;
+#X obj 96 192 doc_link numtype 1;
+#X text 180 192 numtypes allow you to balance precision \,  range \,  headroom and efficiency ("speed");
+#X obj 108 224 doc_link numop 1;
+#X text 180 224 numops represent ways of combining two numbers (usually);
+#X obj 3 256 doc_section Object Classes;
+#X obj 138 288 # +;
+#X text 180 288 plain numeric operators on grids: + - * / etc;
+#X obj -6 320 #apply_colormap_channelwise;
+#X text 180 320 apply color correction tables separately on each channel;
+#X obj 54 352 #background_model;
+#X text 180 352 make mask from learning to distinguish background from foreground;
+#X obj 114 384 #border;
+#X text 180 384 add padding on sides of a grid;
+#X obj 114 416 #camera;
+#X text 180 416 control panel for opening cameras;
+#X obj 114 448 #cast i;
+#X text 180 448 convert grid from one number type to another;
+#X obj 102 480 #centroid;
+#X text 180 480 find centroid (weighted average) of the coordinates of a grid;
+#X obj 114 512 #change;
+#X text 180 512 send grid only if different from previous grid;
+#X obj 102 544 #checkers;
+#X text 180 544 make image of chequered background in two tones of grey;
+#X obj 126 576 #clip;
+#X text 180 576 min and max;
+#X obj 72 608 #cluster_avg 4;
+#X text 180 608 computes several averages at once according to a table of indices;
+#X obj 4 640 #color;
+#X text 180 640 GUI for selecting a colour;
+#X obj 102 711 #contrast;
+#X text 180 711 adjust contrast in two different ways;
+#X obj 102 743 #convolve;
+#X text 180 743 compute convolution product of a grid (blur and edge-detection);
+#X obj 132 775 #dim;
+#X text 180 775 get the size (dimensions) of a grid;
+#X obj 78 807 #downscale_by;
+#X text 180 807 reduce the size of an image by a whole factor;
+#X obj 96 839 #draw_hpgl;
+#X text 180 839 plot lines given in HPGL format \,  using [#draw_polygon];
+#X obj 90 871 #draw_image;
+#X text 180 871 picture-in-picture;
+#X obj 84 903 #draw_points;
+#X text 180 903 (future use);
+#X obj 78 935 #draw_polygon;
+#X text 180 935 draw polygon in an image;
+#X obj 96 967 #draw_rect;
+#X text 180 967 draw a rectangle in an image;
+#X obj 84 999 #draw_slider;
+#X text 180 999 draw a slider in an image;
+#X obj 54 1031 #extract_diagonal;
+#X text 180 1031 extract the main diagonal from a matrix;
+#X obj 126 1063 #fade;
+#X text 180 1063 fade in exponential-decay fashion (linear recurrence);
+#X obj 102 1095 #fade_lin;
+#X text 180 1095 fade in piecewise-linear fashion;
+#X obj 102 1127 #fastblur;
+#X text 180 1127 speedy shortcut for rectangular blur;
+#X obj 132 1159 #fft;
+#X text 180 1159 compute forward or inverse one-or-two-dimensional complex FFT of a grid;
+#X obj 102 1191 #finished;
+#X text 180 1191 bang when grid transmission has ended;
+#X obj 114 1223 #fold +;
+#X text 180 1223 compute the sum of each row \,  product of each row, and other similar operations;
+#X obj 96 1255 #for 0 4 1;
+#X text 180 1255 make a grid from all numbers or coordinates in a certain range;
+#X obj 102 1287 #from_pix;
+#X text 180 1287 convert pix (GEM) to grid;
+#X obj 120 1319 #gamma;
+#X text 180 1319 apply gamma correction;
+#X obj 120 1351 #grade;
+#X text 180 1351 make an index of the sorting of a grid;
+#X obj 54 1383 #greyscale_to_rgb;
+#X text 180 1383 convert greyscale to RGB;
+#X obj 120 1415 #hello;
+#X text 180 1415 make 7 colour bars;
+#X obj 102 1447 #hueshift;
+#X text 180 1447 apply hue shift by rotating the color wheel;
+#X obj 114 1479 #import;
+#X text 180 1479 convert float \,  list, or symbol ASCII codes, to a grid;
+#X obj 138 1511 #in;
+#X text 180 1511 open file or device for reading or download;
+#X obj 120 1543 #inner;
+#X text 180 1543 scalar ("dot") product \,  matrix product, tensor contraction, image channel remapping, etc.;
+#X obj 84 1575 doc_link #io.aalib;
+#X text 180 1575 open an aalib window;
+#X obj 78 1607 doc_link #io.dc1394;
+#X text 180 1607 open a faiawaia "DC" camera (not DV) using a Linux-compatible OS;
+#X obj 90 1639 doc_link #io.grid;
+#X text 180 1639 read or write a .grid file (GridFlow storage format);
+#X obj 90 1671 doc_link #io.jpeg;
+#X text 180 1671 read or write a .jpeg file;
+#X obj 90 1703 doc_link #io.mpeg;
+#X text 180 1703 read a .mpeg video file;
+#X obj 96 1735 doc_link #io.png;
+#X text 180 1735 read a .png image file;
+#X obj 96 1767 doc_link #io.ppm;
+#X text 180 1767 read a .pbm or .pgm or .ppm image file or write a .ppm image file;
+#X obj 78 1799 doc_link #io.quartz;
+#X text 180 1799 open a Quartz window (OSX);
+#X obj 30 1831 doc_link #io.quicktimeapple;
+#X text 180 1831 read a .mov video file (OSX);
+#X obj 24 1863 doc_link #io.quicktimecamera;
+#X text 180 1863 open a QuickTime Sequence Grabber (Camera / Video input) device;
+#X obj 48 1895 doc_link #io.quicktimehw;
+#X text 180 1895 read a .mov or .avi video file (Linux);
+#X obj 96 1927 doc_link #io.sdl;
+#X text 180 1927 open a SDL window (Windows \, Linux,OSX);
+#X obj 66 1959 doc_link #io.videodev;
+#X text 180 1959 open a V4L1 device (Linux-only interface for video cameras and video digitisers);
+#X obj 96 1991 doc_link #io.x11;
+#X text 180 1991 open a X11 window (Linux \, etc);
+#X obj 126 2023 #join;
+#X text 180 2023 join two grids together along any dimension;
+#X obj 96 2055 #labelling;
+#X text 180 2055 tag connected pixels with region numbers in a two-tone single-channel image;
+#X obj 120 2087 #layer;
+#X text 180 2087 layer two same-sized images;
+#X obj 60 2119 #line_to_polygon;
+#X text 180 2119 convert line (as point pair) to polygon (rotated rectangle);
+#X obj 90 2151 #make_arrow;
+#X text 180 2151 make an arrow "polygon" from 2 points (for use with line mode of [#draw_polygon]);
+#X obj 90 2183 #make_cross;
+#X text 180 2183 make cross-shaped polygon;
+#X obj 107 2215 #many tgl 3 3;
+#X text 180 2215 [#many]: create and organise many identical GUI objects;
+#X obj 114 2284 #moment;
+#X text 180 2284 find 1st or 2nd order moment (weighted average or variance) of the coordinates of a grid;
+#X obj 78 2316 #moment_polar;
+#X text 180 2316 convert covariance matrix to the longest and shortest radius of an ellipse and a rotation angle;
+#X obj 54 2348 #motion_detection;
+#X text 180 2348 frame difference with some options;
+#X obj 120 2380 #mouse;
+#X text 180 2380 converts mouse events to reports of clicks \,  drags, unclicks, motions, and separate buttons and wheel;
+#X obj 60 2412 #noise_gate_yuvs;
+#X text 180 2412 replaces dark pixels by black pixels in signed YUV images;
+#X obj 132 2444 #out;
+#X text 180 2444 open file or device for writing or upload;
+#X obj 108 2476 #outer +;
+#X text 180 2476 apply numeric operator on all possible combinations of elements of one grid with elements of another;
+#X obj 126 2508 #pack;
+#X text 180 2508 combine floats on separate inlets to make a grid;
+#X obj 84 2540 #perspective;
+#X text 180 2540 divide each point by its depth;
+#X obj 78 2572 #polygon_area;
+#X text 180 2572 find area of a polygon in square pixels;
+#X obj 42 2604 #polygon_comparator;
+#X text 180 2604 find similarity between two polygons independently of rotation \,  by radial maps and FFT;
+#X obj 48 2636 #polygon_each_edge;
+#X text 180 2636 convert a polygon to a sequence of overlapping 2-sided polygons representing edges;
+#X obj 66 2668 #polygon_moment;
+#X text 180 2668 find average of all points inside of a polygon;
+#X obj 48 2700 #polygon_perimetre;
+#X text 180 2700 find perimetre of a polygon in pixels (euclidian);
+#X obj 42 2732 #polygon_radial_map;
+#X text 180 2732 find radius of a polygon from a given origin \,  sampled at equally spaced angles;
+#X obj 96 2764 #posterize;
+#X text 180 2764 quantise pixel values;
+#X obj 120 2796 #print;
+#X text 180 2796 print to console;
+#X obj 120 2828 #ravel;
+#X text 180 2828 do #redim so that a grid keeps same number of elements but just one dimension;
+#X obj 114 2860 #record;
+#X text 180 2860 wrapper around [#in quicktime];
+#X obj 102 2892 #redim ();
+#X text 180 2892 change the size of a grid by restreaming contents into a new shape;
+#X obj 90 2924 #reinterval;
+#X text 180 2924 change the scale of values from one interval to another;
+#X obj 84 2956 #remap_image;
+#X text 180 2956 apply object chain on pixel positions to make new image from chosen pixels of the input image;
+#X obj 108 2988 #reverse;
+#X text 180 2988 mirror image of a grid along a dimension;
+#X obj 54 3020 #rgb_to_greyscale;
+#X text 180 3020 convert RGB to greyscale;
+#X obj 84 3052 #rgb_to_rgba;
+#X text 180 3052 convert RGB to RGBA (but setting alpha to 0);
+#X obj 90 3084 #rgb_to_yuv;
+#X text 180 3084 convert RGB to unsigned YUV;
+#X obj 84 3116 #rgba_to_rgb;
+#X text 180 3116 convert RGBA to RGB;
+#X obj 114 3148 #rotate;
+#X text 180 3148 rotate points through two axes (or rotate pixels as points in a colorspace);
+#X obj 72 3180 #rotatificator;
+#X text 180 3180 make rotation matrix for any two dimensions chosen from a space of any number of dimensions;
+#X obj 90 3212 #saturation;
+#X text 180 3212 multiply chroma by some value;
+#X obj 102 3244 #scale_by;
+#X text 180 3244 reduce the size of an image by a whole factor;
+#X obj 102 3276 #scale_to;
+#X text 180 3276 scale an image from one size to any other size by deleting or duplicating rows and columns;
+#X obj 114 3308 #scan +;
+#X text 180 3308 compute the cumulative sums of each row \,  and other similar operations;
+#X obj 91 3340 #see;
+#X text 180 3340 [#see]: view video output within patch and collect mouse/key info;
+#X obj 102 3412 #seq_fold;
+#X text 180 3412 cascade the use of an object on all elements of an incoming grid message sequence;
+#X obj 120 3444 #slice;
+#X text 180 3444 crop an image using a start point (top left) and end point (bottom right);
+#X obj 102 3476 #solarize;
+#X text 180 3476 like pingpong but on all pixel values of a grid;
+#X obj 126 3508 #sort;
+#X text 180 3508 sort each row of a grid;
+#X obj 114 3540 #spread;
+#X text 180 3540 add noise to each vector (point or pixel);
+#X obj 120 3572 #store;
+#X text 180 3572 store image in RAM \,  in-place picture-in-picture, and make lookups in various ways;
+#X obj 126 3604 #swap;
+#X text 180 3604 like [swap] for grids;
+#X obj 138 3636 #t;
+#X text 180 3636 like [t a a] for grids;
+#X obj 72 3668 #text_to_image;
+#X text 180 3668 use a fixed-width font grid to make a tiling of characters as specified by a text string;
+#X obj 102 3700 #to_float;
+#X text 180 3700 convert grid to sequence of floats;
+#X obj 114 3732 #to_iem;
+#X text 180 3732 convert grid(3) to IEMGUI colour code;
+#X obj 108 3764 #to_list;
+#X text 180 3764 convert grid to list;
+#X obj 90 3796 #to_literal;
+#X text 180 3796 convert grid to grid-literal (list with a # sign);
+#X obj 114 3828 #to_pix;
+#X text 180 3828 convert grid to pix (GEM);
+#X obj 96 3860 #to_symbol;
+#X text 180 3860 convert grid of ASCII codes to symbol;
+#X obj 96 3892 #transpose;
+#X text 180 3892 swap two dimensions out of any \,  in a grid;
+#X obj 126 3924 #type;
+#X text 180 3924 get a symbol representing the number type of a grid;
+#X obj 114 3956 #unpack;
+#X text 180 3956 split a grid into floats on separate outlets;
+#X obj 114 3988 #window;
+#X text 180 3988 a [#out window] that can be toggled to appear and disappear;
+#X obj 90 4020 #yuv_to_rgb;
+#X text 180 4020 convert unsigned YUV to RGB;
+#X obj 132 4052 args;
+#X text 180 4052 pick up the arguments of an abstraction instance \,  including nested lists and init-messages;
+#X obj 126 4084 ascii;
+#X text 180 4084 write integer as decimal in ascii codes;
+#X obj 96 4116 ascii_to_f;
+#X text 180 4116 converts a list of ascii codes to a float;
+#X obj 84 4148 class_exists;
+#X text 180 4148 figure out whether a class has been loaded by pd;
+#X obj 114 4180 cv/#Add;
+#X text 180 4180 OpenCV addition;
+#X obj 114 4212 cv/#And;
+#X text 180 4212 OpenCV bitwise AND;
+#X obj 72 4244 cv/#ApproxPoly;
+#X text 180 4244 OpenCV polygon approximator;
+#X obj 60 4276 cv/#CornerHarris;
+#X text 180 4276 OpenCV Harris corner-detector;
+#X obj 114 4308 cv/#Div;
+#X text 180 4308 OpenCV division;
+#X obj 90 4340 cv/#Ellipse;
+#X text 180 4340 OpenCV draw ellipse;
+#X obj 30 4372 cv/#HaarDetectObjects;
+#X text 180 4372 OpenCV (future use);
+#X obj 96 4404 cv/#Invert;
+#X text 180 4404 OpenCV invert matrix;
+#X obj 84 4436 cv/#KMeans 4;
+#X text 180 4436 OpenCV K-Means clusteriser;
+#X obj 114 4468 cv/#Mul;
+#X text 180 4468 OpenCV multiplication;
+#X obj 120 4500 cv/#Or;
+#X text 180 4500 OpenCV bitwise OR;
+#X obj 114 4532 cv/#SVD;
+#X text 180 4532 OpenCV singular value decomposition (eigendecomposition);
+#X obj 114 4564 cv/#Sub;
+#X text 180 4564 OpenCV subtraction;
+#X obj 114 4596 cv/#Xor;
+#X text 180 4596 OpenCV bitwise XOR;
+#X obj 138 4628 display;
+#X text 180 4628 [display]: print message or grid inside of the patch;
+#X obj 66 4660 doc_link doc_accolade;
+#X text 180 4660 GFDP accolade;
+#X obj 96 4692 doc_link doc_add;
+#X text 180 4692 add a [doc_m] in the parent of the parent canvas;
+#X obj 90 4724 doc_link doc_also;
+#X text 180 4724 GFDP subheader for listing related classes;
+#X obj 84 4756 doc_link doc_below;
+#X text 180 4756 instruct [doc_layout] to put a GFDP element below another one;
+#X obj 78 4788 doc_link doc_bottom;
+#X text 180 4788 find the bottom of a GFDP element;
+#X obj 108 4820 doc_link doc_c;
+#X text 180 4820 GFDP subheader for creation arguments documentation;
+#X obj 102 4852 doc_link doc_cc;
+#X text 180 4852 GFDP subsubheader for creation arguments documentation;
+#X obj 90 4884 doc_link doc_demo;
+#X text 180 4884 header of an example patch;
+#X obj 66 4916 doc_link doc_editmode;
+#X text 180 4916 automatically move [cnv] and [bng] when switching from/to edit mode;
+#X obj 84 4948 doc_link doc_exist;
+#X text 180 4948 check whether a certain GFDP component already exists in the help patch;
+#X obj 108 4980 doc_link doc_f;
+#X text 180 4980 footer of a GFDP help patch;
+#X obj 108 5012 doc_link doc_h;
+#X text 180 5012 header of a GFDP help patch;
+#X obj 108 5044 doc_link doc_i;
+#X text 180 5044 GFDP subheader for inlet documentation;
+#X obj 102 5076 doc_link doc_ii;
+#X text 180 5076 GFDP subsubheader for inlet documentation;
+#X obj 78 5108 doc_link doc_layout;
+#X text 180 5108 enforce correct layout of the abstraction containing it \,  in the parent's abstraction;
+#X obj 90 5140 doc_link doc_link;
+#X text 180 5140 GFDP hyperlink for opening another helpfile;
+#X obj 108 5172 doc_link doc_m;
+#X text 180 5172 GFDP subsubsubheader for one method or one creation argument;
+#X obj 90 5204 doc_link doc_make;
+#X text 180 5204 add GFDP subsubheaders in the parent of the parent canvas;
+#X obj 108 5236 doc_link doc_o;
+#X text 180 5236 GFDP subheader for outlet documentation;
+#X obj 102 5268 doc_link doc_oo;
+#X text 180 5268 GFDP subsubheader for outlet documentation;
+#X obj 90 5300 doc_link doc_same;
+#X text 180 5300 GFDP pseudo-comment for saying a method is same as a creation argument;
+#X obj 55 5332 doremi;
+#X text 180 5332 [doremi]: gui object for displaying midi notes;
+#X obj 120 5421 expect;
+#X text 180 5421 currently does like list.== (will do more than that in the future);
+#X obj 138 5453 for;
+#X text 180 5453 make sequence of float messages for each number in a range with specified stepping;
+#X obj 114 5485 foreach;
+#X text 180 5485 convert a list to a sequence of atom messages;
+#X obj 138 5517 fps;
+#X text 180 5517 measure frames per second and make statistics;
+#X obj 108 5549 gf.error;
+#X text 180 5549 emit error message from the perspective of the current abstraction instance in its parent patch;
+#X obj 72 5581 gf.io_generate;
+#X text 180 5581 for internal use by #in and #out;
+#X obj 96 5613 gf.oneshot;
+#X text 180 5613 spigot that shuts itself down after each message;
+#X obj 60 5645 gf.suffix_lookup;
+#X text 180 5645 find the objectclass corresponding ;
+#X obj 66 5677 gf/canvas_count;
+#X text 180 5677 tell total number of objects in a canvas;
+#X obj 36 5709 gf/canvas_dollarzero;
+#X text 180 5709 tell the \$0 of an uplevel canvas;
+#X obj 42 5741 gf/canvas_edit_mode;
+#X text 180 5741 tell the edit mode of a canvas;
+#X obj 48 5773 gf/canvas_filename;
+#X text 180 5773 tell the filename of a canvas;
+#X obj 60 5805 gf/canvas_getpos;
+#X text 180 5805 tell the position of a canvas in its parent canvas;
+#X obj 66 5837 gf/canvas_index;
+#X text 180 5837 tell the index of a canvas in its parent canvas;
+#X obj 36 5869 gf/canvas_isselected;
+#X text 180 5869 tell whether a canvas is selected in its parent canvas;
+#X obj 48 5901 gf/canvas_loadbang;
+#X text 180 5901 send loadbang to the most recently created objects of a canvas;
+#X obj 60 5933 gf/canvas_setgop;
+#X text 180 5933 set GOP options of a canvas;
+#X obj 60 5965 gf/canvas_setpos;
+#X text 180 5965 set the position of a canvas in its parent canvas;
+#X obj 78 5997 gf/canvas_xid;
+#X text 180 5997 tell the x11 id of a canvas \,  its window, and tell the tk id of a canvas;
+#X obj 84 6029 gf/find_file;
+#X text 180 6029 find a file the same way that [#in] does;
+#X obj 102 6061 gf/getcwd;
+#X text 180 6061 tell the current working directory (as set by the "cd" shell command);
+#X obj 102 6093 gf/getpid;
+#X text 180 6093 tell the process id of the pd server;
+#X obj 84 6125 gf/mouse_spy;
+#X text 180 6125 tell mouse/key events of a single patch window in [#out window] format;
+#X obj 90 6157 gf/selector;
+#X text 180 6157 report the true selector of the incoming message;
+#X obj 90 6189 gf/string_<;
+#X text 180 6189 compare two strings;
+#X obj 60 6221 gf/string_length;
+#X text 180 6221 measure the length of a string (in bytes);
+#X obj 54 6253 gf/string_replace;
+#X text 180 6253 search and replace substrings in a symbol;
+#X obj 108 6285 gridflow;
+#X text 180 6285 get GridFlow's version number...;
+#X obj 72 6317 hpgl_find_bbox;
+#X text 180 6317 find the bounding box of a sequence of hpgl commands;
+#X obj 60 6349 hpgl_font_render;
+#X text 180 6349 include hpgl files from disk for drawing text;
+#X obj 114 6381 hpgl_op;
+#X text 180 6381 use [#] on hpgl commands;
+#X obj 42 6413 hpgl_track_position;
+#X text 180 6413 remember last mentioned hpgl coordinate;
+#X obj 60 6445 interval_overlap;
+#X text 180 6445 test whether two intervals of floats overlap;
+#X obj 132 6477 inv*;
+#X text 180 6477 swapped /;
+#X obj 132 6509 inv+;
+#X text 180 6509 swapped -;
+#X obj 114 6541 list.==;
+#X text 180 6541 test two lists of floats and/or symbols for equality;
+#X obj 108 6573 listfind;
+#X text 180 6573 find index of an element in a list;
+#X obj 90 6605 listflatten;
+#X text 180 6605 merge all nested lists together \,  depth-first;
+#X obj 108 6637 listread;
+#X text 180 6637 find element at an index in a list;
+#X obj 90 6669 listreverse;
+#X text 180 6669 mirror image of a list;
+#X obj 102 6701 norecurse;
+#X text 180 6701 simple spigot for preventing control-recursion;
+#X obj 60 6733 doc_link parallel_port;
+#X text 180 6733 send to and receive from a DB25 parallel port;
+#X obj 108 6765 pingpong;
+#X text 180 6765 turns value of a counter into a zigzag between 0 and a given value;
+#X obj 66 6797 plotter_control;
+#X text 180 6797 make HPGL commands;
+#X obj 72 6829 plotter_parser;
+#X text 180 6829 interprets ascii codes as HPGL commands and output them as messages;
+#X obj 84 6861 qwerty_piano;
+#X text 180 6861 imitation of [notein] using [key] and [keyup];
+#X obj 126 6893 range;
+#X text 180 6893 multiple moses in cascade;
+#X obj 84 6925 receives \$0-;
+#X text 180 6925 multiple receives with common outlet and other outlet telling the name of intended destination;
+#X obj 120 6957 route2;
+#X text 180 6957 route messages but keep them intact (does not remove selector);
+#X obj 108 6989 seq_fold;
+#X text 180 6989 cascade the use of an object on all elements of an incoming message sequence;
+#X obj 126 7021 shunt;
+#X text 180 7021 demultiplexer: send input to separately specified outlet;
+#X obj 96 7053 systemtime;
+#X text 180 7053 time spent by process in kernel mode \,  as measured by the OS;
+#X obj 114 7085 tsctime;
+#X text 180 7085 high-resolution real time \,  as measured by the CPU;
+#X obj 102 7117 unix_time;
+#X text 180 7117 real time as measured by the OS \,  including date;
+#X obj 108 7149 usertime;
+#X text 180 7149 time spent by process in non-kernel mode \,  as measured by the OS;
+#X obj 126 7181 var.#;
+#X text 180 7181 like [f] for grids;
+#X text 0 7213 211 classes are listed in this index.;

Modified: trunk/doc/intro.pd
==============================================================================
--- trunk/doc/intro.pd (original)
+++ trunk/doc/intro.pd Wed Jul 14 13:43:53 2010
@@ -1,6 +1,6 @@
-#N canvas 536 96 624 506 10;
+#N canvas 536 96 624 370 10;
 #X obj 0 0 doc_demo;
-#X obj 0 467 doc_f;
+#X obj 0 337 doc_f;
 #X text 35 31 INTRODUCTION;
 #X text 63 61 The philosophy that guides PureData is a simple but powerful
 one : the software must first provide the user with generic flexible

Modified: trunk/doc/make_index.tcl
==============================================================================
--- trunk/doc/make_index.tcl (original)
+++ trunk/doc/make_index.tcl Wed Jul 14 13:43:53 2010
@@ -2,9 +2,32 @@
 proc category {k} {}
 source locale/english.tcl
 puts "#N canvas 0 0 632 659 10;"
-puts "#X obj 0 0 doc_demo;"
-set y 50
+set y 0
+puts "#X obj 0 $y doc_demo;"; incr y 32
+puts "#X obj 3 $y doc_section General Topics;"; incr y 32
+
+foreach {k v} {
+  about {about GridFlow (credits, etc)}
+  intro {the main goal of this library (but not the only one)}
+  grid  {what is a grid ?}
+  image {an image of pixels is just one way to use a grid}
+  numtype {numtypes allow you to balance precision, range, headroom and efficiency ("speed")}
+  numop {numops represent ways of combining two numbers (usually)}
+} {
+  set k "doc_link $k 1"
+  set w [string length $k]
+  set w [expr {$w*6+4}]
+  incr w -36 ;# à cause de doc_link
+  incr w -12 ;# à cause du $2 de doc_link
+  regsub -all {\s?,} $v { \, } v
+  puts "#X obj [expr 160-$w] $y $k;"
+  puts "#X text 180 $y $v;"
+  incr y 32
+}
+
+puts "#X obj 3 $y doc_section Object Classes;"; incr y 32
 set n 0
+
 foreach k [lsort [array names ::say *]] {
 	set h 0 ;# gets clipped to 32 later, or replaced by whatever
 	set v $::say($k)



More information about the Gridflow-cvs mailing list