Commit graph

30 commits

Author SHA1 Message Date
Ell
0103fe2c19 app: silence warning in gimp_transform_resize_crop()
The crop-to-result and crop-with-aspect transform-boundary
algorithms seem to consistently fail in some cases, and spit out a
warning, which can be too verbose if it triggers the debug dialog.

Demote the warning to a g_printerr(), with an eye to just dropping
these algorithms altogether.
2020-01-17 00:29:42 +02:00
Ell
7b2e6b7595 app: clip transform-tools preview according to clipping mode
Add a "clip" property to GimpCanvasTransformPreview, specifying the
transform's clipping mode, and clip the preview accordingly.

In GimpTransformGridTool, sync the tool's clipping mode with the
preview's clipping mode.
2020-01-11 17:13:07 +02:00
Michael Natterer
4dfcffe4f7 Remove all checks for finite() and isfinite()
and simply use isfinite() everywhere, it's part of C99.
2020-01-05 16:36:18 +01:00
Alex Samorukov
2cb0493b2f Replace finite() with isfinite() by default
This is part of the C standard also also causing warning on macOS.

(cherry picked from commit 04997fc0ae)
2019-11-07 10:13:59 +01:00
Oleksii Samorukov
00106b1d45 Revert finite() fix as it needs to be done in pdb and configure
(cherry picked from commit 4cd23c64e9)
2019-11-06 21:22:17 +01:00
Oleksii Samorukov
669b4e92fc Fix "finite() is depricated" warning on macOS
(cherry picked from commit aff49550ee)
2019-11-06 17:07:32 +01:00
Ell
c271992aa0 Issue #2405 - Rotation center shifts by half a pixel ...
... the second time you do a 180 degrees rotation

In gimp_transform_resize_adjust(), nudge the transformed layer
boundary by EPSILON toward the center, to avoid enlarging the layer
unnecessarily, as a result of numeric error amplified by rounding,
when the tranformed boundary should land on integer coordinates.
In particular, this avoids enlarging the layer when rotating by 180
degrees.
2018-10-27 00:14:47 -04:00
Michael Natterer
5f700549e7 Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
Michael Natterer
04b4bccbb3 app: #include <string.h> in gimp-transform-resize.c 2018-01-28 22:58:26 +01:00
Ell
3c0787e4c3 app: use gimp_transform_polygon() in gimp_transform_resize_boundary()
... so that the transformed boundary is properly clipped.

Adjust the boundary-size algorithms to operate on arbitrary
polygons.

Avoid using gimp_matrix3_will_explode() in
gimp_drawable_transform_buffer_affine() and falling back to
cropping the result, and avoid setting the "clip-to-input" property
of gegl:transform.  Neither of those in needed anymore.

This effectively reverts the app/ part of commit
768d06614f.  The next commit revets
the libgimpmath/ part.
2018-01-28 16:37:34 -05:00
Michael Natterer
2b1735f784 app: move gimp_file_compare() to gimp-utils.[ch]
It's a GCompareFunc to be used for finding GFiles in lists.
2014-08-02 15:07:26 +02:00
Michael Natterer
5a7b7d9a4b app: add gimp_gegl_buffer_get_tile_manager()
and ust it in some get_memsize() functions instead of having a
FIXME. So many files changed because they need to inlcude <gegl.h>
now.
2012-05-02 17:46:07 +02:00
Mikael Magnusson
5c19c75f71 app: fix typo in error message 2012-02-16 11:25:23 +01:00
Massimo Valentini
834225803a Bug 662219 Rotate does not rotate; the image is ...
gone except for a small rectangle

atan2 returns an angle between -pi, pi. Here it is needed
between 0, 2pi. Simpler to invert both axes.
2011-11-02 17:55:57 +01:00
Mukund Sivaraman
e922a7bfda app: Update Jarvis march implementation
The output of transforms can result in the transformed points being
passed out of order to gimp_transform_resize_crop().  The Jarvis march
method is used to find the convex hull of the points to get them in a
known order, before performing the crop operation.

Static analysis found a bug in the Jarvis march algorithm, but when we
looked at the code, we could no longer follow it. So a slightly
rewritten version is committed here without the static analysis bug.
2011-10-10 09:19:49 +05:30
Michael Natterer
ea27c7bc83 app: add the MIN4() and MAX4() macros to gimp-utils.h
instead of having them in 5 .c files.
2011-06-04 17:16:21 +02:00
Martin Nordholts
5ad570e3cc Fix compilation errors
Fix compilation errors with obvious fixes.
2009-07-20 12:48:05 +02:00
Sven Neumann
ed748fd383 Bug 472644 – Rotate with clipping crops the whole layer
Applied patch from Andreas Neustifter fixing outstanding issues.
2009-05-21 14:42:48 +02:00
Sven Neumann
be83d34498 Bug 472644 – Rotate with clipping crops the whole layer
2009-02-14  Sven Neumann  <sven@gimp.org>

	Bug 472644 – Rotate with clipping crops the whole layer

	* app/core/gimp-transform-resize.c: applied patch as attached to
	bug #472644. Supposedly fixes the problem of the disappearing
	image.


svn path=/trunk/; revision=28029
2009-02-14 12:48:12 +00:00
Michael Natterer
d9b5207aa2 Change licence to GPLv3 (and to LGPLv3 for libgimp).
2009-01-17  Michael Natterer  <mitch@gimp.org>

	* all files with a GPL header and all COPYING files:

	Change licence to GPLv3 (and to LGPLv3 for libgimp).

	Cleaned up some copyright headers and regenerated the parsers in
	the ImageMap plugin.


svn path=/trunk/; revision=27913
2009-01-17 22:28:01 +00:00
Michael Natterer
02012a2457 move variable to local scope.
2007-10-23  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpdrawable-combine.c: move variable to local scope.

	* app/core/gimp-transform-resize.c: formatting.


svn path=/trunk/; revision=23928
2007-10-23 21:27:19 +00:00
Michael Natterer
5b1fa26d00 remove unbalanced "*/"
2007-09-04  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpparamspecs.c: remove unbalanced "*/"

	* app/core/gimpdrawable-transform.c
	* app/core/gimp-transform-resize.c: formatting.


svn path=/trunk/; revision=23463
2007-09-04 09:38:55 +00:00
Sven Neumann
7aa01e3120 applied patch from Geert Jordaens that reimplements the algorithm to
2007-06-25  Sven Neumann  <sven@gimp.org>

	* app/core/gimp-transform-resize.c: applied patch from Geert
	Jordaens that reimplements the algorithm to determine the largest
	rectangle. Fixes bug #412473.

svn path=/trunk/; revision=22834
2007-06-25 15:36:53 +00:00
Michael Natterer
b60fbd3324 even more whitespace cleanup.
2007-02-28  Michael Natterer  <mitch@gimp.org>

	* app/core/gimp-transform-resize.c: even more whitespace cleanup.


svn path=/trunk/; revision=22023
2007-02-28 11:17:29 +00:00
Sven Neumann
a75dc8a046 removed trailing whitespace.
2007-02-28  Sven Neumann  <sven@gimp.org>

	* app/core/gimp-transform-resize.c: removed trailing whitespace.


svn path=/trunk/; revision=22022
2007-02-28 09:14:40 +00:00
Mukund Sivaraman
f0cff0ff92 app/core/Makefile.am app/core/gimp-transform-resize.c
2006-12-24  Mukund Sivaraman  <muks@mukund.org>

        * app/core/Makefile.am
        * app/core/gimp-transform-resize.c
        * app/core/gimpchannel.c
        * app/core/gimpdrawable-transform.c
        * app/core/gimpdrawable-transform.h
        * app/core/gimpdrawable.c
        * app/core/gimpimage-item-list.c
        * app/core/gimpimage-item-list.h
        * app/core/gimpitem-linked.c
        * app/core/gimpitem-linked.h
        * app/core/gimpitem.c
        * app/core/gimpitem.h
        * app/core/gimplayer.c
        * app/pdb/drawable_transform_cmds.c
        * app/text/gimptextlayer-transform.c
        * app/text/gimptextlayer-transform.h
        * app/tools/gimptransformoptions.c
        * app/tools/gimptransformtool.c
        * app/vectors/gimpvectors.c
        * libgimp/gimpdrawabletransform_pdb.c
        * libgimp/gimpdrawabletransform_pdb.h
        * libgimp/gimpenums.c.tail
        * libgimpbase/gimpbase.def
        * libgimpbase/gimpbaseenums.c
        * libgimpbase/gimpbaseenums.h
        * tools/pdbgen/enums.pl
        * tools/pdbgen/pdb/drawable_transform.pdb: implemented UI and PDB
        for new clipping modes for affine transforms (crop to largest
        rectangle, and crop to largest rectangle with the source's aspect
        ratio); fixed various bugs in the largest rectangle computation
        code; set padding to 6 in the transformation tool options.
2006-12-24 16:48:08 +00:00
Mukund Sivaraman
ef51d1b89f Fixed code in gimp_transform_resize_crop() to calculate the maximum
2006-12-16  Mukund Sivaraman  <muks@mukund.org>

        * app/core/gimp-transform-resize.c: Fixed code in
        gimp_transform_resize_crop() to calculate the maximum rectangle in
        the quadrilateral which results after a transform; added a function
        parameter for aspect ratio too.
2006-12-16 15:19:47 +00:00
Sven Neumann
41237259c9 In all files, changed the standard copyright notice to say "GIMP - The GNU
2006-12-09  Sven Neumann  <sven@gimp.org>

        * In all files, changed the standard copyright notice to say
        "GIMP - The GNU Image Manipulation Program".
2006-12-09 21:33:38 +00:00
Sven Neumann
697142c2f2 added missing brackets in macros.
2005-06-13  Sven Neumann  <sven@gimp.org>

	* app/core/gimp-transform-resize.c: added missing brackets in macros.
2005-06-12 22:20:47 +00:00
Sven Neumann
bbc1c947ad added more properties.
2005-05-26  Sven Neumann  <sven@gimp.org>

	* app/core/gimpdata.c: added more properties.
2005-05-25 23:47:42 +00:00