diff options
author | Germano Cavalcante <germano.costa@ig.com.br> | 2020-06-08 14:23:04 +0300 |
---|---|---|
committer | Germano Cavalcante <germano.costa@ig.com.br> | 2020-06-08 14:23:37 +0300 |
commit | 1c189aa70aff01f72ae1fc2eacefcf924ede62c7 (patch) | |
tree | d761b96ee31bb3f02d05ae4873251b72fea68668 /source/blender/editors/transform/transform.h | |
parent | 335c1e48ee5b3008fbae48b7de4d0f2b6b2f30b9 (diff) |
Fix T70873: Pivot Center doesn't compute mirror elements
Diffstat (limited to 'source/blender/editors/transform/transform.h')
-rw-r--r-- | source/blender/editors/transform/transform.h | 54 |
1 files changed, 26 insertions, 28 deletions
diff --git a/source/blender/editors/transform/transform.h b/source/blender/editors/transform/transform.h index cf8698ab0e8..2bda04ad811 100644 --- a/source/blender/editors/transform/transform.h +++ b/source/blender/editors/transform/transform.h @@ -204,29 +204,22 @@ typedef struct TransCustomDataContainer { #define TRANS_CUSTOM_DATA_ELEM_MAX (sizeof(TransCustomDataContainer) / sizeof(TransCustomData)) typedef struct TransDataContainer { - /** - * Use for cases we care about the active, eg: active vert of active mesh. - * if set this will _always_ be the first item in the array. - */ - bool is_active; - /** Transformed data (array). */ TransData *data; - /** Total number of transformed data. */ - int data_len; - /** Transformed data extension (array). */ TransDataExtension *data_ext; /** Transformed data for 2d (array). */ TransData2D *data_2d; + /** Transformed data for mirror elements (array). */ + TransDataMirror *data_mirror; + + /** Total number of transformed data, data_ext, data_2d. */ + int data_len; + /** Total number of transformed data_mirror. */ + int data_mirror_len; struct Object *obedit; - /** - * Store matrix, this avoids having to have duplicate check all over - * Typically: 'obedit->obmat' or 'poseobj->obmat', but may be used elsewhere too. - */ - bool use_local_mat; float mat[4][4]; float imat[4][4]; /** 3x3 copies of matrices above. */ @@ -243,22 +236,27 @@ typedef struct TransDataContainer { float center_local[3]; /** - * Mirror option + * Use for cases we care about the active, eg: active vert of active mesh. + * if set this will _always_ be the first item in the array. */ - struct { - union { - struct { - uint axis_x : 1; - uint axis_y : 1; - uint axis_z : 1; - }; - /* For easy checking. */ - char use_mirror_any; + bool is_active; + + /** + * Store matrix, this avoids having to have duplicate check all over + * Typically: 'obedit->obmat' or 'poseobj->obmat', but may be used elsewhere too. + */ + bool use_local_mat; + + /** Mirror option. */ + union { + struct { + uint use_mirror_axis_x : 1; + uint use_mirror_axis_y : 1; + uint use_mirror_axis_z : 1; }; - /** Mirror data array. */ - TransDataMirror *data; - int data_len; - } mirror; + /* For easy checking. */ + char use_mirror_axis_any; + }; TransCustomDataContainer custom; } TransDataContainer; |