Commit Graph

92 Commits

Author SHA1 Message Date
1d4720e560 Ooops! Sorry for the oversight. app/vectors/gimpvectors.[ch]
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 18:40:48 +00:00
0508bdcc4b Include libart headers app/vectors/gimpvectors.[ch]
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-06 16:39:08 +00:00
430b96b682 Bah. Fixed stupid error from my last commit.
2003-09-04  Simon Budig  <simon@gimp.org>

	* app/vectors/gimpbezierstroke.c: Bah. Fixed stupid error from
	my last commit.
2003-09-04 13:08:03 +00:00
ea865689d0 Changed the direct dragging of a segment a bit, so that close to one
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-04 11:54:55 +00:00
70088acbcd app/vectors/gimpstroke.c Two small hacks to make the editing behave more
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-03 21:35:24 +00:00
f09f3657d4 Introduced function to compare two gimpcoords
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 00:39:47 +00:00
3ef7043437 fixed it to create proper strokes...
2003-09-01  Simon Budig  <simon@gimp.org>

	* vectors/gimpbezierstroke.c: fixed it to create proper strokes...
2003-08-31 23:22:16 +00:00
cf35e23578 use the new bezier stroke API.
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-31 22:33:50 +00:00
835d7ab7f7 Implemented moveto/lineto/ conicto/curveto-Interface. Moved helper
2003-08-31  Simon Budig  <simon@gimp.org>

	* app/vectors/gimpbezierstroke.[ch]: Implemented moveto/lineto/
	conicto/curveto-Interface.
	Moved helper functions to calculate with GimpCoords into...

	* app/vectors/gimpcoordmath.[ch]: ...these new files.

	* app/vectors/Makefile.am: Changed accordingly.
2003-08-31 21:47:26 +00:00
e7d0cfadc7 Do not modify the selection state of the anchors. When extending
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-29 15:17:06 +00:00
f4b390a4f4 app/core/gimpimage-mask-select.c Fixed two crashes when a path with a
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-28 16:53:09 +00:00
08bd7a19b9 app/vectors/gimpstroke.[ch] Implemented function to connect two strokes.
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-27 00:31:20 +00:00
47571782a7 Intruduce casting macro GIMP_ANCHOR.
2003-08-26  Simon Budig  <simon@gimp.org>

	* app/vectors/gimpanchor.h: Intruduce casting macro GIMP_ANCHOR.

	* app/tools/gimpvectortool.c
	* app/vectors/gimpstroke.c
	* app/vectors/gimpbezierstroke.c
	* app/vectors/gimpvectors-compat.c: Use it for code readibility.
2003-08-26 14:29:10 +00:00
4571b6b5bd Minor code cleanup that automagically makes SHIFT while curve-dragging
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 08:59:30 +00:00
009766a881 app/vectors/gimpstroke.[ch] Implemented direct moving of the curve. Whee!
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-26 00:27:03 +00:00
14d0ec8b2c app/tools/gimpvectortool.c OK, now valgrind is happy.
2003-08-22  Simon Budig  <simon@gimp.org>

	* app/tools/gimpvectortool.c
	* app/vectors/gimpbezierstroke.c: OK, now valgrind is happy.
2003-08-22 15:20:13 +00:00
9d31a9db10 fixed crash when deleting the last segment of a closed curve.
2003-08-22  Simon Budig  <simon@gimp.org>

	* app/vectors/gimpbezierstroke.c: fixed crash when deleting
	the last segment of a closed curve.
2003-08-22 09:55:56 +00:00
32499a849d app/vectors/gimpstroke.[ch] added gimp_(bezier_)stroke_open that opens up
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-22 01:12:26 +00:00
044ea72c69 added _is_empty () that checks if a stroke is empty.
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-21 17:47:12 +00:00
52a16ff5a4 Add hooks for insertion of points (and testing if insertion is possible)
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-20 17:29:13 +00:00
5ccd61bcb5 app/vectors/gimpvectors.h removed temp_anchor stuff. I don't think that
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-19 01:05:48 +00:00
86e4d32a44 app/vectors/gimpstroke.[ch] Virtualized gimp_bezier_stroke_extend, added
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-17 02:49:24 +00:00
10cb43d2fb implemented gimp_stroke_close.
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-08-03 01:26:05 +00:00
7c4d375aa9 app/vectors/Makefile.am added a simple GimpAnchor API.
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-07-17 18:06:32 +00:00
e78601452c app/gui/edit-commands.c added "Fill with Pattern" menu entry as suggested
2003-07-02  Sven Neumann  <sven@gimp.org>

	* app/gui/edit-commands.c
	* app/gui/image-menu.c: added "Fill with Pattern" menu entry as
	suggested in bug #116365.

	* app/base/temp-buf.c
	* app/base/tile-swap.c
	* app/config/gimpbaseconfig.c
	* app/config/gimpconfig-types.c
	* app/display/gimpdisplayshell-filter-dialog.c
	* app/display/gimpdisplayshell.c
	* app/file/file-utils.c
	* app/paint-funcs/paint-funcs-types.h
	* app/tools/gimpdrawtool.c
	* app/tools/gimpinktool.c
	* app/tools/gimpiscissorstool.h
	* app/tools/gimptextoptions.c
	* app/paint-funcs/paint-funcs-types.h
	* app/vectors/gimpbezierstroke.c
	* app/vectors/gimpstroke.c
	* app/vectors/gimpvectors.c
	* app/vectors/vectors-types.h
	* libgimp/gimpbrushmenu.c
	* libgimp/gimpmisc.h
	* libgimpmodule/gimpmodule.c: fixed some minor issues found
	compiling with -pedantic.

	* app/pdb/misc_tools_cmds.c
	* tools/pdbgen/pdb/misc_tools.pdb: adapt to the changed order of
	arguments for gimp_image_pick_color().
2003-07-02 18:01:19 +00:00
1a80262e7e rewrote gimp_bezier_stroke_extend for the case when the neighbor is not
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-26 09:54:56 +00:00
ca50643729 If an control handle gets converted to an edge simply move it to its next
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-06-24 23:11:13 +00:00
0174bb6d6a Implemented closed paths. Not yet available in a sane manner via the UI.
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 23:08:01 +00:00
146a51c55f changed to expect all points (also the first one) in "H, A, H" order.
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-18 16:36:10 +00:00
0c67310555 app/vectors/gimpbezierstroke.[ch] app/vectors/gimpstroke.[ch]
2003-05-16  Michael Natterer  <mitch@gimp.org>

	* app/vectors/gimpbezierstroke.[ch]
	* app/vectors/gimpstroke.[ch]
	* app/vectors/gimpvectors-preview.c
	* app/vectors/gimpvectors.[ch]: massive cleanup / code review:
	Made default implementations real ones. Don't add "const" to
	call-by-value parameters. Iterate lists using for() loops. Moved
	variables to local scopes. Removed tabs. Indentation. Stuff...

	* app/vectors/gimpstroke.[ch]: added unused "gboolean closed"
	member.
2003-05-16 16:49:04 +00:00
c1eddd4fbc actually increment the coord index when iterating the coords array. Fixes
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-05-15 12:28:57 +00:00
6a29d4773e app/tools/gimpvectortool.[ch] app/vectors/gimpbezierstroke.c
2003-03-29  Simon Budig  <simon@gimp.org>

        * app/tools/gimpvectortool.[ch]
        * app/vectors/gimpbezierstroke.c
        * app/vectors/gimpstroke.[ch]
        * app/vectors/vectors-types.h: More vector tool stuff. Control
        handles start to behave...
2003-03-29 04:47:44 +00:00
aac6a44ff0 app/tools/gimpvectortool.[ch] Fixed crashes and weird problems when the
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.
2003-03-19 23:51:43 +00:00
62b61811b3 New Type: GimpVectorExtendMode
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-31 03:18:49 +00:00
b7e1bb247b app/vectors/gimpanchor.h Anchors now have an enum as type and have the
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-30 16:36:01 +00:00
d3e9fc6405 app/core/gimpimage-mask-select.c app/paint/gimppaintcore-stroke.c
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.
2002-12-28 23:52:29 +00:00
6a55799603 untested and unused stuff for the interpolation of bezier curves. More to
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-12-28 01:48:08 +00:00
8e64f969a2 fixed the default spacing, so that lines actually look like 1 pixel
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-09-30 00:06:30 +00:00
7f706974e8 app/tools/gimpdrawtool.c Added function gimp_draw_tool_draw_strokes to be
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-26 00:58:04 +00:00
7112b2068f app/vectors/gimpbezierstroke.c app/tools/gimpvectortool.[ch]
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 16:57:19 +00:00
619c9a947c app/vectors/Makefile.am new files creating dummy vectors previews.
2002-02-25  Michael Natterer  <mitch@gimp.org>

	* app/vectors/Makefile.am
	* app/vectors/gimpvectors-preview.[ch]: new files creating dummy
	vectors previews.

	* app/vectors/gimpvectors.[ch]: added a "gimage" pointer.

	* app/vectors/gimpbezierstroke.c
	* app/vectors/gimpstroke.c: some object stuff fixes.
2002-02-25 13:39:34 +00:00
29b8063356 app/vectors/gimpvectors.c Changed to a container of GimpStrokes. This will
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.
2002-02-25 03:16:41 +00:00