[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