[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