Mercurial > MadButterfly
diff dox/arch.h @ 111:8feb89b19619
More doxy
author | Thinker K.F. Li <thinker@branda.to> |
---|---|
date | Fri, 12 Sep 2008 23:43:11 +0800 |
parents | |
children | e89512d6fa0a |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dox/arch.h Fri Sep 12 23:43:11 2008 +0800 @@ -0,0 +1,37 @@ +/*! \page archi Internal Architecture + * + * \image html core.png + * Above graphic is relationship among major objects of MadButterfly. + * \ref redraw_man_t, redraw manager, is supposed to manage graphic elements, + * shapes, and decide when and who to redraw on the output screen. + * + * \ref shape_t is base-type for all graphic objects. It can be a path, + * a text, a ellipse, ..., or an image. When the states or attributes of + * an graphic + * object changed, managing redraw_man_t, the one that manages the graphic + * object, will be notified. The redraw_man_t will schedule a redrawing + * for every + * dirty objects, changed ones, and relative objects. The relative objects + * are objects effected by changed ones. For example, part of a relative + * object may be hidden before changing, but it is re-explored after chaning. + * The explored part of the object must be redrawed. + * + * The shape of shape objects are variable from type to type. To simplize + * the problem, we use a rectangle to model the area occupied by an object. + * \ref geo_t is the one used to model the rectangle. Shape objects should + * update associated \ref geo_t objects to reflect changing of them-self. + * + * \ref coord_t is used to model transformation in coordinate system. + * A \ref coord_t is actually an transform matrix with additional + * informations. \ref coord_t + * objects are organized as a tree according hierachy of group tags in + * a SVG file. + * + * Colors or patterns used to stroke or fill shapes are described + * by \ref paint_t . Every shape object has a paint, but a paint object + * can be used by multiple shape objects. Once a paint is changed, all + * objects that associate with the paint are dirty. They will be scheduled + * by associated \ref redraw_man_t object to update graphics on + * output screen. + * + */