forked from bartvdbraak/blender
fix [#28066] Unchecking 'self project' messes up 'Snap to Vertex'
this option is useful for all non-grid snapping modes (when in editmode) so make available in those cases too.
This commit is contained in:
parent
48a64ffa70
commit
46cea37266
@ -79,19 +79,22 @@ class VIEW3D_HT_header(bpy.types.Header):
|
||||
row.prop(toolsettings, "proportional_edit_falloff", text="", icon_only=True)
|
||||
|
||||
# Snap
|
||||
snap_element = toolsettings.snap_element
|
||||
row = layout.row(align=True)
|
||||
row.prop(toolsettings, "use_snap", text="")
|
||||
row.prop(toolsettings, "snap_element", text="", icon_only=True)
|
||||
if toolsettings.snap_element != 'INCREMENT':
|
||||
if snap_element != 'INCREMENT':
|
||||
row.prop(toolsettings, "snap_target", text="")
|
||||
if obj and obj.mode == 'OBJECT':
|
||||
row.prop(toolsettings, "use_snap_align_rotation", text="")
|
||||
if toolsettings.snap_element == 'VOLUME':
|
||||
if obj:
|
||||
if obj.mode == 'OBJECT':
|
||||
row.prop(toolsettings, "use_snap_align_rotation", text="")
|
||||
elif obj.mode == 'EDIT':
|
||||
row.prop(toolsettings, "use_snap_self", text="")
|
||||
|
||||
if snap_element == 'VOLUME':
|
||||
row.prop(toolsettings, "use_snap_peel_object", text="")
|
||||
elif toolsettings.snap_element == 'FACE':
|
||||
elif snap_element == 'FACE':
|
||||
row.prop(toolsettings, "use_snap_project", text="")
|
||||
if toolsettings.use_snap_project and obj.mode == 'EDIT':
|
||||
row.prop(toolsettings, "use_snap_project_self", text="")
|
||||
|
||||
# OpenGL render
|
||||
row = layout.row(align=True)
|
||||
|
@ -96,7 +96,7 @@ typedef struct TransSnap {
|
||||
short modeSelect;
|
||||
short align;
|
||||
char project;
|
||||
char project_self;
|
||||
char snap_self;
|
||||
short peel;
|
||||
short status;
|
||||
float snapPoint[3]; /* snapping from this point */
|
||||
|
@ -392,7 +392,7 @@ static void initSnappingMode(TransInfo *t)
|
||||
}
|
||||
else
|
||||
{
|
||||
t->tsnap.modeSelect = t->tsnap.project_self ? SNAP_ALL : SNAP_NOT_OBEDIT;
|
||||
t->tsnap.modeSelect = t->tsnap.snap_self ? SNAP_ALL : SNAP_NOT_OBEDIT;
|
||||
}
|
||||
}
|
||||
/* Particles edit mode*/
|
||||
@ -458,9 +458,9 @@ void initSnapping(TransInfo *t, wmOperator *op)
|
||||
t->tsnap.project = RNA_boolean_get(op->ptr, "use_snap_project");
|
||||
}
|
||||
|
||||
if (RNA_struct_find_property(op->ptr, "use_snap_project_self"))
|
||||
if (RNA_struct_find_property(op->ptr, "use_snap_self"))
|
||||
{
|
||||
t->tsnap.project = RNA_boolean_get(op->ptr, "use_snap_project_self");
|
||||
t->tsnap.snap_self = RNA_boolean_get(op->ptr, "use_snap_self");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -473,7 +473,7 @@ void initSnapping(TransInfo *t, wmOperator *op)
|
||||
|
||||
t->tsnap.align = ((t->settings->snap_flag & SCE_SNAP_ROTATE) == SCE_SNAP_ROTATE);
|
||||
t->tsnap.project = ((t->settings->snap_flag & SCE_SNAP_PROJECT) == SCE_SNAP_PROJECT);
|
||||
t->tsnap.project_self = !((t->settings->snap_flag & SCE_SNAP_PROJECT_NO_SELF) == SCE_SNAP_PROJECT_NO_SELF);
|
||||
t->tsnap.snap_self = !((t->settings->snap_flag & SCE_SNAP_NO_SELF) == SCE_SNAP_NO_SELF);
|
||||
t->tsnap.peel = ((t->settings->snap_flag & SCE_SNAP_PROJECT) == SCE_SNAP_PROJECT);
|
||||
}
|
||||
|
||||
|
@ -1074,7 +1074,7 @@ typedef struct Scene {
|
||||
#define SCE_SNAP_ROTATE 2
|
||||
#define SCE_SNAP_PEEL_OBJECT 4
|
||||
#define SCE_SNAP_PROJECT 8
|
||||
#define SCE_SNAP_PROJECT_NO_SELF 16
|
||||
#define SCE_SNAP_NO_SELF 16
|
||||
/* toolsettings->snap_target */
|
||||
#define SCE_SNAP_TARGET_CLOSEST 0
|
||||
#define SCE_SNAP_TARGET_CENTER 1
|
||||
|
@ -1178,9 +1178,9 @@ static void rna_def_tool_settings(BlenderRNA *brna)
|
||||
RNA_def_property_ui_icon(prop, ICON_RETOPO, 0);
|
||||
RNA_def_property_update(prop, NC_SCENE|ND_TOOLSETTINGS, NULL); /* header redraw */
|
||||
|
||||
prop= RNA_def_property(srna, "use_snap_project_self", PROP_BOOLEAN, PROP_NONE);
|
||||
RNA_def_property_boolean_negative_sdna(prop, NULL, "snap_flag", SCE_SNAP_PROJECT_NO_SELF);
|
||||
RNA_def_property_ui_text(prop, "Project to Self", "Project into its self (editmode)");
|
||||
prop= RNA_def_property(srna, "use_snap_self", PROP_BOOLEAN, PROP_NONE);
|
||||
RNA_def_property_boolean_negative_sdna(prop, NULL, "snap_flag", SCE_SNAP_NO_SELF);
|
||||
RNA_def_property_ui_text(prop, "Project to Self", "Snap onto its self (editmode)");
|
||||
RNA_def_property_ui_icon(prop, ICON_ORTHO, 0);
|
||||
RNA_def_property_update(prop, NC_SCENE|ND_TOOLSETTINGS, NULL); /* header redraw */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user