Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGermano Cavalcante <germano.costa@ig.com.br>2020-06-08 14:23:04 +0300
committerGermano Cavalcante <germano.costa@ig.com.br>2020-06-08 14:23:37 +0300
commit1c189aa70aff01f72ae1fc2eacefcf924ede62c7 (patch)
treed761b96ee31bb3f02d05ae4873251b72fea68668 /source/blender/editors/transform/transform_data.h
parent335c1e48ee5b3008fbae48b7de4d0f2b6b2f30b9 (diff)
Fix T70873: Pivot Center doesn't compute mirror elements
Diffstat (limited to 'source/blender/editors/transform/transform_data.h')
-rw-r--r--source/blender/editors/transform/transform_data.h40
1 files changed, 21 insertions, 19 deletions
diff --git a/source/blender/editors/transform/transform_data.h b/source/blender/editors/transform/transform_data.h
index 0ee75b8e7f9..bc95fdad59c 100644
--- a/source/blender/editors/transform/transform_data.h
+++ b/source/blender/editors/transform/transform_data.h
@@ -27,16 +27,28 @@
struct bConstraint;
struct Object;
+#define TRANSDATABASIC \
+ /** Extra data (mirrored element pointer, in editmode mesh to BMVert) \
+ * (editbone for roll fixing) (...). */ \
+ void *extra; \
+ /** Location of the data to transform. */ \
+ float *loc; \
+ /** Initial location. */ \
+ float iloc[3]; \
+ /** Individual data center. */ \
+ float center[3]; \
+ /** Various flags. */ \
+ int flag
+
+typedef struct TransDataBasic {
+ TRANSDATABASIC;
+} TransDataBasic;
+
typedef struct TransDataMirror {
- /** location of mirrored reference data. */
- const float *loc_src;
+ TRANSDATABASIC;
+ // int pad;
/** Location of the data to transform. */
- float *loc_dst;
- void *extra;
- /* `sign` can be -2, -1, 0 or 1. */
- int sign_x : 2;
- int sign_y : 2;
- int sign_z : 2;
+ float *loc_src;
} TransDataMirror;
typedef struct TransDataExtension {
@@ -108,22 +120,17 @@ typedef struct TransDataCurveHandleFlags {
} TransDataCurveHandleFlags;
typedef struct TransData {
+ TRANSDATABASIC;
/** Distance needed to affect element (for Proportionnal Editing). */
float dist;
/** Distance to the nearest element (for Proportionnal Editing). */
float rdist;
/** Factor of the transformation (for Proportionnal Editing). */
float factor;
- /** Location of the data to transform. */
- float *loc;
- /** Initial location. */
- float iloc[3];
/** Value pointer for special transforms. */
float *val;
/** Old value. */
float ival;
- /** Individual data center. */
- float center[3];
/** Transformation matrix from data space to global space. */
float mtx[3][3];
/** Transformation matrix from global space to data space. */
@@ -137,11 +144,6 @@ typedef struct TransData {
TransDataExtension *ext;
/** for curves, stores handle flags for modification/cancel. */
TransDataCurveHandleFlags *hdata;
- /** Extra data (mirrored element pointer, in editmode mesh to BMVert)
- * (editbone for roll fixing) (...). */
- void *extra;
- /** Various flags. */
- int flag;
/** If set, copy of Object or PoseChannel protection. */
short protectflag;
} TransData;