[Bf-blender-cvs] [29caf8651ad] temp-transform-conversions-split: Transform: Move Cursor Conversion to its own file

mano-wii noreply at git.blender.org
Wed Sep 4 20:48:09 CEST 2019


Commit: 29caf8651ada6557712da9c8158f5b3a4d2532cd
Author: mano-wii
Date:   Wed Sep 4 15:40:03 2019 -0300
Branches: temp-transform-conversions-split
https://developer.blender.org/rB29caf8651ada6557712da9c8158f5b3a4d2532cd

Transform: Move Cursor Conversion to its own file

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

M	source/blender/editors/transform/CMakeLists.txt
M	source/blender/editors/transform/transform_conversions.c
M	source/blender/editors/transform/transform_conversions.h
A	source/blender/editors/transform/transform_conversions_cursor.c

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

diff --git a/source/blender/editors/transform/CMakeLists.txt b/source/blender/editors/transform/CMakeLists.txt
index 78c358bb0cd..d8e86692acf 100644
--- a/source/blender/editors/transform/CMakeLists.txt
+++ b/source/blender/editors/transform/CMakeLists.txt
@@ -42,6 +42,7 @@ set(SRC
   transform_constraints.c
   transform_conversions.c
   transform_conversions_armature.c
+  transform_conversions_cursor.c
   transform_conversions_mesh.c
   transform_generics.c
   transform_gizmo_2d.c
diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c
index a9c3098d7ac..8b8ac262143 100644
--- a/source/blender/editors/transform/transform_conversions.c
+++ b/source/blender/editors/transform/transform_conversions.c
@@ -420,100 +420,6 @@ static void createTransTexspace(TransInfo *t)
   copy_v3_v3(td->ext->isize, td->ext->size);
 }
 
-/* -------------------------------------------------------------------- */
-/** \name Cursor Transform Creation
- *
- * Instead of transforming the selection, move the 2D/3D cursor.
- *
- * \{ */
-
-static void createTransCursor_image(TransInfo *t)
-{
-  TransData *td;
-  SpaceImage *sima = t->sa->spacedata.first;
-  float *cursor_location = sima->cursor;
-
-  {
-    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, cursor_location);
-  td->ob = NULL;
-
-  unit_m3(td->mtx);
-  unit_m3(td->axismtx);
-  pseudoinverse_m3_m3(td->smtx, td->mtx, PSEUDOINVERSE_EPSILON);
-
-  td->loc = cursor_location;
-  copy_v3_v3(td->iloc, cursor_location);
-}
-
-static void createTransCursor_view3d(TransInfo *t)
-{
-  TransData *td;
-
-  Scene *scene = t->scene;
-  if (ID_IS_LINKED(scene)) {
-    BKE_report(t->reports, RPT_ERROR, "Linked data can't text-space transform");
-    return;
-  }
-
-  View3DCursor *cursor = &scene->cursor;
-  {
-    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, cursor->location);
-  td->ob = NULL;
-
-  unit_m3(td->mtx);
-  BKE_scene_cursor_rot_to_mat3(cursor, td->axismtx);
-  normalize_m3(td->axismtx);
-  pseudoinverse_m3_m3(td->smtx, td->mtx, PSEUDOINVERSE_EPSILON);
-
-  td->loc = cursor->location;
-  copy_v3_v3(td->iloc, cursor->location);
-
-  if (cursor->rotation_mode > 0) {
-    td->ext->rot = cursor->rotation_euler;
-    td->ext->rotAxis = NULL;
-    td->ext->rotAngle = NULL;
-    td->ext->quat = NULL;
-
-    copy_v3_v3(td->ext->irot, cursor->rotation_euler);
-  }
-  else if (cursor->rotation_mode == ROT_MODE_AXISANGLE) {
-    td->ext->rot = NULL;
-    td->ext->rotAxis = cursor->rotation_axis;
-    td->ext->rotAngle = &cursor->rotation_angle;
-    td->ext->quat = NULL;
-
-    td->ext->irotAngle = cursor->rotation_angle;
-    copy_v3_v3(td->ext->irotAxis, cursor->rotation_axis);
-  }
-  else {
-    td->ext->rot = NULL;
-    td->ext->rotAxis = NULL;
-    td->ext->rotAngle = NULL;
-    td->ext->quat = cursor->rotation_quaternion;
-
-    copy_qt_qt(td->ext->iquat, cursor->rotation_quaternion);
-  }
-  td->ext->rotOrder = cursor->rotation_mode;
-}
-
-/** \} */
-
 /* ********************* edge (for crease) ***** */
 
 static void createTransEdge(TransInfo *t)
diff --git a/source/blender/editors/transform/transform_conversions.h b/source/blender/editors/transform/transform_conversions.h
index a82da959f6a..50fa9071a8e 100644
--- a/source/blender/editors/transform/transform_conversions.h
+++ b/source/blender/editors/transform/transform_conversions.h
@@ -54,6 +54,10 @@ void restoreBones(TransDataContainer *tc);
 void createTransPose(TransInfo *t);
 void createTransArmatureVerts(TransInfo *t);
 
+/* transform_conversions_cursor.c */
+void createTransCursor_image(TransInfo *t);
+void createTransCursor_view3d(TransInfo *t);
+
 /* transform_conversions_mesh.c */
 void createTransEditVerts(TransInfo *t);
 #endif
diff --git a/source/blender/editors/transform/transform_conversions_cursor.c b/source/blender/editors/transform/transform_conversions_cursor.c
new file mode 100644
index 00000000000..f8abb99a0b4
--- /dev/null
+++ b/source/blender/editors/transform/transform_conversions_cursor.c
@@ -0,0 +1,129 @@
+/*
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
+ * All rights reserved.
+ */
+
+/** \file
+ * \ingroup edtransform
+ */
+
+#include "DNA_space_types.h"
+
+#include "MEM_guardedalloc.h"
+
+#include "BLI_math.h"
+
+#include "BKE_context.h"
+#include "BKE_report.h"
+#include "BKE_scene.h"
+
+#include "transform.h"
+#include "transform_conversions.h"
+
+/* -------------------------------------------------------------------- */
+/** \name Cursor Transform Creation
+ *
+ * Instead of transforming the selection, move the 2D/3D cursor.
+ *
+ * \{ */
+
+void createTransCursor_image(TransInfo *t)
+{
+  TransData *td;
+  SpaceImage *sima = t->sa->spacedata.first;
+  float *cursor_location = sima->cursor;
+
+  {
+    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, cursor_location);
+  td->ob = NULL;
+
+  unit_m3(td->mtx);
+  unit_m3(td->axismtx);
+  pseudoinverse_m3_m3(td->smtx, td->mtx, PSEUDOINVERSE_EPSILON);
+
+  td->loc = cursor_location;
+  copy_v3_v3(td->iloc, cursor_location);
+}
+
+void createTransCursor_view3d(TransInfo *t)
+{
+  TransData *td;
+
+  Scene *scene = t->scene;
+  if (ID_IS_LINKED(scene)) {
+    BKE_report(t->reports, RPT_ERROR, "Linked data can't text-space transform");
+    return;
+  }
+
+  View3DCursor *cursor = &scene->cursor;
+  {
+    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, cursor->location);
+  td->ob = NULL;
+
+  unit_m3(td->mtx);
+  BKE_scene_cursor_rot_to_mat3(cursor, td->axismtx);
+  normalize_m3(td->axismtx);
+  pseudoinverse_m3_m3(td->smtx, td->mtx, PSEUDOINVERSE_EPSILON);
+
+  td->loc = cursor->location;
+  copy_v3_v3(td->iloc, cursor->location);
+
+  if (cursor->rotation_mode > 0) {
+    td->ext->rot = cursor->rotation_euler;
+    td->ext->rotAxis = NULL;
+    td->ext->rotAngle = NULL;
+    td->ext->quat = NULL;
+
+    copy_v3_v3(td->ext->irot, cursor->rotation_euler);
+  }
+  else if (cursor->rotation_mode == ROT_MODE_AXISANGLE) {
+    td->ext->rot = NULL;
+    td->ext->rotAxis = cursor->rotation_axis;
+    td->ext->rotAngle = &cursor->rotation_angle;
+    td->ext->quat = NULL;
+
+    td->ext->irotAngle = cursor->rotation_angle;
+    copy_v3_v3(td->ext->irotAxis, cursor->rotation_axis);
+  }
+  else {
+    td->ext->rot = NULL;
+    td->ext->rotAxis = NULL;
+    td->ext->rotAngle = NULL;
+    td->ext->quat = cursor->rotation_quaternion;
+
+    copy_qt_qt(td->ext->iquat, cursor->rotation_quaternion);
+  }
+  td->ext->rotOrder = cursor->rotation_mode;
+}
+
+/** \} */



More information about the Bf-blender-cvs mailing list