[Bf-blender-cvs] [c7414140a42] hair_guides: Sub-mode for groom editing, for editing different parts of the topology.
Lukas Tönne
noreply at git.blender.org
Fri Dec 22 16:38:09 CET 2017
Commit: c7414140a425bd92fc9d37e6aea63d8237bf16e9
Author: Lukas Tönne
Date: Fri Dec 22 14:41:41 2017 +0000
Branches: hair_guides
https://developer.blender.org/rBc7414140a425bd92fc9d37e6aea63d8237bf16e9
Sub-mode for groom editing, for editing different parts of the topology.
===================================================================
M release/scripts/startup/bl_ui/space_view3d.py
M source/blender/editors/groom/editgroom_region.c
M source/blender/makesdna/DNA_scene_types.h
M source/blender/makesrna/intern/rna_scene.c
M source/blender/makesrna/intern/rna_sculpt_paint.c
===================================================================
diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py
index e84301dc3bd..3ff35551776 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -50,7 +50,9 @@ class VIEW3D_HT_header(Header):
if obj:
mode = obj.mode
# Particle edit
- if mode == 'PARTICLE_EDIT':
+ if mode == 'EDIT' and obj.type == 'GROOM':
+ row.prop(toolsettings.groom_edit_settings, "mode", text="", expand=True)
+ elif mode == 'PARTICLE_EDIT':
row.prop(toolsettings.particle_edit, "select_mode", text="", expand=True)
# Occlude geometry
diff --git a/source/blender/editors/groom/editgroom_region.c b/source/blender/editors/groom/editgroom_region.c
index 9ce1aa01fe6..eeded7427a6 100644
--- a/source/blender/editors/groom/editgroom_region.c
+++ b/source/blender/editors/groom/editgroom_region.c
@@ -25,7 +25,7 @@
* ***** END GPL LICENSE BLOCK *****
*/
-/** \file blender/editors/curve/editgroom_region.c
+/** \file blender/editors/groom/editgroom_region.c
* \ingroup edgroom
*/
diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h
index 065ee801b84..ff1e1a22133 100644
--- a/source/blender/makesdna/DNA_scene_types.h
+++ b/source/blender/makesdna/DNA_scene_types.h
@@ -1080,6 +1080,22 @@ typedef struct ParticleEditSettings {
struct Object *shape_object;
} ParticleEditSettings;
+/* ------------------------------------------- */
+/* Groom Edit */
+
+/* GroomEditSettings.mode */
+typedef enum GroomEditMode {
+ GM_EDIT_MODE_REGIONS,
+ GM_EDIT_MODE_CURVES,
+ GM_EDIT_MODE_SECTIONS,
+} GroomEditMode;
+
+/* Groom Edit Mode Settings */
+typedef struct GroomEditSettings {
+ int mode;
+ int pad;
+} GroomEditSettings;
+
/* ------------------------------------------- */
/* Sculpt */
@@ -1469,7 +1485,10 @@ typedef struct ToolSettings {
/* Particle Editing */
struct ParticleEditSettings particle;
-
+
+ /* Groom Editing */
+ struct GroomEditSettings groom_edit_settings;
+
/* Transform Proportional Area of Effect */
float proportional_size;
diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c
index 785f805a33e..4f7dc35c2c1 100644
--- a/source/blender/makesrna/intern/rna_scene.c
+++ b/source/blender/makesrna/intern/rna_scene.c
@@ -2446,6 +2446,10 @@ static void rna_def_tool_settings(BlenderRNA *brna)
RNA_def_property_pointer_sdna(prop, NULL, "particle");
RNA_def_property_ui_text(prop, "Particle Edit", "");
+ prop = RNA_def_property(srna, "groom_edit_settings", PROP_POINTER, PROP_NONE);
+ RNA_def_property_struct_type(prop, "GroomEditSettings");
+ RNA_def_property_ui_text(prop, "Groom Edit Settings", "");
+
prop = RNA_def_property(srna, "use_uv_sculpt", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "use_uv_sculpt", 1);
RNA_def_property_ui_text(prop, "UV Sculpt", "Enable brush for UV sculpting");
diff --git a/source/blender/makesrna/intern/rna_sculpt_paint.c b/source/blender/makesrna/intern/rna_sculpt_paint.c
index ddcf525c3c8..ed7d09cb095 100644
--- a/source/blender/makesrna/intern/rna_sculpt_paint.c
+++ b/source/blender/makesrna/intern/rna_sculpt_paint.c
@@ -241,6 +241,22 @@ static char *rna_ParticleEdit_path(PointerRNA *UNUSED(ptr))
return BLI_strdup("tool_settings.particle_edit");
}
+static char *rna_GroomEditSettings_path(PointerRNA *UNUSED(ptr))
+{
+ return BLI_strdup("tool_settings.groom_edit_settings");
+}
+
+static void rna_GroomEditSettings_update(bContext *C, PointerRNA *UNUSED(ptr))
+{
+ ViewLayer *view_layer = CTX_data_view_layer(C);
+ Object *ob = OBACT(view_layer);
+
+ if (ob)
+ {
+ DEG_id_tag_update(&ob->id, OB_RECALC_DATA);
+ }
+}
+
static int rna_Brush_mode_poll(PointerRNA *ptr, PointerRNA value)
{
Scene *scene = (Scene *)ptr->id.data;
@@ -1028,6 +1044,29 @@ static void rna_def_particle_edit(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Curve", "");
}
+static void rna_def_groom_edit_settings(BlenderRNA *brna)
+{
+ StructRNA *srna;
+ PropertyRNA *prop;
+
+ static const EnumPropertyItem mode_items[] = {
+ {GM_EDIT_MODE_REGIONS, "REGIONS", ICON_NONE, "Regions", "Region edit mode"},
+ {GM_EDIT_MODE_CURVES, "CURVES", ICON_NONE, "Curves", "Curve edit mode"},
+ {GM_EDIT_MODE_SECTIONS, "SECTIONS", ICON_NONE, "Sections", "Section edit mode"},
+ {0, NULL, 0, NULL, NULL}
+ };
+
+ srna = RNA_def_struct(brna, "GroomEditSettings", NULL);
+ RNA_def_struct_path_func(srna, "rna_GroomEditSettings_path");
+ RNA_def_struct_ui_text(srna, "Groom Edit", "Properties of groom editing mode");
+
+ prop = RNA_def_property(srna, "mode", PROP_ENUM, PROP_NONE);
+ RNA_def_property_enum_items(prop, mode_items);
+ RNA_def_property_ui_text(prop, "Mode", "Select mode");
+ RNA_def_property_flag(prop, PROP_CONTEXT_UPDATE);
+ RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, "rna_GroomEditSettings_update");
+}
+
static void rna_def_gpencil_sculpt(BlenderRNA *brna)
{
static const EnumPropertyItem prop_direction_items[] = {
@@ -1141,6 +1180,7 @@ void RNA_def_sculpt_paint(BlenderRNA *brna)
rna_def_vertex_paint(brna);
rna_def_image_paint(brna);
rna_def_particle_edit(brna);
+ rna_def_groom_edit_settings(brna);
rna_def_gpencil_sculpt(brna);
RNA_define_animate_sdna(true);
}
More information about the Bf-blender-cvs
mailing list