[gimp/soc-2013-n-point-deformation-tool: 7/23] app: npd-tool: add option to show mesh
- From: Marek Dvoroznak <dvoromar src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp/soc-2013-n-point-deformation-tool: 7/23] app: npd-tool: add option to show mesh
- Date: Mon, 2 Dec 2013 23:59:09 +0000 (UTC)
commit 1ef0572d252e8e6bf919973e2e08ad752f6fc3af
Author: Marek Dvoroznak <dvoromar gmail com>
Date: Sun Aug 18 20:43:01 2013 +0200
app: npd-tool: add option to show mesh
app/tools/gimpnpointdeformationoptions.c | 21 ++++++++++++++++++---
app/tools/gimpnpointdeformationoptions.h | 1 +
app/tools/gimpnpointdeformationtool.c | 10 +++++++---
app/tools/gimpnpointdeformationtool.h | 2 ++
4 files changed, 28 insertions(+), 6 deletions(-)
---
diff --git a/app/tools/gimpnpointdeformationoptions.c b/app/tools/gimpnpointdeformationoptions.c
index 05c87b8..407e162 100644
--- a/app/tools/gimpnpointdeformationoptions.c
+++ b/app/tools/gimpnpointdeformationoptions.c
@@ -42,7 +42,8 @@ enum
PROP_RIGIDITY,
PROP_ASAP_DEFORMATION,
PROP_MLS_WEIGHTS,
- PROP_MLS_WEIGHTS_ALPHA
+ PROP_MLS_WEIGHTS_ALPHA,
+ PROP_MESH_VISIBLE
};
@@ -94,6 +95,11 @@ gimp_n_point_deformation_options_class_init (GimpNPointDeformationOptionsClass *
"MLS-weights-alpha", _("MLS Weights Alpha"),
0.1, 2.0, 1.0,
GIMP_PARAM_STATIC_STRINGS);
+
+ GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_MESH_VISIBLE,
+ "mesh-visible", _("Mesh Visible"),
+ TRUE,
+ GIMP_PARAM_STATIC_STRINGS);
}
static void
@@ -126,6 +132,9 @@ gimp_n_point_deformation_options_set_property (GObject *object,
case PROP_MLS_WEIGHTS_ALPHA:
options->square_size = g_value_get_double (value);
break;
+ case PROP_MESH_VISIBLE:
+ options->mesh_visible = g_value_get_boolean (value);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
@@ -157,6 +166,9 @@ gimp_n_point_deformation_options_get_property (GObject *object,
case PROP_MLS_WEIGHTS_ALPHA:
g_value_set_double (value, options->square_size);
break;
+ case PROP_MESH_VISIBLE:
+ g_value_set_boolean (value, options->mesh_visible);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
@@ -168,8 +180,11 @@ gimp_n_point_deformation_options_gui (GimpToolOptions *tool_options)
{
GObject *config = G_OBJECT (tool_options);
GtkWidget *vbox = gimp_tool_options_gui (tool_options);
- GtkWidget *combo;
- GtkWidget *scale;
+ GtkWidget *combo, *scale, *check;
+
+ check = gimp_prop_check_button_new (config, "mesh-visible", _("Show Mesh"));
+ gtk_box_pack_start (GTK_BOX (vbox), check, FALSE, FALSE, 0);
+ gtk_widget_show (check);
scale = gimp_prop_spin_scale_new (config, "square-size", _("Square Size"), 1.0, 10.0, 0);
gimp_spin_scale_set_scale_limits (GIMP_SPIN_SCALE (scale), 5.0, 1000.0);
diff --git a/app/tools/gimpnpointdeformationoptions.h b/app/tools/gimpnpointdeformationoptions.h
index 3b6b668..a539b20 100644
--- a/app/tools/gimpnpointdeformationoptions.h
+++ b/app/tools/gimpnpointdeformationoptions.h
@@ -44,6 +44,7 @@ struct _GimpNPointDeformationOptions
gboolean ASAP_deformation;
gboolean MLS_weights;
gdouble MLS_weights_alpha;
+ gboolean mesh_visible;
};
struct _GimpNPointDeformationOptionsClass
diff --git a/app/tools/gimpnpointdeformationtool.c b/app/tools/gimpnpointdeformationtool.c
index fe31d7a..ebbd31d 100644
--- a/app/tools/gimpnpointdeformationtool.c
+++ b/app/tools/gimpnpointdeformationtool.c
@@ -216,6 +216,7 @@ gimp_n_point_deformation_tool_start (GimpNPointDeformationTool *npd_tool,
gimp_tool_control (tool, GIMP_TOOL_ACTION_HALT, display);
tool->display = display;
+ npd_tool->display = display;
gimp_draw_tool_start (draw_tool, display);
npd_tool->active = TRUE;
@@ -243,9 +244,9 @@ gimp_n_point_deformation_tool_start (GimpNPointDeformationTool *npd_tool,
GIMP_N_POINT_DEFORMATION_TOOL_GET_OPTIONS (npd_tool));
gegl_node_process (sink);
-
+
gegl_node_get (node, "model", &model, NULL);
-
+
npd_tool->buf = buf;
npd_tool->drawable = drawable;
npd_tool->graph = graph;
@@ -262,13 +263,15 @@ gimp_n_point_deformation_tool_halt (GimpNPointDeformationTool *npd_tool)
{
GimpTool *tool = GIMP_TOOL (npd_tool);
GimpDrawTool *draw_tool = GIMP_DRAW_TOOL (npd_tool);
+
+ npd_tool->active = FALSE;
if (gimp_draw_tool_is_active (draw_tool))
gimp_draw_tool_stop (draw_tool);
if (gimp_tool_control_is_active (tool->control))
gimp_tool_control_halt (tool->control);
-
+
tool->display = NULL;
}
@@ -282,6 +285,7 @@ gimp_n_point_deformation_tool_set_options (GeglNode *npd_nod
"ASAP deformation", npd_options->ASAP_deformation,
"MLS weights", npd_options->MLS_weights,
"MLS weights alpha", npd_options->MLS_weights_alpha,
+ "mesh visible", npd_options->mesh_visible,
NULL);
}
diff --git a/app/tools/gimpnpointdeformationtool.h b/app/tools/gimpnpointdeformationtool.h
index 8af9b76..f8b8bfc 100644
--- a/app/tools/gimpnpointdeformationtool.h
+++ b/app/tools/gimpnpointdeformationtool.h
@@ -42,6 +42,8 @@ struct _GimpNPointDeformationTool
{
GimpDrawTool parent_instance;
+ GimpDisplay *display;
+
GeglNode *graph;
GeglNode *source;
GeglNode *node;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]