[Bf-blender-cvs] [4c66021ccc9] master: Cleanup: transform, use early returns

Germano Cavalcante noreply at git.blender.org
Mon Mar 28 19:23:30 CEST 2022


Commit: 4c66021ccc94ad0d53418c007d3b3a4f9382415b
Author: Germano Cavalcante
Date:   Mon Mar 28 13:01:08 2022 -0300
Branches: master
https://developer.blender.org/rB4c66021ccc94ad0d53418c007d3b3a4f9382415b

Cleanup: transform, use early returns

This makes the flow clearer and avoids many `else` conditions.

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

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

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

diff --git a/source/blender/editors/transform/transform_snap.c b/source/blender/editors/transform/transform_snap.c
index 5e66b8010e4..fefd8d3a378 100644
--- a/source/blender/editors/transform/transform_snap.c
+++ b/source/blender/editors/transform/transform_snap.c
@@ -579,89 +579,99 @@ static char snap_flag_from_spacetype(TransInfo *t)
 static short snap_mode_from_spacetype(TransInfo *t)
 {
   ToolSettings *ts = t->settings;
-  short r_snap_mode = SCE_SNAP_MODE_INCREMENT;
 
   if (t->spacetype == SPACE_NODE) {
-    r_snap_mode = ts->snap_node_mode;
+    return ts->snap_node_mode;
   }
-  else if (t->spacetype == SPACE_IMAGE) {
-    r_snap_mode = ts->snap_uv_mode;
-    if ((r_snap_mode & SCE_SNAP_MODE_INCREMENT) && (ts->snap_uv_flag & SCE_SNAP_ABS_GRID) &&
+
+  if (t->spacetype == SPACE_IMAGE) {
+    short snap_mode = ts->snap_uv_mode;
+    if ((snap_mode & SCE_SNAP_MODE_INCREMENT) && (ts->snap_uv_flag & SCE_SNAP_ABS_GRID) &&
         (t->mode == TFM_TRANSLATION)) {
-      r_snap_mode &= ~SCE_SNAP_MODE_INCREMENT;
-      r_snap_mode |= SCE_SNAP_MODE_GRID;
+      snap_mode &= ~SCE_SNAP_MODE_INCREMENT;
+      snap_mode |= SCE_SNAP_MODE_GRID;
     }
+    return snap_mode;
   }
-  else if (t->spacetype == SPACE_SEQ) {
-    r_snap_mode = SEQ_tool_settings_snap_mode_get(t->scene);
+
+  if (t->spacetype == SPACE_SEQ) {
+    return SEQ_tool_settings_snap_mode_get(t->scene);
   }
-  else if ((t->spacetype == SPACE_VIEW3D) && !(t->options & CTX_CAMERA)) {
+
+  if ((t->spacetype == SPACE_VIEW3D) && !(t->options & CTX_CAMERA)) {
     /* All obedit types will match. */
     const int obedit_type = t->obedit_type;
     if ((t->options & (CTX_GPENCIL_STROKES | CTX_CURSOR | CTX_OBMODE_XFORM_OBDATA)) ||
         ELEM(obedit_type, OB_MESH, OB_ARMATURE, OB_CURVES_LEGACY, OB_LATTICE, OB_MBALL, -1)) {
-      r_snap_mode = ts->snap_mode;
-      if ((r_snap_mode & SCE_SNAP_MODE_INCREMENT) && (ts->snap_flag & SCE_SNAP_ABS_GRID) &&
+      short snap_mode = ts->snap_mode;
+      if ((snap_mode & SCE_SNAP_MODE_INCREMENT) && (ts->snap_flag & SCE_SNAP_ABS_GRID) &&
           (t->mode == TFM_TRANSLATION)) {
         /* Special case in which snap to increments is transformed to snap to grid. */
-        r_snap_mode &= ~SCE_SNAP_MODE_INCREMENT;
-        r_snap_mode |= SCE_SNAP_MODE_GRID;
+        snap_mode &= ~SCE_SNAP_MODE_INCREMENT;
+        snap_mode |= SCE_SNAP_MODE_GRID;
       }
+      return snap_mode;
     }
+    return SCE_SNAP_MODE_INCREMENT;
   }
-  else if (ELEM(t->spacetype, SPACE_ACTION, SPACE_NLA)) {
+
+  if (ELEM(t->spacetype, SPACE_ACTION, SPACE_NLA)) {
     /* No incremental snapping. */
-    r_snap_mode = 0;
+    return 0;
   }
 
-  return r_snap_mode;
+  return SCE_SNAP_MODE_INCREMENT;
 }
 
 static short snap_select_type_get(TransInfo *t)
 {
-  short r_snap_select = SNAP_ALL;
-
   ViewLayer *view_layer = t->view_layer;
   Base *base_act = view_layer->basact;
   if (ELEM(t->spacetype, SPACE_VIEW3D, SPACE_IMAGE) && !(t->options & CTX_CAMERA)) {
-    const int obedit_type = t->obedit_type;
     if (t->options & (CTX_GPENCIL_STROKES | CTX_CURSOR | CTX_OBMODE_XFORM_OBDATA)) {
       /* In "Edit Strokes" mode,
        * snap tool can perform snap to selected or active objects (see T49632)
        * TODO: perform self snap in gpencil_strokes.
        *
        * When we're moving the origins, allow snapping onto our own geometry (see T69132). */
+      return SNAP_ALL;
     }
-    else if ((obedit_type != -1) &&
-             ELEM(obedit_type, OB_MESH, OB_ARMATURE, OB_CURVES_LEGACY, OB_LATTICE, OB_MBALL)) {
+
+    const int obedit_type = t->obedit_type;
+    if (obedit_type != -1) {
       /* Edit mode */
-      /* Temporary limited to edit mode meshes, armature, curves, metaballs. */
+      if (ELEM(obedit_type, OB_MESH, OB_ARMATURE, OB_CURVES_LEGACY, OB_LATTICE, OB_MBALL)) {
+        /* Temporary limited to edit mode meshes, armature, curves, lattice and metaballs. */
 
-      if ((obedit_type == OB_MESH) && (t->flag & T_PROP_EDIT)) {
-        /* Exclude editmesh if using proportional edit */
-        r_snap_select = SNAP_NOT_EDITED;
-      }
-      else if (!t->tsnap.snap_self) {
-        r_snap_select = SNAP_NOT_ACTIVE;
-      }
-      else {
-        r_snap_select = SNAP_NOT_SELECTED;
+        if ((obedit_type == OB_MESH) && (t->flag & T_PROP_EDIT)) {
+          /* Exclude editmesh if using proportional edit */
+          return SNAP_NOT_EDITED;
+        }
+
+        if (!t->tsnap.snap_self) {
+          return SNAP_NOT_ACTIVE;
+        }
+
+        return SNAP_NOT_SELECTED;
       }
+
+      return SNAP_ALL;
     }
-    else if ((obedit_type == -1) && base_act && base_act->object &&
-             (base_act->object->mode & OB_MODE_PARTICLE_EDIT)) {
+
+    if (base_act && (base_act->object->mode & OB_MODE_PARTICLE_EDIT)) {
       /* Particles edit mode. */
+      return SNAP_ALL;
     }
-    else if (obedit_type == -1) {
-      /* Object or pose mode. */
-      r_snap_select = SNAP_NOT_SELECTED;
-    }
+
+    /* Object or pose mode. */
+    return SNAP_NOT_SELECTED;
   }
-  else if (ELEM(t->spacetype, SPACE_NODE, SPACE_SEQ)) {
-    r_snap_select = SNAP_NOT_SELECTED;
+
+  if (ELEM(t->spacetype, SPACE_NODE, SPACE_SEQ)) {
+    return SNAP_NOT_SELECTED;
   }
 
-  return r_snap_select;
+  return SNAP_ALL;
 }
 
 static void initSnappingMode(TransInfo *t)



More information about the Bf-blender-cvs mailing list