This discussion seems to be going astray a bit. Let me try to supply some suggestions and information. Item: Peter is, no doubt unintentionally, getting into questions of implementation, as opposed to user interface, when he writes about rectangles. The brush only specifies the area to which healing is *applied* -- the region over which the differential equation is solved is invisible to the user. Item: The whole point of this tool is to use a brush. Healing using a selection might be quite valuable, but it would be a different tool. However -- to repeat -- the brush only specifies the region to which healing is applied, not the region used to perform the healing computations. Item: The user needs to receive feedback during brush motion. As Sven points out, the feedback does not have to be perfect, but a user needs to be able to tell at least approximately what is happening. Item: There is no reason why healing has to be cumulative. At least during an individual painting operation (i.e., while the mouse button is held down), it is possible to retain the initial state, and accumulate the set of brush locations, using the totality to define the region for healing. Some of the existing paint tools already work this way. Item: The main healing code is in app/paint/gimpheal.c. You don't actually need a broad knowledge of GIMP internals to understand the code there. The most important thing you need to know about is pixel regions, and the easiest way to learn that is to start by reading "How to write a GIMP plug-in", which you can find at: http://developer.gimp.org/writing-a-plug-in/1/index.html The interface to pixel regions for plug-ins is not identical to the one in the core, but it is very similar, and the concepts are the same. -- Bill ______________ ______________ ______________ ______________ Sent via the CNPRC Email system at primate.ucdavis.edu _______________________________________________ Gimp-developer mailing list Gimp-developer@xxxxxxxxxxxxxxxxxxxxxx https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer