[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