Hi,
As I said, you leave behind the opportunity to fine tune the parameters.
Ok I see now the type of control you want on the spray tool : you're right, as it is an optional dialog, we can afford having many parameters. http://wiki.inkscape.org/wiki/index.php/SpecSprayTool#UI
It's good that you challenge my ideas because either they become stronger and more focused or get scrapped in the process... so whatever is the outcome it's good.
BTW, if you plan to add a proposal or mockup on the wiki, PLEASE, PLEASE, create a new section rather than using mine because I can't keep it tidy if you don't.
I just changed the tabs in a dropdown box, indeed, we don't know how many objects the tool will have to spray. I added the "Master" item, the logic will be the following :
- if a checkbox for an object is checked, take this parameter
- otherwise look for the master : if the corresponding Master checkbox is
checked, take these parameters
- otherwise, take the reference brush parameters as parameters.
I added the Master tab to my mockup. However, my proposal has a major flaw: it doesn't allow the user to set master values in a per-parameter fashion. Thus, if the Master tab is active it overrides ALL of the parameters of the objects.
Yours is much better since users will probably like to override some parameters while using others with their object configuration. And I get rid of the unnecessary checkbox. I'll update my mockup to reflect this.
Yes, the curve widget would be great. If you've used blender, you may be familiar with the power of such parameter control. (basicaly, the user can define curves between two variables) In fact, the question is What do we mean when we talk about the "randomness"parameter ? If the user gives a curve, it's clear, but if we give a number, how can we define it ? That was what I tried to propose when I talked about distribution.
Here is the UI with the curve: http://wiki.inkscape.org/wiki/index.php/Image:Spray-tool-ui02.png
Keep in mind that the curve controls the density (distribution) of the sprayed items, not the randomness.
I think that a curve widget may be too complex to use (and to build). So considering the min and max value, this is what I propose as an internal way to convert the % of randomness to a distribution : http://wiki.inkscape.org/wiki/index.php/Image:Random_spray.png
I hope it is not... but developers have the last word, so... BTW If I recall correctly, when the Tweak tool was implemented there was some talk about a way to set pressure with a curve. Right now it is using a gaussian curve if I'm not mistaken. If this curve widget gets implemented it could be used for the Tweak tool too...
About this curve system I've made two mockups: http://wiki.inkscape.org/wiki/index.php/Image:Spray-tool-cursor01.png http://wiki.inkscape.org/wiki/index.php/Image:Spray-tool-cursor02.png
The first one shows one of the clear advantages of this approach. From the wiki blueprint: ""This system allows:
* Literally draw densities in a intuitive way. * Adjust a different density for each object, or share them via Presets. * Set density functions that has a hole in them or concentric rings. * Set degrees of density that you can't get with the 2-radiuses approach. ""
Your approach, Steren, only allows configurations were the center of the cursor is ALWAYS the zone with the maximum intensity of the whole cursor. You can't do concentric rings, or have Object1 sprayed on the outside ONLY, and Object2 on the inside.
The second example shows the parameters ratio and angle. Ratio=tangential/normal: (Picture in your mind a cursor with a vertical stroke direction) - Ratio>1: the height of the cursor is bigger than the width. - Ratio=1: height=width (a circle). - Ratio<1: the width of the cursor is bigger than the height.
Angle just sets an angle for the cursor relative to the stroke direction.
The ratio option is overridden by the 'Use tilt from pen' option.
I think all of this framework can be used for the Tweak tool too.
I've to work on an example about how to adjust the limits and retouch a bit the UI mockup, basically removing the checkbox in Master tab and adding a way to select the objects. I've an idea where the objects/groups can selected from the toolbar and in Clone Mode the selected item becomes the original of the clones.
Regards.