[Bf-blender-cvs] [636e3becd42] temp-transform-conversions-split: Transform: Move Texture Space conversion to its transform_conversion_object

mano-wii noreply at git.blender.org
Wed Sep 4 23:53:01 CEST 2019


Commit: 636e3becd42c1a04ce56c9d1d032aad686679fce
Author: mano-wii
Date:   Wed Sep 4 18:52:23 2019 -0300
Branches: temp-transform-conversions-split
https://developer.blender.org/rB636e3becd42c1a04ce56c9d1d032aad686679fce

Transform: Move Texture Space conversion to its transform_conversion_object

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

M	source/blender/editors/transform/transform_conversions.c
M	source/blender/editors/transform/transform_conversions.h
M	source/blender/editors/transform/transform_conversions_object.c

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

diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c
index 7bfcd60f6c1..3c47ac7decc 100644
--- a/source/blender/editors/transform/transform_conversions.c
+++ b/source/blender/editors/transform/transform_conversions.c
@@ -24,7 +24,6 @@
 #include "DNA_anim_types.h"
 #include "DNA_armature_types.h"
 #include "DNA_brush_types.h"
-#include "DNA_mesh_types.h"
 #include "DNA_space_types.h"
 #include "DNA_constraint_types.h"
 #include "DNA_gpencil_types.h"
@@ -54,7 +53,6 @@
 #include "BKE_particle.h"
 #include "BKE_paint.h"
 #include "BKE_pointcache.h"
-#include "BKE_report.h"
 #include "BKE_rigidbody.h"
 #include "BKE_scene.h"
 #include "BKE_sequencer.h"
@@ -342,62 +340,6 @@ static void set_prop_dist(TransInfo *t, const bool with_dist)
   MEM_freeN(td_table);
 }
 
-/* ************************** CONVERSIONS ************************* */
-
-/* ********************* texture space ********* */
-
-static void createTransTexspace(TransInfo *t)
-{
-  ViewLayer *view_layer = t->view_layer;
-  TransData *td;
-  Object *ob;
-  ID *id;
-  short *texflag;
-
-  ob = OBACT(view_layer);
-
-  if (ob == NULL) {  // Shouldn't logically happen, but still...
-    return;
-  }
-
-  id = ob->data;
-  if (id == NULL || !ELEM(GS(id->name), ID_ME, ID_CU, ID_MB)) {
-    BKE_report(t->reports, RPT_ERROR, "Unsupported object type for text-space transform");
-    return;
-  }
-
-  if (BKE_object_obdata_is_libdata(ob)) {
-    BKE_report(t->reports, RPT_ERROR, "Linked data can't text-space transform");
-    return;
-  }
-
-  {
-    BLI_assert(t->data_container_len == 1);
-    TransDataContainer *tc = t->data_container;
-    tc->data_len = 1;
-    td = tc->data = MEM_callocN(sizeof(TransData), "TransTexspace");
-    td->ext = tc->data_ext = MEM_callocN(sizeof(TransDataExtension), "TransTexspace");
-  }
-
-  td->flag = TD_SELECTED;
-  copy_v3_v3(td->center, ob->obmat[3]);
-  td->ob = ob;
-
-  copy_m3_m4(td->mtx, ob->obmat);
-  copy_m3_m4(td->axismtx, ob->obmat);
-  normalize_m3(td->axismtx);
-  pseudoinverse_m3_m3(td->smtx, td->mtx, PSEUDOINVERSE_EPSILON);
-
-  if (BKE_object_obdata_texspace_get(ob, &texflag, &td->loc, &td->ext->size, &td->ext->rot)) {
-    ob->dtx |= OB_TEXSPACE;
-    *texflag &= ~ME_AUTOSPACE;
-  }
-
-  copy_v3_v3(td->iloc, td->loc);
-  copy_v3_v3(td->ext->irot, td->ext->rot);
-  copy_v3_v3(td->ext->isize, td->ext->size);
-}
-
 /* ********************* pose mode ************* */
 
 static short apply_targetless_ik(Object *ob)
diff --git a/source/blender/editors/transform/transform_conversions.h b/source/blender/editors/transform/transform_conversions.h
index 42d524260e0..231bb67e3f1 100644
--- a/source/blender/editors/transform/transform_conversions.h
+++ b/source/blender/editors/transform/transform_conversions.h
@@ -110,6 +110,7 @@ void createTransNlaData(bContext *C, TransInfo *t);
 
 /* transform_object.c */
 void createTransObject(bContext *C, TransInfo *t);
+void createTransTexspace(TransInfo *t);
 void trans_obdata_in_obmode_update_all(struct TransInfo *t);
 void trans_obchild_in_obmode_update_all(struct TransInfo *t);
 
diff --git a/source/blender/editors/transform/transform_conversions_object.c b/source/blender/editors/transform/transform_conversions_object.c
index a6807acabd4..07af762dcf8 100644
--- a/source/blender/editors/transform/transform_conversions_object.c
+++ b/source/blender/editors/transform/transform_conversions_object.c
@@ -21,6 +21,8 @@
  * \ingroup edtransform
  */
 
+#include "DNA_mesh_types.h"
+
 #include "MEM_guardedalloc.h"
 
 #include "BLI_compiler_compat.h"
@@ -32,6 +34,7 @@
 #include "BKE_layer.h"
 #include "BKE_main.h"
 #include "BKE_object.h"
+#include "BKE_report.h"
 #include "BKE_rigidbody.h"
 #include "BKE_scene.h"
 
@@ -872,3 +875,64 @@ void createTransObject(bContext *C, TransInfo *t)
 }
 
 /** \} */
+
+/* -------------------------------------------------------------------- */
+/** \name Texture Space Transform Creation
+ *
+ * Instead of transforming the selection, move the 2D/3D cursor.
+ *
+ * \{ */
+
+void createTransTexspace(TransInfo *t)
+{
+  ViewLayer *view_layer = t->view_layer;
+  TransData *td;
+  Object *ob;
+  ID *id;
+  short *texflag;
+
+  ob = OBACT(view_layer);
+
+  if (ob == NULL) {  // Shouldn't logically happen, but still...
+    return;
+  }
+
+  id = ob->data;
+  if (id == NULL || !ELEM(GS(id->name), ID_ME, ID_CU, ID_MB)) {
+    BKE_report(t->reports, RPT_ERROR, "Unsupported object type for text-space transform");
+    return;
+  }
+
+  if (BKE_object_obdata_is_libdata(ob)) {
+    BKE_report(t->reports, RPT_ERROR, "Linked data can't text-space transform");
+    return;
+  }
+
+  {
+    BLI_assert(t->data_container_len == 1);
+    TransDataContainer *tc = t->data_container;
+    tc->data_len = 1;
+    td = tc->data = MEM_callocN(sizeof(TransData), "TransTexspace");
+    td->ext = tc->data_ext = MEM_callocN(sizeof(TransDataExtension), "TransTexspace");
+  }
+
+  td->flag = TD_SELECTED;
+  copy_v3_v3(td->center, ob->obmat[3]);
+  td->ob = ob;
+
+  copy_m3_m4(td->mtx, ob->obmat);
+  copy_m3_m4(td->axismtx, ob->obmat);
+  normalize_m3(td->axismtx);
+  pseudoinverse_m3_m3(td->smtx, td->mtx, PSEUDOINVERSE_EPSILON);
+
+  if (BKE_object_obdata_texspace_get(ob, &texflag, &td->loc, &td->ext->size, &td->ext->rot)) {
+    ob->dtx |= OB_TEXSPACE;
+    *texflag &= ~ME_AUTOSPACE;
+  }
+
+  copy_v3_v3(td->iloc, td->loc);
+  copy_v3_v3(td->ext->irot, td->ext->rot);
+  copy_v3_v3(td->ext->isize, td->ext->size);
+}
+
+/** \} */



More information about the Bf-blender-cvs mailing list