[Bf-blender-cvs] [b818008ddf0] retopo_transform: addressed reviewer comments, updated versioning (untested)
jon denning
noreply at git.blender.org
Sat Jul 16 13:00:37 CEST 2022
Commit: b818008ddf0a4dcbf9b0f993c21504a30fbf54c0
Author: jon denning
Date: Tue Jun 7 11:12:28 2022 -0400
Branches: retopo_transform
https://developer.blender.org/rBb818008ddf0a4dcbf9b0f993c21504a30fbf54c0
addressed reviewer comments, updated versioning (untested)
===================================================================
M release/scripts/startup/bl_ui/space_view3d.py
M source/blender/blenloader/intern/versioning_300.c
M source/blender/editors/transform/transform_ops.c
M source/blender/editors/transform/transform_snap.c
M source/blender/editors/transform/transform_snap_object.cc
M source/blender/makesdna/DNA_scene_defaults.h
M source/blender/makesdna/DNA_scene_types.h
M source/blender/makesrna/intern/rna_scene.c
===================================================================
diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py
index d1aeeb80b94..e0e38f6e765 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -6780,15 +6780,15 @@ class VIEW3D_PT_snapping(Panel):
if obj:
col.label(text="Target Selection")
- targetselection = col.column(align=True)
+ col_targetsel = col.column(align=True)
if object_mode == 'EDIT' and obj.type not in {'LATTICE', 'META', 'FONT'}:
# active_use_self = True
# active_use_self &= not (tool_settings.use_proportional_edit and obj.type == 'MESH')
# active_use_self &= tool_settings.use_snap_edit
- targetselection.prop(tool_settings, "use_snap_self", text="Include Active", icon='EDITMODE_HLT')
- targetselection.prop(tool_settings, "use_snap_edit", text="Include Edited", icon='OUTLINER_DATA_MESH')
- targetselection.prop(tool_settings, "use_snap_nonedit", text="Include Non-edited", icon='OUTLINER_OB_MESH')
- targetselection.prop(tool_settings, "use_snap_selectable", text="Exclude Non-Selectable", icon='RESTRICT_SELECT_OFF')
+ col_targetsel.prop(tool_settings, "use_snap_self", text="Include Active", icon='EDITMODE_HLT')
+ col_targetsel.prop(tool_settings, "use_snap_edit", text="Include Edited", icon='OUTLINER_DATA_MESH')
+ col_targetsel.prop(tool_settings, "use_snap_nonedit", text="Include Non-edited", icon='OUTLINER_OB_MESH')
+ col_targetsel.prop(tool_settings, "use_snap_selectable", text="Exclude Non-Selectable", icon='RESTRICT_SELECT_OFF')
if object_mode in {'OBJECT', 'POSE', 'EDIT', 'WEIGHT_PAINT'}:
col.prop(tool_settings, "use_snap_align_rotation")
diff --git a/source/blender/blenloader/intern/versioning_300.c b/source/blender/blenloader/intern/versioning_300.c
index 76d12cc1109..29ff7d7a0ae 100644
--- a/source/blender/blenloader/intern/versioning_300.c
+++ b/source/blender/blenloader/intern/versioning_300.c
@@ -3066,5 +3066,13 @@ void blo_do_versions_300(FileData *fd, Library *UNUSED(lib), Main *bmain)
SEQ_for_each_callback(&ed->seqbase, version_merge_still_offsets, NULL);
}
}
+
+ LISTBASE_FOREACH (Scene *, scene, &bmain->scenes) {
+ ToolSettings *tool_settings = scene->toolsettings;
+ /* Minimum of snap steps for face nearest is 1. */
+ tool_settings->snap_face_nearest_steps = 1;
+ /* Set snap to edited and nonedited as default. */
+ tool_settings->snap_flag |= SCE_SNAP_TO_INCLUDE_EDITED | SCE_SNAP_TO_INCLUDE_NONEDITED;
+ }
}
}
diff --git a/source/blender/editors/transform/transform_ops.c b/source/blender/editors/transform/transform_ops.c
index 1098e8cb90c..73404811992 100644
--- a/source/blender/editors/transform/transform_ops.c
+++ b/source/blender/editors/transform/transform_ops.c
@@ -663,10 +663,10 @@ void Transform_Properties(struct wmOperatorType *ot, int flags)
RNA_def_boolean(ot->srna, "use_snap_project", false, "Project Individual Elements", "");
if (flags & P_GEO_SNAP) {
- /* TODO(@gfxcoder): Rename `snap_target` to `snap_source` to avoid
- * previous ambiguity of "target" (now, "source" is geometry to be moved and "target" is
- * geometry to which moved geometry is snapped). Use "Source snap point" and "Point on
- * source that will snap to target" for name and description, respectively. */
+ /* TODO(@gfxcoder): Rename `snap_target` to `snap_source` to avoid previous ambiguity of
+ * "target" (now, "source" is geometry to be moved and "target" is geometry to which moved
+ * geometry is snapped). Use "Source snap point" and "Point on source that will snap to
+ * target" for name and description, respectively. */
prop = RNA_def_enum(ot->srna, "snap_target", rna_enum_snap_source_items, 0, "Target", "");
// RNA_def_property_flag(prop, PROP_HIDDEN);
prop = RNA_def_float_vector(
diff --git a/source/blender/editors/transform/transform_snap.c b/source/blender/editors/transform/transform_snap.c
index 507295fee18..2e3611b5182 100644
--- a/source/blender/editors/transform/transform_snap.c
+++ b/source/blender/editors/transform/transform_snap.c
@@ -413,12 +413,6 @@ static bool applyFaceProject(TransInfo *t, TransDataContainer *tc, TransData *td
return false;
}
-#if 0
- if (tc->use_local_mat) {
- mul_m4_v3(tc->imat, loc);
- }
-#endif
-
float tvec[3];
sub_v3_v3v3(tvec, loc, iloc);
@@ -431,7 +425,7 @@ static bool applyFaceProject(TransInfo *t, TransDataContainer *tc, TransData *td
const float *original_normal;
float mat[3][3];
- /* In pose mode, we want to align normals with Y axis of bones... */
+ /* In pose mode, we want to align normals with Y axis of bones. */
original_normal = td->axismtx[2];
rotation_between_vecs_to_mat3(mat, original_normal, no);
@@ -489,31 +483,12 @@ static void applyFaceNearest(TransInfo *t, TransDataContainer *tc, TransData *td
return;
}
-#if 0
- if (tc->use_local_mat) {
- mul_m4_v3(tc->imat, loc);
- }
-#endif
-
float tvec[3];
sub_v3_v3v3(tvec, snap_loc, prev_loc);
mul_m3_v3(td->smtx, tvec);
add_v3_v3(td->loc, tvec);
- if (t->tsnap.align && (t->options & CTX_OBJECT)) {
- /* handle alignment as well */
- const float *init_no;
- float mat[3][3];
-
- /* In pose mode, we want to align normals with Y axis of bones... */
- init_no = td->axismtx[2];
-
- rotation_between_vecs_to_mat3(mat, init_no, snap_no);
-
- transform_data_ext_rotate(td, mat, true);
-
- /* TODO: support constraints for rotation too? see #ElementRotation. */
- }
+ /* TODO: support snap alignment similar to #SCE_SNAP_MODE_FACE_RAYCAST? */
}
void applySnappingIndividual(TransInfo *t)
@@ -759,10 +734,10 @@ static eSnapTargetSelect snap_select_target_get(TransInfo *t)
eSnapTargetSelect ret = SCE_SNAP_TARGET_ALL;
- bool snapto_self = !(t->tsnap.target_select & SCE_SNAP_TARGET_NOT_ACTIVE);
- bool snapto_edit = !(t->tsnap.target_select & SCE_SNAP_TARGET_NOT_EDITED);
- bool snapto_nonedit = !(t->tsnap.target_select & SCE_SNAP_TARGET_NOT_NONEDITED);
- bool snapto_only_selectable = (t->tsnap.target_select & SCE_SNAP_TARGET_ONLY_SELECTABLE);
+ bool use_snap_active = !(t->tsnap.target_select & SCE_SNAP_TARGET_NOT_ACTIVE);
+ bool use_snap_edit = !(t->tsnap.target_select & SCE_SNAP_TARGET_NOT_EDITED);
+ bool use_snap_nonedit = !(t->tsnap.target_select & SCE_SNAP_TARGET_NOT_NONEDITED);
+ bool use_snap_selectable_only = (t->tsnap.target_select & SCE_SNAP_TARGET_ONLY_SELECTABLE);
if (ELEM(t->spacetype, SPACE_VIEW3D, SPACE_IMAGE) && !(t->options & CTX_CAMERA)) {
if (base_act && (base_act->object->mode & OB_MODE_PARTICLE_EDIT)) {
@@ -770,7 +745,7 @@ static eSnapTargetSelect snap_select_target_get(TransInfo *t)
return ret;
}
- if (snapto_only_selectable) {
+ if (use_snap_selectable_only) {
ret |= SCE_SNAP_TARGET_ONLY_SELECTABLE;
}
@@ -792,13 +767,13 @@ static eSnapTargetSelect snap_select_target_get(TransInfo *t)
/* Exclude editmesh when using proportional edit */
ret |= SCE_SNAP_TARGET_NOT_EDITED;
}
- if (!snapto_self) {
+ if (!use_snap_active) {
ret |= SCE_SNAP_TARGET_NOT_ACTIVE;
}
- if (!snapto_edit) {
+ if (!use_snap_edit) {
ret |= SCE_SNAP_TARGET_NOT_EDITED;
}
- if (!snapto_nonedit) {
+ if (!use_snap_nonedit) {
ret |= SCE_SNAP_TARGET_NOT_NONEDITED;
}
}
@@ -888,11 +863,11 @@ void initSnapping(TransInfo *t, wmOperator *op)
t->tsnap.mode = RNA_property_enum_get(op->ptr, prop);
}
+ /* TODO(@gfxcoder): Rename `snap_target` to `snap_source` to avoid previous ambiguity of
+ * "target" (now, "source" is geometry to be moved and "target" is geometry to which moved
+ * geometry is snapped). */
if ((prop = RNA_struct_find_property(op->ptr, "snap_target")) &&
RNA_property_is_set(op->ptr, prop)) {
- /* TODO(@gfxcoder): Rename `snap_target` to `snap_source` to avoid
- * previous ambiguity of "target" (now, "source" is geometry to be moved and "target" is
- * geometry to which moved geometry is snapped). */
snap_source = RNA_property_enum_get(op->ptr, prop);
}
@@ -955,7 +930,7 @@ void initSnapping(TransInfo *t, wmOperator *op)
t->tsnap.align = ((t->tsnap.flag & SCE_SNAP_ROTATE) != 0);
t->tsnap.project = ((t->tsnap.flag & SCE_SNAP_PROJECT) != 0);
SET_FLAG_FROM_TEST(t->tsnap.target_select,
- (t->settings->snap_flag & SCE_SNAP_NO_SELF),
+ (t->settings->snap_flag & SCE_SNAP_NOT_TO_ACTIVE),
SCE_SNAP_TARGET_NOT_ACTIVE);
SET_FLAG_FROM_TEST(t->tsnap.target_select,
!(t->settings->snap_flag & SCE_SNAP_TO_INCLUDE_EDITED),
@@ -1517,7 +1492,7 @@ bool peelObjectsTransform(TransInfo *t,
.edit_mode_type = (t->flag & T_EDIT) != 0 ? SNAP_GEOM_EDIT : SNAP_GEOM_FINAL,
},
mval,
- FLT_MAX,
+ -1.0f,
false,
&depths_peel);
diff --git a/source/blender/editors/transform/transform_snap_object.cc b/source/blender/editors/transform/transform_snap_object.cc
index 468cda98287..5ec23bd318f 100644
--- a/source/blender/editors/transform/transform_snap_object.cc
+++ b/source/blender/editors/transform/transform_snap_object.cc
@@ -1247,7 +1247,7 @@ static bool nearest_world_tree(SnapObjectContext *UNUSED(sctx),
int *r_index)
{
if (curr_co == nullptr || init_co == nullptr) {
- // TODO(jon): how to handle this case?
+ /* No location to work with, so just return. */
return false;
}
@@ -1456,7 +1456,7 @@ static void nearest_world_object_fn(SnapObjectContext *sctx,
/**
* Main Nearest World Surface Function
- * ======================
+ * ===================================
*
* Walks through all o
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list