2003-09-06 Dave Neary <bolsh@gimp.org>
Ooops! Sorry for the oversight.
* app/vectors/gimpvectors.[ch]
* app/vectors/gimpstroke.[ch]
* app/vectors/gimpbezierstroke.c: Changed include order
to conform to the coding standards in devel-docs/includes.txt
(which should really be integrated into HACKING).
2003-09-06 Dave Neary <bolsh@gimp.org>
* app/vectors/Makefile.am: Include libart headers
* app/vectors/gimpvectors.[ch]
* app/vectors/gimpstroke.[ch]
* app/vectors/gimpbezierstroke.[ch]: Committing unfinished,
useless stub code for converting a GimpVectors object to a
libart vector path. Will pad this out later.
2003-09-04 Simon Budig <simon@gimp.org>
* app/vectors/gimpbezierstroke.c: Changed the direct dragging
of a segment a bit, so that close to one endpoint only one
handle gets moved.
2003-09-03 Simon Budig <simon@gimp.org>
* app/vectors/gimpstroke.c
* app/vectors/gimpbezierstroke.c: Two small hacks to make the
editing behave more symmetric (no more a user visible difference
between extending to the start or to the end of a stroke).
* app/tools/gimpvectortool.c: Use dashed lines for the connection
between the anchor and the handles. Looks great IMHO.
2003-09-01 Simon Budig <simon@gimp.org>
* app/vectors/gimpcoordmath.[ch]: Introduced function to compare
two gimpcoords
* app/vectors/gimpstroke.[ch]: virtualized gimp_stroke_close.
* app/vectors/gimpbezierstroke.c: made the _close function check,
if there is an unneeded segment (CCA-Sequence with all the same
coordinates) at the gap to be closed. If so, remove it.
2003-09-01 Sven Neumann <sven@gimp.org>
* app/text/gimptext-vectors.c: use the new bezier stroke API.
* app/vectors/gimpbezierstroke.c (gimp_bezier_stroke_new_moveto):
pass a NULL anchor to the first call of gimp_bezier_stroke_extend().
2003-08-29 Simon Budig <simon@gimp.org>
* app/vectors/gimpbezierstroke.c: Do not modify the selection
state of the anchors. When extending EXTEND_EDITABLE return
the anchor created (not the handle at the end of the list)
* app/tools/tools-enums.h: Added new mode-enum for the vector tool.
* app/tools/tools-enums.c: regenerated
* app/tools/gimpvectortool.[ch]: Implemented moving (Shortcuts
ALT and ALT+CTRL. The whole assignment of modifiers right now
gets revised. Right now you have to use the Tool options to
switch between the modes of operation. Connecting strokes now
works in Insert/Delete mode by clicking on startpoint and
dragging to target endpoint.
I will write a mail to gimp-devel when the shortcuts are
setteled a bit more. Sorry for the inconvenience.
2003-08-28 Simon Budig <simon@gimp.org>
* app/core/gimpimage-mask-select.c
* app/vectors/gimpbezierstroke.c: Fixed two crashes when a path
with a single node in a stroke got converted to a selection or got
stroked.
2003-08-27 Simon Budig <simon@gimp.org>
* app/vectors/gimpstroke.[ch]
* app/vectors/gimpbezierstroke.c: Implemented function to
connect two strokes.
* app/tools/gimpvectortool.[ch]: Use it. Right now you have
to click on one endpoint, and then SHIFT+CTRL+ALT-Click on
the other endpoint.
Suggestions on how to solve that more sanely are welcome...
2003-08-26 Simon Budig <simon@gimp.org>
* app/vectors/gimpbezierstroke.c: Minor code cleanup that
automagically makes SHIFT while curve-dragging work...
2003-08-26 Simon Budig <simon@gimp.org>
* app/vectors/gimpstroke.[ch]
* app/vectors/gimpbezierstroke.c: Implemented direct moving of the
curve. Whee! :-)
* app/tools/gimpvectortool.[ch]: Use it.
2003-08-22 Simon Budig <simon@gimp.org>
* app/vectors/gimpstroke.[ch]
* app/vectors/gimpbezierstroke.c: added
gimp_(bezier_)stroke_open that opens up a stroke (possibly
returns a new one if it falls apart).
* app/tools/gimpvectortool.[ch]: make it possible to break
up a stroke by deleting (CTRL-Clicking in Insert/Delete mode)
the curve between two anchors.
2003-08-21 Simon Budig <simon@gimp.org>
* app/vectors/gimpstroke.[ch]: added _is_empty () that checks
if a stroke is empty.
* app/vectors/gimpbezierstroke.c: Implemented _anchor_delete ()
* app/vectors/gimpvectors.[ch]: added _stroke_remove ()
* app/tools/gimpvectortool.[ch]: implemented the deletion of
anchors. CTRL-Click on the anchor in Insert/Delete mode does
the trick. Also did some renaming to the Vector tool
(now Path tool) and set the Tooltip to something sane.
Folks, I think the new path tool is no longer a regression
against the 1.2 bezier select tool!
2003-08-20 Simon Budig <simon@gimp.org>
* app/vectors/gimpstroke.[ch]: Add hooks for insertion of points
(and testing if insertion is possible)
* app/vectors/gimpbezierstroke.c: Implement it for BezierStrokes
* app/tools/gimpvectoroptions.c: Adjusted Options-GUI.
* app/tools/gimpvectortool.[ch]: Detect if the pointer is over
the curve. Make it possible to insert points in the curve.
Select the "Insert/Delete Nodes" mode in the tool options and
click on the curve.
2003-08-19 Simon Budig <simon@gimp.org>
* app/vectors/gimpvectors.h
* app/vectors/gimpstroke.[ch]: removed temp_anchor stuff. I don't
think that this is needed. Added virtual function to determine the
closest point on the curve to a given target point.
* app/vectors/gimpbezierstroke.c: implemented
gimp_bezier_stroke_nearest_point_get () - up to now untested and
unused.
2003-08-17 Simon Budig <simon@gimp.org>
* app/vectors/gimpstroke.[ch]
* app/vectors/gimpbezierstroke.[ch]: Virtualized
gimp_bezier_stroke_extend, added gimp_stroke_is_extendable.
* app/text/gimptext-vectors.c: changed accordingly.
* app/vectors/gimpvectors.[ch]: added gimp_vectors_anchor_select.
* app/tools/gimpvectoroptions.[ch]: dummy switch for future
extensions
* app/tools/gimpvectortool.[ch]: Major overhaul. Made use of
gimp_vector_tool_oper_update, cleaned up
gimp_vector_tool_button_press a lot and finally have a
working cursor_update. Still buggy, but I wanted to have it
in CVS.
2003-08-02 Simon Budig <simon@gimp.org>
* app/vectors/gimpstroke.[ch]: implemented gimp_stroke_close.
* app/vectors/gimpbezierstroke.c: only extend a stroke if
it is not closed.
* app/tools/gimpvectortool.c: ALT-Click on an anchor now
closes the stroke. Will evolve to the ability to connect
two strokes.
2003-07-17 Sven Neumann <sven@gimp.org>
* app/vectors/Makefile.am
* app/vectors/gimpanchor.[ch]: added a simple GimpAnchor API.
* app/vectors/gimpbezierstroke.c
* app/vectors/gimpstroke.c: use the new functions.
2003-06-26 Simon Budig <simon@gimp.org>
* app/vectors/gimpbezierstroke.c: rewrote gimp_bezier_stroke_extend
for the case when the neighbor is not really an end point of the
stroke, but close enough to the end to still be acceptable.
* app/tools/gimpvectortool.c: Make the tool behave sanely
and more symetrically (both ends of a stroke behave basically the
same now), gimp_draw_on_handle () now prefers the anchor passed
into it via the *ret_anchor parameter over other preferred anchors.
2003-06-25 Simon Budig <simon@gimp.org>
* app/vectors/gimpbezierstroke.c: If an control handle gets
converted to an edge simply move it to its next anchor.
* app/tools/gimpvectortool.c: Improved interactive handling
of vectors. Still work in progress, esp. I am not sure about
the assignment of the modifier keys. Right now it is:
Drag (Anchor/Handle): Regular Movement
Shift-Click (Anchor): select multiple anchors (does not work yet)
Shift-Drag: (Handle): move opposite handle symmetrically
Ctrl-Drag (Anchor): Drag out control point
S-C-Click: (Anchor/Handle): Convert to Edge
2003-05-19 Simon Budig <simon@gimp.org>
* app/vectors/gimpbezierstroke.[ch]: Implemented closed paths. Not
yet available in a sane manner via the UI. Added the last missing
line from gimp_bezier_stroke_interpolate ().
* app/tools/gimpvectortool.c: Changed accordingly
* app/vectors/gimpstroke.[ch]
* app/vectors/gimpvectors.[ch]: removed Tabs.
2003-05-18 Michael Natterer <mitch@gimp.org>
* app/vectors/gimpbezierstroke.[ch]
(gimp_bezier_stroke_new_from_coords): changed to expect all points
(also the first one) in "H, A, H" order. Ignore the first coord
in the array for now. Added "gboolean closed" parameter.
* app/xcf/xcf-load.c
* tools/pdbgen/pdb/paths.pdb: shuffle the legacy path point arrays
around before creating strokes so they match the new order.
* app/pdb/paths_cmds.c: regenerated.
2003-05-15 Michael Natterer <mitch@gimp.org>
* app/vectors/gimpbezierstroke.c
(gimp_bezier_stroke_new_from_coords): actually increment the coord
index when iterating the coords array. Fixes bug #113049.
2003-03-20 Simon Budig <simon@gimp.org>
* app/tools/gimpvectortool.[ch]
Fixed crashes and weird problems when the tool changed images or
images got closed. Fixes Bug #108318.
* app/vectors/vectors-types.h: More sane names for the
GimpAnchorType enum.
* app/vectors/gimpbezierstroke.c
* app/vectors/gimpstroke.c: changed accordingly.
2002-12-31 Simon Budig <simon@gimp.org>
* app/vectors/vectors-types.h: New Type: GimpVectorExtendMode
* app/tools/gimpvectortool.c
* app/vectors/gimpstroke.[ch]
* app/vectors/gimpbezierstroke.[ch]: More stuff on the path
(pun intended) to a better path tool...
Thanks to Sven for being my host in Berlin!
2002-12-30 Simon Budig <simon@gimp.org>
* app/vectors/gimpanchor.h
* app/vectors/vectors-types.h: Anchors now have an enum as type and
have the "selected" property.
* app/vectors/gimpstroke.[ch]
* app/vectors/gimpbezierstroke.c
* app/vectors/gimpvectors-preview.c: Additional functions to get
information about the graphical representation of the stroke and be
able to select anchors.
* app/tools/gimpvectortool.c: semi-usable interface, better graphical
representation of what is going on. Also make use of the "selected"
property of the anhors to just display a subset of the control
handles.
2002-12-29 Simon Budig <simon@gimp.org>
* app/core/gimpimage-mask-select.c
* app/paint/gimppaintcore-stroke.c
* app/tools/gimpvectortool.c
* app/vectors/gimpbezierstroke.[ch]
* app/vectors/gimpstroke.[ch]
* app/vectors/gimpvectors-preview.c: some more stuff for the
vectors tool: bezier interpolation is available, we have preview
generation. Usage is still weird.
222002-12-28 Simon Budig <simon@gimp.org>
* app/vectors/gimpbezierstroke.c: untested and unused stuff
for the interpolation of bezier curves. More to come soon.
2002-09-30 Simon Budig <simon@gimp.org>
* data/brushes/1circle.gbr: fixed the default spacing, so that
lines actually look like 1 pixel lines...
* themes/Default/images/tools/.cvsignore: Added some files.
* app/vectors/gimpanchor.h
* app/vectors/gimpbezierstroke.[ch]
* app/vectors/gimpstroke.h
* app/vectors/gimpvectors.h: Added some stuff, mostly unused
code that otherwise would just rot on my harddisk. Mitch: I
need to discuss the data structures with you...
2002-02-26 Simon Budig <simon@gimp.org>
* app/tools/gimpdrawtool.c
* app/tools/gimpdrawtool.h: Added function gimp_draw_tool_draw_strokes
to be able to draw lines from a GimpCoords array.
* app/vectors/gimpanchor.h: removed "active", since this should
be a GUI thing.
* app/vectors/gimpstroke.c
* app/vectors/gimpstroke.h
* app/vectors/gimpbezierstroke.c
* app/vectors/gimpbezierstroke.h: Implemented (and fixed API) for
interpolation.
* app/tools/gimpvectortool.c
* app/tools/gimpvectortool.h: Changed accordingly, we can actually
draw polylines now.
2002-02-25 Simon Budig <simon@gimp.org>
* app/vectors/gimpbezierstroke.c
* app/tools/gimpvectortool.[ch]
* app/vectors/gimpstroke.[ch]
* app/vectors/gimpvectors.[ch]: Fixed various bugs, *including*
the nasty one from this morning (thanks Mitch).
2002-02-25 Simon Budig <simon@gimp.org>
* app/vectors/gimpvectors.c
* app/vectors/gimpvectors.h: Changed to a container of
GimpStrokes. This will enable it to contain different
Stroke-types in one Vectors-Object (think Entry in path
dialog)
* app/vectors/gimpstroke.c
* app/vectors/gimpstroke.h
* app/vectors/gimpbezierstroke.c
* app/vectors/gimpbezierstroke.h: New Objects: A connected
component in a vector.
* app/vectors/gimpbezier.c
* app/vectors/gimpbezier.h: Removed, obsoleted by gimpstroke
and gimpbezierstroke.
* app/tools/gimpvectortool.c
* app/vectors/Makefile.am
* app/vectors/vectors-types.h
* app/vectors/gimpanchor.h: Changed accordingly.
There is a nasty bug I am yet unable to find in the tool.
Don't use it. For some reason a wrong function instead of
gimp_stroke_real_anchor_get_next gets called. I have *no*
idea, whats wrong here. I stared at the code for hours.
If somebody has an idea I'd appreciate a hint.