[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [18722] branches/blender2.5/blender/source /blender: 2.5:
Brecht Van Lommel
brecht at blender.org
Wed Jan 28 22:43:48 CET 2009
Revision: 18722
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18722
Author: blendix
Date: 2009-01-28 22:43:43 +0100 (Wed, 28 Jan 2009)
Log Message:
-----------
2.5:
* UV Editor Transform, translate, rotate, scale, live unwrap, snap, gesture,
etc work.
* Also for selection operators, used OPERATOR_FINISHED|OPERATOR_PASS_THROUGH
instead of just OPERATOR_PASS_THROUGH to make gestures work, seems more
correct to me.
Modified Paths:
--------------
branches/blender2.5/blender/source/blender/editors/include/ED_uvedit.h
branches/blender2.5/blender/source/blender/editors/space_image/image_header.c
branches/blender2.5/blender/source/blender/editors/space_image/image_intern.h
branches/blender2.5/blender/source/blender/editors/space_image/space_image.c
branches/blender2.5/blender/source/blender/editors/space_ipo/ipo_select.c
branches/blender2.5/blender/source/blender/editors/space_node/node_select.c
branches/blender2.5/blender/source/blender/editors/transform/transform.c
branches/blender2.5/blender/source/blender/editors/transform/transform_conversions.c
branches/blender2.5/blender/source/blender/editors/transform/transform_generics.c
branches/blender2.5/blender/source/blender/editors/transform/transform_ops.c
branches/blender2.5/blender/source/blender/editors/transform/transform_snap.c
branches/blender2.5/blender/source/blender/editors/uvedit/uvedit_intern.h
branches/blender2.5/blender/source/blender/editors/uvedit/uvedit_ops.c
branches/blender2.5/blender/source/blender/editors/uvedit/uvedit_unwrap_ops.c
branches/blender2.5/blender/source/blender/makesrna/intern/rna_space.c
Added Paths:
-----------
branches/blender2.5/blender/source/blender/editors/include/ED_image.h
Added: branches/blender2.5/blender/source/blender/editors/include/ED_image.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/include/ED_image.h (rev 0)
+++ branches/blender2.5/blender/source/blender/editors/include/ED_image.h 2009-01-28 21:43:43 UTC (rev 18722)
@@ -0,0 +1,39 @@
+/**
+ * $Id:
+ *
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * The Original Code is Copyright (C) 2008 Blender Foundation.
+ * All rights reserved.
+ *
+ * Contributor(s): Blender Foundation
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+#ifndef ED_IMAGE_H
+#define ED_IMAGE_H
+
+struct SpaceImage;
+
+/* space_image.c, exported for transform */
+struct Image *ED_space_image(struct SpaceImage *sima);
+void ED_space_image_size(struct SpaceImage *sima, int *width, int *height);
+void ED_space_image_uv_aspect(struct SpaceImage *sima, float *aspx, float *aspy);
+
+#endif /* ED_IMAGE_H */
+
Modified: branches/blender2.5/blender/source/blender/editors/include/ED_uvedit.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/include/ED_uvedit.h 2009-01-28 19:42:49 UTC (rev 18721)
+++ branches/blender2.5/blender/source/blender/editors/include/ED_uvedit.h 2009-01-28 21:43:43 UTC (rev 18722)
@@ -30,6 +30,8 @@
struct Scene;
struct Object;
+struct MTFace;
+struct EditFace;
struct Image;
struct wmWindowManager;
@@ -41,5 +43,20 @@
void ED_uvedit_set_tile(struct Scene *scene, struct Object *obedit, struct Image *ima, int curtile, int dotile);
int ED_uvedit_minmax(struct Scene *scene, struct Image *ima, struct Object *obedit, float *min, float *max);
+int ED_uvedit_test_silent(struct Object *obedit);
+int ED_uvedit_test(struct Object *obedit);
+
+int uvedit_face_visible(struct Scene *scene, struct Image *ima, struct EditFace *efa, struct MTFace *tf);
+int uvedit_face_selected(struct Scene *scene, struct EditFace *efa, struct MTFace *tf);
+int uvedit_edge_selected(struct Scene *scene, struct EditFace *efa, struct MTFace *tf, int i);
+int uvedit_uv_selected(struct Scene *scene, struct EditFace *efa, struct MTFace *tf, int i);
+
+int ED_uvedit_nearest_uv(struct Scene *scene, struct Object *obedit, struct Image *ima, float co[2], float uv[2]);
+
+/* uvedit_unwrap.c */
+void ED_uvedit_live_unwrap_begin(struct Scene *scene, struct Object *obedit);
+void ED_uvedit_live_unwrap_re_solve(void);
+void ED_uvedit_live_unwrap_end(short cancel);
+
#endif /* ED_UVEDIT_H */
Modified: branches/blender2.5/blender/source/blender/editors/space_image/image_header.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_image/image_header.c 2009-01-28 19:42:49 UTC (rev 18721)
+++ branches/blender2.5/blender/source/blender/editors/space_image/image_header.c 2009-01-28 21:43:43 UTC (rev 18722)
@@ -662,10 +662,6 @@
static void do_uvsmenu(bContext *C, void *arg, int event)
{
switch(event) {
- case 1: /* UVs Constrained Rectangular */
- if(sima->flag & SI_BE_SQUARE) sima->flag &= ~SI_BE_SQUARE;
- else sima->flag |= SI_BE_SQUARE;
- break;
case 2: /* UVs Clipped to Image Size */
if(sima->flag & SI_CLIP_UV) sima->flag &= ~SI_CLIP_UV;
else sima->flag |= SI_CLIP_UV;
@@ -727,7 +723,6 @@
block= uiBeginBlock(C, handle->region, "image_imagemenu", UI_EMBOSSP, UI_HELV);
uiDefMenuTogR(block, &uvptr, "snap_to_pixels", 0, NULL);
- uiDefMenuTogR(block, &uvptr, "constrain_quads_rectangular", 0, NULL);
uiDefMenuTogR(block, &uvptr, "constrain_to_image_bounds", 0, NULL);
uiDefMenuSep(block);
Modified: branches/blender2.5/blender/source/blender/editors/space_image/image_intern.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_image/image_intern.h 2009-01-28 19:42:49 UTC (rev 18721)
+++ branches/blender2.5/blender/source/blender/editors/space_image/image_intern.h 2009-01-28 21:43:43 UTC (rev 18722)
@@ -47,6 +47,7 @@
void get_space_image_size(struct SpaceImage *sima, int *width, int *height);
void get_space_image_aspect(struct SpaceImage *sima, float *aspx, float *aspy);
void get_space_image_zoom(struct SpaceImage *sima, struct ARegion *ar, float *zoomx, float *zoomy);
+void get_space_image_uv_aspect(struct SpaceImage *sima, float *aspx, float *aspy);
int get_space_image_show_render(struct SpaceImage *sima);
int get_space_image_show_paint(struct SpaceImage *sima);
Modified: branches/blender2.5/blender/source/blender/editors/space_image/space_image.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_image/space_image.c 2009-01-28 19:42:49 UTC (rev 18721)
+++ branches/blender2.5/blender/source/blender/editors/space_image/space_image.c 2009-01-28 21:43:43 UTC (rev 18722)
@@ -53,6 +53,7 @@
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
+#include "ED_image.h"
#include "ED_mesh.h"
#include "ED_space_api.h"
#include "ED_screen.h"
@@ -547,6 +548,17 @@
*zoomy= (float)(ar->winrct.ymax - ar->winrct.ymin)/(float)((ar->v2d.cur.ymax - ar->v2d.cur.ymin)*height);
}
+void get_space_image_uv_aspect(SpaceImage *sima, float *aspx, float *aspy)
+{
+ int w, h;
+
+ get_space_image_aspect(sima, aspx, aspy);
+ get_space_image_size(sima, &w, &h);
+
+ *aspx *= (float)w;
+ *aspy *= (float)h;
+}
+
int get_space_image_show_render(SpaceImage *sima)
{
return (sima->image && ELEM(sima->image->type, IMA_TYPE_R_RESULT, IMA_TYPE_COMPOSITE));
@@ -585,3 +597,21 @@
return 0;
}
+/* Exported Functions */
+
+Image *ED_space_image(SpaceImage *sima)
+{
+ return get_space_image(sima);
+}
+
+void ED_space_image_size(SpaceImage *sima, int *width, int *height)
+{
+ get_space_image_size(sima, width, height);
+}
+
+void ED_space_image_uv_aspect(SpaceImage *sima, float *aspx, float *aspy)
+{
+ get_space_image_uv_aspect(sima, aspx, aspy);
+}
+
+
Modified: branches/blender2.5/blender/source/blender/editors/space_ipo/ipo_select.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_ipo/ipo_select.c 2009-01-28 19:42:49 UTC (rev 18721)
+++ branches/blender2.5/blender/source/blender/editors/space_ipo/ipo_select.c 2009-01-28 21:43:43 UTC (rev 18722)
@@ -871,7 +871,7 @@
ANIM_animdata_send_notifiers(C, &ac, ANIM_CHANGED_BOTH);
/* for tweak grab to work */
- return OPERATOR_PASS_THROUGH;
+ return OPERATOR_FINISHED|OPERATOR_PASS_THROUGH;
}
void GRAPHEDIT_OT_keyframes_clickselect (wmOperatorType *ot)
Modified: branches/blender2.5/blender/source/blender/editors/space_node/node_select.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_node/node_select.c 2009-01-28 19:42:49 UTC (rev 18721)
+++ branches/blender2.5/blender/source/blender/editors/space_node/node_select.c 2009-01-28 21:43:43 UTC (rev 18722)
@@ -127,7 +127,7 @@
WM_event_add_notifier(C, NC_SCENE|ND_NODES, NULL); /* Do we need to pass the scene? */
/* allow tweak event to work too */
- return OPERATOR_PASS_THROUGH;
+ return OPERATOR_FINISHED|OPERATOR_PASS_THROUGH;
}
static int node_select_modal(bContext *C, wmOperator *op, wmEvent *event)
Modified: branches/blender2.5/blender/source/blender/editors/transform/transform.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/transform/transform.c 2009-01-28 19:42:49 UTC (rev 18721)
+++ branches/blender2.5/blender/source/blender/editors/transform/transform.c 2009-01-28 21:43:43 UTC (rev 18722)
@@ -76,7 +76,6 @@
//#include "BIF_editmesh.h"
//#include "BIF_editsima.h"
//#include "BIF_editparticle.h"
-//#include "BIF_drawimage.h" /* uvco_to_areaco_noclip */
//#include "BIF_editaction.h"
#include "BKE_action.h" /* get_action_frame */
@@ -96,10 +95,11 @@
//#include "BSE_time.h"
//#include "BSE_view.h"
-#include "ED_view3d.h"
+#include "ED_image.h"
#include "ED_screen.h"
-#include "ED_util.h"
#include "ED_space_api.h"
+#include "ED_util.h"
+#include "ED_view3d.h"
#include "UI_view2d.h"
#include "WM_types.h"
@@ -192,9 +192,7 @@
View2D *v2d = t->view;
float divx, divy, aspx, aspy;
- // TRANSFORM_FIX_ME
- //transform_aspect_ratio_tface_uv(&aspx, &aspy);
- aspx= aspy= 1.0f;
+ ED_space_image_uv_aspect(t->sa->spacedata.first, &aspx, &aspy);
divx= v2d->mask.xmax-v2d->mask.xmin;
divy= v2d->mask.ymax-v2d->mask.ymin;
@@ -246,13 +244,11 @@
else if(t->spacetype==SPACE_IMAGE) {
float aspx, aspy, v[2];
- // TRANSFORM_FIX_ME
- //transform_aspect_ratio_tface_uv(&aspx, &aspy);
+ ED_space_image_uv_aspect(t->sa->spacedata.first, &aspx, &aspy);
v[0]= vec[0]/aspx;
v[1]= vec[1]/aspy;
- // TRANSFORM_FIX_ME
- //uvco_to_areaco_noclip(v, adr);
+ UI_view2d_to_region_no_clip(t->view, v[0], v[1], adr, adr+1);
}
else if(t->spacetype==SPACE_IPO) {
int out[2] = {0, 0};
@@ -293,46 +289,44 @@
void applyAspectRatio(TransInfo *t, float *vec)
{
-#if 0 // TRANSFORM_FIX_ME
- TransInfo *t = BIF_GetTransInfo();
+ SpaceImage *sima= t->sa->spacedata.first;
if ((t->spacetype==SPACE_IMAGE) && (t->mode==TFM_TRANSLATION)) {
float aspx, aspy;
- if((G.sima->flag & SI_COORDFLOATS)==0) {
+ if((sima->flag & SI_COORDFLOATS)==0) {
int width, height;
- transform_width_height_tface_uv(&width, &height);
+ ED_space_image_size(sima, &width, &height);
vec[0] *= width;
vec[1] *= height;
}
- transform_aspect_ratio_tface_uv(&aspx, &aspy);
+ ED_space_image_uv_aspect(sima, &aspx, &aspy);
vec[0] /= aspx;
vec[1] /= aspy;
}
-#endif
}
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list