[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