app, icons: add 3D Transform tool
Add a new 3D Transform tool, based on GimpToolTransform3DGrid,
added in the previous commit. The tool UI provides a notbook with
three tabs, corresponding to the three GimpToolTransform3DGrid
modes:
Camera - allows setting the primary vanishing point, as well as
the camera's focal length, expressed either directly, or as the
camera's angle of view, relative to the whole image or the
transformed item. By default, the vanishing point is aligned
with the item's center, and the angle of view is fixed relative
to the item; this essentially means that each item is transformed
using a local perspective, independent of its position and size
relative to the image. A global perspective can be achieved by
using a common vanishing point and focal length (or an image-
relative angle of view).
Move - allows moving the item using X, Y, and Z offsets.
Rotate - allows rotating the item using X, Y, and Z Euler angles.
The order of rotation of the different axes can be controlled by
a set of numbered buttons next to the sliders, and the rotation's
pivot can be controlled using a pivot selector.
2020-01-06 23:31:30 +08:00
|
|
|
/* GIMP - The GNU Image Manipulation Program
|
|
|
|
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
|
|
|
|
*
|
|
|
|
* This program is free software: you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU General Public License as published by
|
|
|
|
* the Free Software Foundation; either version 3 of the License, or
|
|
|
|
* (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
|
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef __GIMP_TRANSFORM_3D_OPTIONS_H__
|
|
|
|
#define __GIMP_TRANSFORM_3D_OPTIONS_H__
|
|
|
|
|
|
|
|
|
|
|
|
#include "gimptransformgridoptions.h"
|
|
|
|
|
|
|
|
|
|
|
|
#define GIMP_TYPE_TRANSFORM_3D_OPTIONS (gimp_transform_3d_options_get_type ())
|
|
|
|
#define GIMP_TRANSFORM_3D_OPTIONS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GIMP_TYPE_TRANSFORM_3D_OPTIONS, GimpTransform3DOptions))
|
|
|
|
#define GIMP_TRANSFORM_3D_OPTIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GIMP_TYPE_TRANSFORM_3D_OPTIONS, GimpTransform3DOptionsClass))
|
|
|
|
#define GIMP_IS_TRANSFORM_3D_OPTIONS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GIMP_TYPE_TRANSFORM_3D_OPTIONS))
|
|
|
|
#define GIMP_IS_TRANSFORM_3D_OPTIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GIMP_TYPE_TRANSFORM_3D_OPTIONS))
|
|
|
|
#define GIMP_TRANSFORM_3D_OPTIONS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GIMP_TYPE_TRANSFORM_3D_OPTIONS, GimpTransform3DOptionsClass))
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct _GimpTransform3DOptions GimpTransform3DOptions;
|
|
|
|
typedef struct _GimpTransform3DOptionsClass GimpTransform3DOptionsClass;
|
|
|
|
|
|
|
|
struct _GimpTransform3DOptions
|
|
|
|
{
|
|
|
|
GimpTransformGridOptions parent_instance;
|
|
|
|
|
|
|
|
GimpTransform3DMode mode;
|
2020-01-11 05:10:47 +08:00
|
|
|
gboolean unified;
|
|
|
|
|
app, icons: add 3D Transform tool
Add a new 3D Transform tool, based on GimpToolTransform3DGrid,
added in the previous commit. The tool UI provides a notbook with
three tabs, corresponding to the three GimpToolTransform3DGrid
modes:
Camera - allows setting the primary vanishing point, as well as
the camera's focal length, expressed either directly, or as the
camera's angle of view, relative to the whole image or the
transformed item. By default, the vanishing point is aligned
with the item's center, and the angle of view is fixed relative
to the item; this essentially means that each item is transformed
using a local perspective, independent of its position and size
relative to the image. A global perspective can be achieved by
using a common vanishing point and focal length (or an image-
relative angle of view).
Move - allows moving the item using X, Y, and Z offsets.
Rotate - allows rotating the item using X, Y, and Z Euler angles.
The order of rotation of the different axes can be controlled by
a set of numbered buttons next to the sliders, and the rotation's
pivot can be controlled using a pivot selector.
2020-01-06 23:31:30 +08:00
|
|
|
gboolean constrain_axis;
|
|
|
|
gboolean z_axis;
|
|
|
|
gboolean local_frame;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct _GimpTransform3DOptionsClass
|
|
|
|
{
|
|
|
|
GimpTransformGridOptionsClass parent_class;
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
GType gimp_transform_3d_options_get_type (void) G_GNUC_CONST;
|
|
|
|
|
|
|
|
GtkWidget * gimp_transform_3d_options_gui (GimpToolOptions *tool_options);
|
|
|
|
|
|
|
|
|
|
|
|
#endif /* __GIMP_TRANSFORM_3D_OPTIONS_H__ */
|