Re: [Gimp-developer] Rotation for brushes

2008-03-18 Thread Sven Neumann
Hi,

On Sat, 2008-03-15 at 23:02 -0700, David G. wrote:
 Add a option to rotate brushes to compliment the scaling.

In case someone wants to start working on this, here's a rough outline
of what needs to be done:

(1) Rename the scale() method of GimpBrush to transform().
(2) Add an angle parameter to the transform method.
(3) Implement the rotation for all derived brush classes.
The difficult part is to do the rotation, efficiently,
for pixmap brushes.

When we are this far, we can start to consider how the angle should be
controlled by the user. As a start one would add methods to GimpContext
to rotate the current brush so that keyboard shortcuts can be added for
this. Later we can add more sophisticated things then.

The next logical step after adding rotation would be to change the
GimpBrush::transform method to take a GimpMatrix3 parameter and to allow
for arbitrary affine transformations (that includes shearing). I am sure
that there is some efficient code for this out there that we could
use...


Sven


___
Gimp-developer mailing list
Gimp-developer@lists.XCF.Berkeley.EDU
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer


Re: [Gimp-developer] Rotation for brushes

2008-03-18 Thread jbaker
it would also be nice to tie in scale and rotate (and any other changes) 
with gimp-python...
___
Gimp-developer mailing list
Gimp-developer@lists.XCF.Berkeley.EDU
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer


Re: [Gimp-developer] Rotation for brushes

2008-03-18 Thread Joao S. O. Bueno
On Tue 18 Mar 2008 09:38:26 jbaker wrote:
 it would also be nice to tie in scale and rotate (and any other changes)
 with gimp-python...

That part comes last - when it is implemented in the core, calls for this 
should be added to te PDB (there are missing PDB calls for controling brush 
scale, and paint parameters as jitter currently).

Once it is in the PDB, they wod be available from python, but also, I am 
working in implementing gimp brushes as python objects, and it would be 
trivial to add rotation support there once it is in the core.


As for the User Interface for this, I think mapping curves from input 
parameters to brush/tool properties is the way to go. (that is,  I can think 
of a curve mapping painting angle to brush angle  :-)   )

http://wiki.gimp.org/gimp/SummerOfCode2008ideas
http://bugzilla.gnome.org/show_bug.cgi?id=119240

js
--

 ___
 Gimp-developer mailing list
 Gimp-developer@lists.XCF.Berkeley.EDU
 https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer


___
Gimp-developer mailing list
Gimp-developer@lists.XCF.Berkeley.EDU
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer


Re: [Gimp-developer] Rotation for brushes

2008-03-17 Thread Alexandre Prokoudine
On Mon, Mar 17, 2008 at 1:37 AM, Bill Skaggs wrote:
 David G. wrote:
  
Add a option to rotate brushes to compliment the scaling.
I don't know if this has been requested but it would be very
   helpful than creating a layer + using the rotation tool.

  Wouldn't be all that hard to do.  How often do you think this
  would be used?  What kind of brushes would you want to
  use it for?

How much wrong would I be to suppose that this feature is a must for
supporting rotation of wacom pen? ;-)

Alexandre
___
Gimp-developer mailing list
Gimp-developer@lists.XCF.Berkeley.EDU
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer


[Gimp-developer] Rotation for brushes

2008-03-16 Thread David G.

Add a option to rotate brushes to compliment the scaling. I don't know if
this
has been requested but it would be very helpful than creating a layer +
using
the rotation tool.

This is a from http://bugzilla.gnome.org/show_bug.cgi?id=522705
-- 
View this message in context: 
http://www.nabble.com/Rotation-for-brushes-tp16075831p16075831.html
Sent from the Gimp Developer mailing list archive at Nabble.com.

___
Gimp-developer mailing list
Gimp-developer@lists.XCF.Berkeley.EDU
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer


Re: [Gimp-developer] Rotation for brushes

2008-03-16 Thread Bill Skaggs
David G. [EMAIL PROTECTED] wrote:

  Add a option to rotate brushes to compliment the scaling.
  I don't know if this has been requested but it would be very
 helpful than creating a layer + using the rotation tool.


Wouldn't be all that hard to do.  How often do you think this
would be used?  What kind of brushes would you want to
use it for?

  -- Bill
___
Gimp-developer mailing list
Gimp-developer@lists.XCF.Berkeley.EDU
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer


Re: [Gimp-developer] Rotation for brushes

2008-03-16 Thread David Gowers
Hi,

On Mon, Mar 17, 2008 at 9:07 AM, Bill Skaggs [EMAIL PROTECTED] wrote:
 David G. [EMAIL PROTECTED] wrote:
  
Add a option to rotate brushes to compliment the scaling.
I don't know if this has been requested but it would be very
   helpful than creating a layer + using the rotation tool.
  

  Wouldn't be all that hard to do.  How often do you think this
  would be used?  What kind of brushes would you want to
  use it for?
Myself, I would use it for nearly every non-symmetrical brush (and
wish for the ability to v- or h-flip it, too), particularly when I'd
just copied something and was using the clipboard brush. Every brush
that is remotely 'directional' needs this
(or, possibly the option to rotate the brush to match the movement
direction -- that would work fairly well much of the time.)

Making aspect ratio controls independent of brush type also makes
sense to me.  hardness' also makes sense independent of brush type
(hardness specifying the middle point of a curve, 0 would be a linear
curve, .5 would be a gamma-ish curve where  a majority of midpoint
values become much more opaque, -.5 would be a gamma-ish curve where a
majority os midpoint values become  much less opaque.

I may be getting a little OT, I believe that those controls do not
belong in the VBR brush editor.
___
Gimp-developer mailing list
Gimp-developer@lists.XCF.Berkeley.EDU
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer


Re: [Gimp-developer] Rotation for brushes

2008-03-16 Thread GSR - FR
Hi,
[EMAIL PROTECTED] (2008-03-16 at 1537.58 -0700):
 David G. [EMAIL PROTECTED] wrote:
 
   Add a option to rotate brushes to compliment the scaling.
   I don't know if this has been requested but it would be very
  helpful than creating a layer + using the rotation tool.
 
 
 Wouldn't be all that hard to do.  How often do you think this
 would be used?  What kind of brushes would you want to
 use it for?

Ohh, no, please, not yet another duplication. The system should avoid
this, and try to unify instead. You can scale brush in one place (by
means of a factor, so try and error) or two if the brush is editable
(pixel size). It would be better thinking how to get things in one
single place, with controls that are direct, instead of too many
places, too many conditionals and too many indirect controls. I never
understood why pixmaps were not made a possible source for the brush
editor when it was added, and then all the ops that make sense
(rotation, resizing, aspect...) be applied to them (from user PoV at
least, even if internally it means different processing) for example.

GSR
 
___
Gimp-developer mailing list
Gimp-developer@lists.XCF.Berkeley.EDU
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer


Re: [Gimp-developer] Rotation for brushes

2008-03-16 Thread David G.



Bill Skaggs wrote:
 
 David G. [EMAIL PROTECTED] wrote:

  Add a option to rotate brushes to compliment the scaling.
  I don't know if this has been requested but it would be very
 helpful than creating a layer + using the rotation tool.

 
 Wouldn't be all that hard to do.  How often do you think this
 would be used?  What kind of brushes would you want to
 use it for?
 
   -- Bill
 ___
 Gimp-developer mailing list
 Gimp-developer@lists.XCF.Berkeley.EDU
 https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer
 
 

Alright, I'll try to be brief as possible. I proposed this because it will
actually boost the simplicity of managing brushes to adapt in effects and
splashes, instead of doing the layer and rotation technique. There are so
many floral/grunge/splatter brushes that have been added in the GIMP. (ex
http://gimp-tutorials.net/vinal-gimp-brushes ) 

How often will it be used? Well that's hard to calculate, globally speaking.
An artist/amateur/customizer will probably use this, I dare to say they
would use the rotation a lot.

Maybe in the eyes of a developer this might be considered 'bloat'. 
-- 
View this message in context: 
http://www.nabble.com/Rotation-for-brushes-tp16075831p16086105.html
Sent from the Gimp Developer mailing list archive at Nabble.com.

___
Gimp-developer mailing list
Gimp-developer@lists.XCF.Berkeley.EDU
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer


Re: [Gimp-developer] Rotation for brushes

2008-03-16 Thread Bill Skaggs
David G. [EMAIL PROTECTED] wrote:

  I proposed this because it will actually boost the simplicity
 of managing brushes to adapt in effects and splashes, instead
 of doing the layer and rotation technique.  ...

I gather from this that you would like to be able to pick
an arbitrary rotation, and that simply rotating in the
direction of motion wouldn't fit your needs.


  Maybe in the eyes of a developer this might be considered 'bloat'.

It isn't a question of bloat, it's a question of keeping the user
interface as simple as possible while providing the capabilities
that are wanted.  Adding an option that doesn't get used is
not harmless:  it makes it harder to find the things that are
important.  As an artist, you wouldn't want to have the
controls you need buried amongst 20 useless buttons and
sliders, would you?  That's why everything like this needs
discussion and careful consideration.

  -- Bill
___
Gimp-developer mailing list
Gimp-developer@lists.XCF.Berkeley.EDU
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer


Re: [Gimp-developer] Rotation for brushes

2008-03-16 Thread David Gowers
On Mon, Mar 17, 2008 at 10:45 AM, Bill Skaggs [EMAIL PROTECTED] wrote:
 David Gowers wrote:

Myself, I would use it for nearly every non-symmetrical brush (and
wish for the ability to v- or h-flip it, too), particularly when I'd
just copied something and was using the clipboard brush.
   Every brush that is remotely 'directional' needs this
(or, possibly the option to rotate the brush to match the movement 
 direction -- that would work fairly well much of the time.)

  If the major usage case is to rotate to match the direction of
  movement, it would make more sense to support that directly,
  since it would be a p.i.t.a. for users to have to go into the options
  to set a direction for each stroke.

I was envisaging it being settable via the keyboard. You can currently
set VBR angle by keyboard shortcuts.

In any case, you seem to have missed that the directional rotation
requires a 'normative' rotation value -- since many brushes, while
asymmetrical, have no obvious 'direction', we might want to allow a
default rotation to be set per brush..
It *would* be necessary to allow normative rotation to be modified, in
order for directional rotation to consistently remain sensible to the
user.



  This shouldn't be too hard in principle:  it is already supported
  as a mode for image pipe brushes.  In practice it hasn't worked
  all that well, because it's not so easy to cleanly estimate the
  direction of motion -- especially at turning points or the start
  of a stroke -- so it has been hard to avoid getting anomalies
  every so often.  The new motion-smoothing code that Alexia
I think that we need some trickery to happen -- for example, the right
thing for the start of a stroke is probably to match the angle for the
first event to the angle of the following event, so we would need to
draw the first dab, and then redraw it if the user continues the
stroke.

  recently contributed might actually make this work better --
  this should be investigated.
Because it's inertia-based, it does..  as long as there is *some*
smoothing happening, angle is much more coherent.
(note: I'm currently using 2.4.2, rather than SVN trunk, sadly.
___
Gimp-developer mailing list
Gimp-developer@lists.XCF.Berkeley.EDU
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer


Re: [Gimp-developer] Rotation for brushes

2008-03-16 Thread David Gowers
On Mon, Mar 17, 2008 at 10:59 AM, Bill Skaggs [EMAIL PROTECTED] wrote:
 David G. [EMAIL PROTECTED] wrote:


   I proposed this because it will actually boost the simplicity
   of managing brushes to adapt in effects and splashes, instead
   of doing the layer and rotation technique.  ...

  I gather from this that you would like to be able to pick
  an arbitrary rotation, and that simply rotating in the
  direction of motion wouldn't fit your needs.

There are indeed many brushes which would work best with a specific
angle control -- they are mainly 'edge-effect' brushes. Anyway, I've
already stated my belief that if you have directional rotation, a
normative rotation angle control is necessary.




Maybe in the eyes of a developer this might be considered 'bloat'.

  It isn't a question of bloat, it's a question of keeping the user
  interface as simple as possible while providing the capabilities
  that are wanted.  Adding an option that doesn't get used is
  not harmless:  it makes it harder to find the things that are
  important.  As an artist, you wouldn't want to have the

I believe that we can reduce the number of
screen-real-estate-occupying options anyway, and
use an interface like the ink tool nib adjuster to simultaneously set
brush normative rotation and aspect ratio.
Also possibly scale -- being able to use the scroll wheel on the nib
adjuster to change brush scale makes sense to me, skew -- ctrl+drag to
skew, flip -- shift-click near a border to flip on that axis, and
aspect -- shift-drag.

(to be congruent with the rest of the GIMP, it would probably be
better to put skew on shift and aspect+flip on control, since shift
typically adds and control typically constrains.)

As far as the backend goes, I would expect values for skew, rotate,
aspect, flip, scale to  be independently stored and modifyable by
keyboard shortcut*, and mostly combined** into one transform matrix
after a value changes.

*by which I mean that they can be shortcutted, not that they are by default.
** looking at the brush code, differently scaled versions of the brush
are cached. If directional rotation was implemented, we'd want to
cache rotations as well, I expect. So the transform might work better
in two steps.


An example of this kind of interface in a raster paint program is in
Pixia (Windows).

  controls you need buried amongst 20 useless buttons and
  sliders, would you?  That's why everything like this needs
  discussion and careful consideration.



   -- Bill
  ___
  Gimp-developer mailing list
  Gimp-developer@lists.XCF.Berkeley.EDU
  https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer

___
Gimp-developer mailing list
Gimp-developer@lists.XCF.Berkeley.EDU
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer