Fixed #10466 (disappearing pixels when rotating by 90 deg):
2002-02-19 Michael Natterer <mitch@gimp.org> Fixed #10466 (disappearing pixels when rotating by 90 deg): * app/core/gimpdrawable-transform.c: when transforming backwards to find the destination line's sub-pixel source coordinates, we need to transform the pixels _center_, not it's upper left corner. * app/core/gimpdrawable-transform-utils.[ch]: added gimp_drawable_transform_matrix_rotate_center() which takes double center coordinates instead of an integer pixel bounding box. * app/tools/gimptransformtool.[ch]: use double instead of int for all coordinates except the original bounding box. * app/tools/gimprotatetool.c: use double whenever touching the "center" value, so it can be sub-pixel positioned.
This commit is contained in:
committed by
Michael Natterer
parent
f17c891b3b
commit
8d0af04c3a
@ -20,41 +20,45 @@
|
||||
#define __GIMP_DRAWABLE_TRANSFORM_UTILS_H__
|
||||
|
||||
|
||||
void gimp_drawable_transform_matrix_rotate (gint x1,
|
||||
gint y1,
|
||||
gint x2,
|
||||
gint y2,
|
||||
gdouble angle,
|
||||
GimpMatrix3 result);
|
||||
void gimp_drawable_transform_matrix_scale (gint x1,
|
||||
gint y1,
|
||||
gint x2,
|
||||
gint y2,
|
||||
gdouble tx1,
|
||||
gdouble ty1,
|
||||
gdouble tx2,
|
||||
gdouble ty2,
|
||||
GimpMatrix3 result);
|
||||
void gimp_drawable_transform_matrix_shear (gint x1,
|
||||
gint y1,
|
||||
gint x2,
|
||||
gint y2,
|
||||
InternalOrientationType orientation,
|
||||
gdouble amount,
|
||||
GimpMatrix3 result);
|
||||
void gimp_drawable_transform_matrix_perspective (gint x1,
|
||||
gint y1,
|
||||
gint x2,
|
||||
gint y2,
|
||||
gdouble tx1,
|
||||
gdouble ty1,
|
||||
gdouble tx2,
|
||||
gdouble ty2,
|
||||
gdouble tx3,
|
||||
gdouble ty3,
|
||||
gdouble tx4,
|
||||
gdouble ty5,
|
||||
GimpMatrix3 result);
|
||||
void gimp_drawable_transform_matrix_rotate (gint x1,
|
||||
gint y1,
|
||||
gint x2,
|
||||
gint y2,
|
||||
gdouble angle,
|
||||
GimpMatrix3 result);
|
||||
void gimp_drawable_transform_matrix_rotate_center (gdouble cx,
|
||||
gdouble cy,
|
||||
gdouble angle,
|
||||
GimpMatrix3 result);
|
||||
void gimp_drawable_transform_matrix_scale (gint x1,
|
||||
gint y1,
|
||||
gint x2,
|
||||
gint y2,
|
||||
gdouble tx1,
|
||||
gdouble ty1,
|
||||
gdouble tx2,
|
||||
gdouble ty2,
|
||||
GimpMatrix3 result);
|
||||
void gimp_drawable_transform_matrix_shear (gint x1,
|
||||
gint y1,
|
||||
gint x2,
|
||||
gint y2,
|
||||
InternalOrientationType orientation,
|
||||
gdouble amount,
|
||||
GimpMatrix3 result);
|
||||
void gimp_drawable_transform_matrix_perspective (gint x1,
|
||||
gint y1,
|
||||
gint x2,
|
||||
gint y2,
|
||||
gdouble tx1,
|
||||
gdouble ty1,
|
||||
gdouble tx2,
|
||||
gdouble ty2,
|
||||
gdouble tx3,
|
||||
gdouble ty3,
|
||||
gdouble tx4,
|
||||
gdouble ty5,
|
||||
GimpMatrix3 result);
|
||||
|
||||
|
||||
#endif /* __GIMP_DRAWABLE_TRANSFORM_SHEAR_H__ */
|
||||
|
||||
Reference in New Issue
Block a user