[Bf-blender-cvs] [e54fb1b8191] master: Cleanup: Move each recalcData to their respective TransData file

Germano Cavalcante noreply at git.blender.org
Mon Jun 8 13:28:52 CEST 2020


Commit: e54fb1b8191ee41ce537c8e1d6bbf81fa5e0302d
Author: Germano Cavalcante
Date:   Sun Jun 7 18:48:33 2020 -0300
Branches: master
https://developer.blender.org/rBe54fb1b8191ee41ce537c8e1d6bbf81fa5e0302d

Cleanup: Move each recalcData to their respective TransData file

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

M	source/blender/editors/transform/transform.h
M	source/blender/editors/transform/transform_convert.c
M	source/blender/editors/transform/transform_convert.h
M	source/blender/editors/transform/transform_convert_action.c
M	source/blender/editors/transform/transform_convert_armature.c
M	source/blender/editors/transform/transform_convert_curve.c
M	source/blender/editors/transform/transform_convert_gpencil.c
M	source/blender/editors/transform/transform_convert_graph.c
M	source/blender/editors/transform/transform_convert_lattice.c
M	source/blender/editors/transform/transform_convert_mask.c
M	source/blender/editors/transform/transform_convert_mesh.c
M	source/blender/editors/transform/transform_convert_mesh_uv.c
M	source/blender/editors/transform/transform_convert_nla.c
M	source/blender/editors/transform/transform_convert_node.c
M	source/blender/editors/transform/transform_convert_object.c
M	source/blender/editors/transform/transform_convert_particle.c
M	source/blender/editors/transform/transform_convert_sculpt.c
M	source/blender/editors/transform/transform_convert_sequencer.c
M	source/blender/editors/transform/transform_convert_tracking.c
M	source/blender/editors/transform/transform_generics.c

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

diff --git a/source/blender/editors/transform/transform.h b/source/blender/editors/transform/transform.h
index 4097e0c8f8c..2f3af015a1e 100644
--- a/source/blender/editors/transform/transform.h
+++ b/source/blender/editors/transform/transform.h
@@ -427,6 +427,11 @@ typedef struct TransDataContainer {
 typedef struct TransInfo {
   TransDataContainer *data_container;
   int data_container_len;
+
+  /** eTransConvertType
+   * TODO: It should be a member of TransDataContainer. */
+  int data_type;
+
   /** Combine length of all #TransDataContainer.data_len
    * Use to check if nothing is selected or if we have a single selection. */
   int data_len_all;
diff --git a/source/blender/editors/transform/transform_convert.c b/source/blender/editors/transform/transform_convert.c
index cf60990d09c..59ba362c6f7 100644
--- a/source/blender/editors/transform/transform_convert.c
+++ b/source/blender/editors/transform/transform_convert.c
@@ -35,6 +35,8 @@
 #include "BLI_math.h"
 #include "BLI_string.h"
 
+#include "BKE_action.h"
+#include "BKE_anim_data.h"
 #include "BKE_animsys.h"
 #include "BKE_armature.h"
 #include "BKE_context.h"
@@ -44,6 +46,7 @@
 #include "BKE_gpencil.h"
 #include "BKE_key.h"
 #include "BKE_layer.h"
+#include "BKE_lib_id.h"
 #include "BKE_main.h"
 #include "BKE_mask.h"
 #include "BKE_modifier.h"
@@ -68,6 +71,8 @@
 #include "ED_node.h"
 #include "ED_object.h"
 #include "ED_particle.h"
+#include "ED_screen.h"
+#include "ED_screen_types.h"
 
 #include "UI_view2d.h"
 
@@ -80,8 +85,11 @@
 #include "DEG_depsgraph_build.h"
 
 #include "transform.h"
-#include "transform_convert.h"
 #include "transform_mode.h"
+#include "transform_snap.h"
+
+/* Own include. */
+#include "transform_convert.h"
 
 bool transform_mode_use_local_origins(const TransInfo *t)
 {
@@ -2504,253 +2512,114 @@ void createTransData(bContext *C, TransInfo *t)
   ViewLayer *view_layer = t->view_layer;
   Object *ob = OBACT(view_layer);
 
-  bool has_transform_context = true;
   t->data_len_all = -1;
 
+  eTransConvertType convert_type = TC_NONE;
+
   /* if tests must match recalcData for correct updates */
   if (t->options & CTX_CURSOR) {
     t->flag |= T_CURSOR;
 
     if (t->spacetype == SPACE_IMAGE) {
-      createTransCursor_image(t);
+      convert_type = TC_CURSOR_IMAGE;
     }
     else {
-      createTransCursor_view3d(t);
+      convert_type = TC_CURSOR_VIEW3D;
     }
-    countAndCleanTransDataContainer(t);
   }
   else if ((t->options & CTX_SCULPT) && !(t->options & CTX_PAINT_CURVE)) {
-    createTransSculpt(t);
-    countAndCleanTransDataContainer(t);
+    convert_type = TC_SCULPT;
   }
   else if (t->options & CTX_TEXTURE) {
     t->flag |= T_TEXTURE;
-
-    createTransTexspace(t);
-    countAndCleanTransDataContainer(t);
+    convert_type = TC_OBJECT_TEXSPACE;
   }
   else if (t->options & CTX_EDGE) {
+    t->flag |= T_EDIT;
+    convert_type = TC_MESH_EDGES;
     /* Multi object editing. */
     initTransDataContainers_FromObjectData(t, ob, NULL, 0);
-    FOREACH_TRANS_DATA_CONTAINER (t, tc) {
-      tc->data_ext = NULL;
-    }
-    t->flag |= T_EDIT;
-
-    createTransEdge(t);
-    countAndCleanTransDataContainer(t);
-
-    if (t->data_len_all && t->flag & T_PROP_EDIT) {
-      sort_trans_data_selected_first(t);
-      set_prop_dist(t, 1);
-      sort_trans_data_dist(t);
-    }
   }
   else if (t->options & CTX_GPENCIL_STROKES) {
     t->options |= CTX_GPENCIL_STROKES;
     t->flag |= T_POINTS | T_EDIT;
-
+    convert_type = TC_GPENCIL;
     initTransDataContainers_FromObjectData(t, ob, NULL, 0);
-    createTransGPencil(C, t);
-    countAndCleanTransDataContainer(t);
-
-    if (t->data_len_all && (t->flag & T_PROP_EDIT)) {
-      sort_trans_data_selected_first(t);
-      set_prop_dist(t, 1);
-      sort_trans_data_dist(t);
-    }
   }
   else if (t->spacetype == SPACE_IMAGE) {
     t->flag |= T_POINTS | T_2D_EDIT;
     if (t->options & CTX_MASK) {
-
-      /* copied from below */
-      createTransMaskingData(C, t);
-      countAndCleanTransDataContainer(t);
-
-      if (t->data_len_all && (t->flag & T_PROP_EDIT)) {
-        sort_trans_data_selected_first(t);
-        set_prop_dist(t, true);
-        sort_trans_data_dist(t);
-      }
+      convert_type = TC_MASKING_DATA;
     }
     else if (t->options & CTX_PAINT_CURVE) {
       if (!ELEM(t->mode, TFM_SHEAR, TFM_SHRINKFATTEN)) {
-        createTransPaintCurveVerts(C, t);
-        countAndCleanTransDataContainer(t);
-      }
-      else {
-        has_transform_context = false;
+        convert_type = TC_PAINT_CURVE_VERTS;
       }
     }
     else if (t->obedit_type == OB_MESH) {
-
-      initTransDataContainers_FromObjectData(t, ob, NULL, 0);
-      createTransUVs(C, t);
-      countAndCleanTransDataContainer(t);
-
       t->flag |= T_EDIT;
-
-      if (t->data_len_all && (t->flag & T_PROP_EDIT)) {
-        sort_trans_data_selected_first(t);
-        set_prop_dist(t, 1);
-        sort_trans_data_dist(t);
-      }
-    }
-    else {
-      has_transform_context = false;
+      convert_type = TC_MESH_UV;
+      initTransDataContainers_FromObjectData(t, ob, NULL, 0);
     }
   }
   else if (t->spacetype == SPACE_ACTION) {
     t->flag |= T_POINTS | T_2D_EDIT;
     t->obedit_type = -1;
-
-    createTransActionData(C, t);
-    countAndCleanTransDataContainer(t);
-
-    if (t->data_len_all && (t->flag & T_PROP_EDIT)) {
-      sort_trans_data_selected_first(t);
-      /* don't do that, distance has been set in createTransActionData already */
-      // set_prop_dist(t, false);
-      sort_trans_data_dist(t);
-    }
+    convert_type = TC_ACTION_DATA;
   }
   else if (t->spacetype == SPACE_NLA) {
     t->flag |= T_POINTS | T_2D_EDIT;
     t->obedit_type = -1;
-
-    createTransNlaData(C, t);
-    countAndCleanTransDataContainer(t);
+    convert_type = TC_NLA_DATA;
   }
   else if (t->spacetype == SPACE_SEQ) {
     t->flag |= T_POINTS | T_2D_EDIT;
     t->obedit_type = -1;
-
     t->num.flag |= NUM_NO_FRACTION; /* sequencer has no use for floating point trasnform */
-    createTransSeqData(t);
-    countAndCleanTransDataContainer(t);
+    convert_type = TC_SEQ_DATA;
   }
   else if (t->spacetype == SPACE_GRAPH) {
     t->flag |= T_POINTS | T_2D_EDIT;
     t->obedit_type = -1;
-
-    createTransGraphEditData(C, t);
-    countAndCleanTransDataContainer(t);
-
-    if (t->data_len_all && (t->flag & T_PROP_EDIT)) {
-      /* makes selected become first in array */
-      sort_trans_data_selected_first(t);
-
-      /* don't do that, distance has been set in createTransGraphEditData already */
-      set_prop_dist(t, false);
-
-      sort_trans_data_dist(t);
-    }
+    convert_type = TC_GRAPH_EDIT_DATA;
   }
   else if (t->spacetype == SPACE_NODE) {
     t->flag |= T_POINTS | T_2D_EDIT;
     t->obedit_type = -1;
-
-    createTransNodeData(C, t);
-    countAndCleanTransDataContainer(t);
-
-    if (t->data_len_all && (t->flag & T_PROP_EDIT)) {
-      sort_trans_data_selected_first(t);
-      set_prop_dist(t, 1);
-      sort_trans_data_dist(t);
-    }
+    convert_type = TC_NODE_DATA;
   }
   else if (t->spacetype == SPACE_CLIP) {
     t->flag |= T_POINTS | T_2D_EDIT;
     t->obedit_type = -1;
 
     if (t->options & CTX_MOVIECLIP) {
-      createTransTrackingData(C, t);
-      countAndCleanTransDataContainer(t);
+      convert_type = TC_TRACKING_DATA;
     }
     else if (t->options & CTX_MASK) {
-      /* copied from above */
-      createTransMaskingData(C, t);
-      countAndCleanTransDataContainer(t);
-
-      if (t->data_len_all && (t->flag & T_PROP_EDIT)) {
-        sort_trans_data_selected_first(t);
-        set_prop_dist(t, true);
-        sort_trans_data_dist(t);
-      }
-    }
-    else {
-      has_transform_context = false;
+      convert_type = TC_MASKING_DATA;
     }
   }
   else if (t->obedit_type != -1) {
+    t->flag |= T_EDIT | T_POINTS;
+
     /* Multi object editing. */
     initTransDataContainers_FromObjectData(t, ob, NULL, 0);
 
-    FOREACH_TRANS_DATA_CONTAINER (t, tc) {
-      tc->data_ext = NULL;
-    }
     if (t->obedit_type == OB_MESH) {
-      createTransEditVerts(t);
+      convert_type = TC_MESH_VERTS;
     }
     else if (ELEM(t->obedit_type, OB_CURVE, OB_SURF)) {
-      createTransCurveVerts(t);
+      convert_type = TC_CURVE_VERTS;
     }
     else if (t->obedit_type == OB_LATTICE) {
-      createTransLatticeVerts(t);
+      convert_type = TC_LATTICE_VERTS;
     }
     else if (t->obedit_type == OB_MBALL) {
-      createTransMBallVerts(t);
+      convert_type = TC_MBALL_VERTS;
     }
     else if (t->obedit_type == OB_ARMATURE) {
       t->flag &= ~T_PROP_EDIT;
-      createTransArmatureVerts(t);
-    }
-    else {
-      printf("edit type not implemented!\n");
-    }
-
-    countAndCleanTransDataContainer(t);
-
-    t->flag |= T_EDIT | T_POINTS;
-
-    if (t->data_len_all) {
-      if (t->flag & T_PROP_EDIT) {
-        if (ELEM(t->obedit_type, OB_CURVE, OB_MESH)) {
-          sort_trans_data_selected_first(t);
-          if ((t->obedit_type == OB_MESH) && (t->flag & T_PROP_CONNECTED)) {
-            /* already calculated by editmesh_set_connectivity_distance */
-          }
-          else {
-            set_prop_dist(t, 0);
-          }
-          sort_trans_data_dist(t);
-        }
-        else {
-          sort_trans_data_selected_first(t);
-          set_prop_dist(t, 1);
-          sort_trans_data_dist(t);
-        }
-      }
-      else {
-        if (ELEM(t->obedit_type, OB_CURVE)) {
-          /* Needed because bezier handles can be partially selected
-           * and are still added into transform data. */
-          sort_trans_data_selected_first(t);
-        }
-      }
-    }
-
-    /* exception... hackish, we want bonesize to use bone orientation matrix (ton) */
-    if (t->mode == TFM_BONESIZE) {
-      t->flag &= ~(T_EDIT | T_POINTS);
-      t->flag |= T_POSE;
-      t->obedit_type = -1;
-
-      FOREACH_TRANS_DATA_CONTAINER (t, tc) {
-        tc->poseobj = tc->obedit;
-        tc->obedit = NULL;
-      }
+      convert_type = TC_ARMATURE_VERTS;
     }
   }
   else if (ob && (ob->mode & OB_MODE_POSE)) {
@@ -2761,13 +2630,11 @@ void createTransData(bContext *C, TransInfo *t)
 
     /* Multi object editing. */
     initTransDataContainers_FromObjectData(t, ob, NULL, 0);
-   

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list