Commit: f6063935227f0b97f1f635a50486139c09ba04dc
Author: jon denning
Date:   Fri Jun 3 11:53:52 2022 -0400
Branches: retopo_transform
https://developer.blender.org/rBf6063935227f0b97f1f635a50486139c09ba04dc

sync with work on laptop

===================================================================

M       source/blender/editors/transform/transform_ops.c
M       source/blender/editors/transform/transform_snap.c

===================================================================

diff --git a/source/blender/editors/transform/transform_ops.c 
b/source/blender/editors/transform/transform_ops.c
index 600f525b428..a56341d227f 100644
--- a/source/blender/editors/transform/transform_ops.c
+++ b/source/blender/editors/transform/transform_ops.c
@@ -566,6 +566,16 @@ static bool transform_poll_property(const bContext 
*UNUSED(C),
     }
   }
 
+  /* Snapping. */
+  {
+    PropertyRNA *prop_pet = RNA_struct_find_property(op->ptr, "snap");
+    if (prop_pet && (prop_pet != prop) && (RNA_property_boolean_get(op->ptr, 
prop_pet) == false)) {
+      if (STRPREFIX(prop_id, "snap") || STRPREFIX(prop_id, "use_snap")) {
+        return false;
+      }
+    }
+  }
+
   return true;
 }
 
@@ -645,18 +655,21 @@ void Transform_Properties(struct wmOperatorType *ot, int 
flags)
 
   if (flags & P_SNAP) {
     prop = RNA_def_boolean(ot->srna, "snap", 0, "Use Snapping Options", "");
-    RNA_def_property_flag(prop, PROP_HIDDEN);
+
+    prop = RNA_def_enum(
+        ot->srna, "snap_elements", rna_enum_snap_element_items, 0, "Snap to 
Elements", "");
+    RNA_def_property_flag(prop, PROP_ENUM_FLAG);
+
+    RNA_def_boolean(ot->srna, "use_snap_project", false, "Project Individual 
Elements", "");
 
     if (flags & P_GEO_SNAP) {
-      prop = RNA_def_enum(ot->srna, "snap_target", rna_enum_snap_target_items, 
0, "Target", "");
-      RNA_def_property_flag(prop, PROP_HIDDEN);
+      RNA_def_enum(ot->srna, "snap_target", rna_enum_snap_target_items, 0, 
"Target", "");
       prop = RNA_def_float_vector(
           ot->srna, "snap_point", 3, NULL, -FLT_MAX, FLT_MAX, "Point", "", 
-FLT_MAX, FLT_MAX);
       RNA_def_property_flag(prop, PROP_HIDDEN);
 
       if (flags & P_ALIGN_SNAP) {
-        prop = RNA_def_boolean(ot->srna, "snap_align", 0, "Align with Point 
Normal", "");
-        RNA_def_property_flag(prop, PROP_HIDDEN);
+        RNA_def_boolean(ot->srna, "snap_align", 0, "Align with Point Normal", 
"");
         prop = RNA_def_float_vector(
             ot->srna, "snap_normal", 3, NULL, -FLT_MAX, FLT_MAX, "Normal", "", 
-FLT_MAX, FLT_MAX);
         RNA_def_property_flag(prop, PROP_HIDDEN);
diff --git a/source/blender/editors/transform/transform_snap.c 
b/source/blender/editors/transform/transform_snap.c
index 26a833fcaf0..98ced64ded8 100644
--- a/source/blender/editors/transform/transform_snap.c
+++ b/source/blender/editors/transform/transform_snap.c
@@ -816,12 +816,7 @@ static eSnapTargetSelect snap_select_target_get(TransInfo 
*t)
 
 static void initSnappingMode(TransInfo *t)
 {
-  ToolSettings *ts = t->settings;
-  t->tsnap.mode = snap_mode_from_spacetype(t);
-  t->tsnap.target_select = snap_select_target_get(t);
-  t->tsnap.face_nearest_steps = max_ii(ts->snap_face_nearest_steps, 1);
-
-  if ((t->spacetype != SPACE_VIEW3D) || !(ts->snap_mode & 
SCE_SNAP_MODE_FACE_RAYCAST)) {
+  if ((t->spacetype != SPACE_VIEW3D) || !(t->tsnap.mode & 
SCE_SNAP_MODE_FACE_RAYCAST)) {
     /* Force project off when not supported. */
     t->tsnap.project = false;
   }
@@ -867,11 +862,15 @@ static void initSnappingMode(TransInfo *t)
 
 void initSnapping(TransInfo *t, wmOperator *op)
 {
-  resetSnapping(t);
-  t->tsnap.flag = snap_flag_from_spacetype(t);
   ToolSettings *ts = t->settings;
   eSnapTarget snap_target = ts->snap_target;
 
+  resetSnapping(t);
+  t->tsnap.mode = snap_mode_from_spacetype(t);
+  t->tsnap.flag = snap_flag_from_spacetype(t);
+  t->tsnap.target_select = snap_select_target_get(t);
+  t->tsnap.face_nearest_steps = max_ii(ts->snap_face_nearest_steps, 1);
+
   /* if snap property exists */
   PropertyRNA *prop;
   if (op && (prop = RNA_struct_find_property(op->ptr, "snap")) &&
@@ -879,6 +878,11 @@ void initSnapping(TransInfo *t, wmOperator *op)
     if (RNA_property_boolean_get(op->ptr, prop)) {
       t->modifiers |= MOD_SNAP;
 
+      if ((prop = RNA_struct_find_property(op->ptr, "snap_elements")) &&
+          RNA_property_is_set(op->ptr, prop)) {
+        t->tsnap.mode = RNA_property_enum_get(op->ptr, prop);
+      }
+
       if ((prop = RNA_struct_find_property(op->ptr, "snap_target")) &&
           RNA_property_is_set(op->ptr, prop)) {
         snap_target = RNA_property_enum_get(op->ptr, prop);
@@ -1174,7 +1178,7 @@ static void snap_calc_uv_fn(TransInfo *t, float 
*UNUSED(vec))
                                    objects,
                                    objects_len,
                                    t->mval,
-                                   t->tsnap.modeSelect == SNAP_NOT_SELECTED,
+                                   t->tsnap.mode == SCE_SNAP_MODE_NONE,
                                    &dist_sq,
                                    t->tsnap.snapPoint)) {
       t->tsnap.snapPoint[0] *= t->aspect[0];

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
List details, subscription details or unsubscribe:
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to