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
path: root/source
diff options
context:
space:
mode:
authorMartin Poirier <theeth@yahoo.com>2008-01-29 05:38:26 +0300
committerMartin Poirier <theeth@yahoo.com>2008-01-29 05:38:26 +0300
commit14d1c736b8b6f4e59c51b316b735136e79004873 (patch)
tree3a161acfaa54de2a4fd8598a9c6bd879e42bee7d /source
parent8072d88c75cab6bbcd2baf3b484acdf43cb04b4e (diff)
=== Mirror Tool ===
Fix calls to new mirror in UV window (it would segfault with invalid arguments). Reported by Matt in the tracker (#8176)
Diffstat (limited to 'source')
-rw-r--r--source/blender/include/BIF_editsima.h1
-rw-r--r--source/blender/src/editsima.c23
-rw-r--r--source/blender/src/header_image.c13
3 files changed, 24 insertions, 13 deletions
diff --git a/source/blender/include/BIF_editsima.h b/source/blender/include/BIF_editsima.h
index c0e28d7b1f1..aba2430fe1f 100644
--- a/source/blender/include/BIF_editsima.h
+++ b/source/blender/include/BIF_editsima.h
@@ -65,7 +65,6 @@ void aspect_sima(struct SpaceImage *sima, float *x, float *y);
void select_invert_tface_uv(void);
void select_swap_tface_uv(void);
void mirrormenu_tface_uv(void);
-void mirror_tface_uv(char mirroraxis);
void hide_tface_uv(int swap);
void reveal_tface_uv(void);
void stitch_limit_uv_tface(void);
diff --git a/source/blender/src/editsima.c b/source/blender/src/editsima.c
index 0c29bceba37..73ff70436f3 100644
--- a/source/blender/src/editsima.c
+++ b/source/blender/src/editsima.c
@@ -240,17 +240,12 @@ void transform_width_height_tface_uv(int *width, int *height)
}
}
-void mirror_tface_uv(char mirroraxis)
-{
- if (mirroraxis == 'x')
- Mirror(1); /* global x */
- else if (mirroraxis == 'y')
- Mirror(2); /* global y */
-}
-
void mirrormenu_tface_uv(void)
{
+ float mat[3][3];
short mode= 0;
+
+ Mat3One(mat);
if( is_uv_tface_editing_allowed()==0 ) return;
@@ -258,8 +253,16 @@ void mirrormenu_tface_uv(void)
if(mode==-1) return;
- if(mode==1) mirror_tface_uv('x');
- else if(mode==2) mirror_tface_uv('y');
+ if (mode == 1) {
+ initTransform(TFM_MIRROR, CTX_NO_PET|CTX_AUTOCONFIRM);
+ BIF_setSingleAxisConstraint(mat[0], " on X axis");
+ Transform();
+ }
+ else {
+ initTransform(TFM_MIRROR, CTX_NO_PET|CTX_AUTOCONFIRM);
+ BIF_setSingleAxisConstraint(mat[1], " on Y axis");
+ Transform();
+ }
BIF_undo_push("Mirror UV");
}
diff --git a/source/blender/src/header_image.c b/source/blender/src/header_image.c
index 5b8c33309a0..1ec54423ab6 100644
--- a/source/blender/src/header_image.c
+++ b/source/blender/src/header_image.c
@@ -52,6 +52,7 @@
#include "DNA_userdef_types.h"
#include "DNA_customdata_types.h" /* for UV layer menu */
+#include "BLI_arithb.h"
#include "BLI_blenlib.h"
#include "BDR_drawmesh.h"
@@ -870,12 +871,20 @@ static uiBlock *image_uvs_transformmenu(void *arg_unused)
static void do_image_uvs_mirrormenu(void *arg, int event)
{
+ float mat[3][3];
+
+ Mat3One(mat);
+
switch(event) {
case 0: /* X axis */
- mirror_tface_uv('x');
+ initTransform(TFM_MIRROR, CTX_NO_PET|CTX_AUTOCONFIRM);
+ BIF_setSingleAxisConstraint(mat[0], " on global X axis");
+ Transform();
break;
case 1: /* Y axis */
- mirror_tface_uv('y');
+ initTransform(TFM_MIRROR, CTX_NO_PET|CTX_AUTOCONFIRM);
+ BIF_setSingleAxisConstraint(mat[1], " on global Y axis");
+ Transform();
break;
}