[Bf-blender-cvs] [1f2d886] wiggly-widgets: Various Cleanup

Julian Eisel noreply at git.blender.org
Fri Aug 21 12:59:37 CEST 2015


Commit: 1f2d886e032ad2400b6e5d45c0be6c52c62ee338
Author: Julian Eisel
Date:   Thu Aug 20 15:09:15 2015 +0200
Branches: wiggly-widgets
https://developer.blender.org/rB1f2d886e032ad2400b6e5d45c0be6c52c62ee338

Various Cleanup

===================================================================

M	source/blender/editors/object/object_lamp.c
M	source/blender/editors/transform/manipulator_widget.c

===================================================================

diff --git a/source/blender/editors/object/object_lamp.c b/source/blender/editors/object/object_lamp.c
index ffd6d0b..3602e35 100644
--- a/source/blender/editors/object/object_lamp.c
+++ b/source/blender/editors/object/object_lamp.c
@@ -230,7 +230,7 @@ void WIDGETGROUP_lamp_draw(const struct bContext *C, struct wmWidgetGroup *wgrou
 	
 	RNA_pointer_create(&la->id, &RNA_Lamp, la, &ptr);
 	WM_widget_set_origin(widget, ob->obmat[3]);
-	WM_widget_property(widget, ARROW_SLOT_OFFSET_WORLD_SPACE, &ptr, "spot_size");
+	WM_widget_property(widget, ARROW_SLOT_OFFSET_WORLD_SPACE, &ptr, propname);
 	negate_v3_v3(dir, ob->obmat[2]);
 	WIDGET_arrow_set_direction(widget, dir);
 }
diff --git a/source/blender/editors/transform/manipulator_widget.c b/source/blender/editors/transform/manipulator_widget.c
index e1ec041..341b797 100644
--- a/source/blender/editors/transform/manipulator_widget.c
+++ b/source/blender/editors/transform/manipulator_widget.c
@@ -161,8 +161,7 @@ enum {
 	{ \
 		wmWidget *axis; \
 		int axis_idx; \
-		for (axis_idx = 0; axis_idx < MAN_AXIS_LAST; axis_idx++) \
-		{ \
+		for (axis_idx = 0; axis_idx < MAN_AXIS_LAST; axis_idx++) { \
 			axis = manipulator_get_axis_from_index(man, axis_idx); \
 			if (!axis) continue;
 
@@ -970,8 +969,8 @@ void WIDGETGROUP_manipulator_draw(const struct bContext *C, struct wmWidgetGroup
 		return;
 
 
-	/* now we can define center */
 	manipulator_prepare_mat(CTX_data_scene(C), v3d, rv3d);
+	manipulator_drawflags_refresh(rv3d);
 
 	/* when looking through a selected camera, the manipulator can be at the
 	 * exact same position as the view, skip so we don't break selection */
@@ -988,12 +987,11 @@ void WIDGETGROUP_manipulator_draw(const struct bContext *C, struct wmWidgetGroup
 
 	/* *** set properties for axes *** */
 
-	manipulator_drawflags_refresh(rv3d);
-
 	MAN_ITER_AXES_BEGIN
 	{
-		const short atype = manipulator_get_axis_type(man, axis);
+		const short axis_type = manipulator_get_axis_type(man, axis);
 		const int aidx_norm = manipulator_index_normalize(axis_idx);
+		float line_vec[2][3];
 		float col[4];
 
 		if (manipulator_is_axis_visible(rv3d, axis_idx) == false) {
@@ -1002,61 +1000,52 @@ void WIDGETGROUP_manipulator_draw(const struct bContext *C, struct wmWidgetGroup
 		}
 
 		manipulator_get_axis_color(rv3d, axis_idx, col);
-
-		/* should be added according to the order of axis */
 		WM_widget_set_origin(axis, rv3d->twmat[3]);
-		switch(atype) {
-			case MAN_AXES_TRANSLATE:
-				if (axis_idx == MAN_AXIS_TRANS_C) {
+
+		switch(axis_idx) {
+			case MAN_AXIS_TRANS_X:
+			case MAN_AXIS_TRANS_Y:
+			case MAN_AXIS_TRANS_Z:
+			case MAN_AXIS_SCALE_X:
+			case MAN_AXIS_SCALE_Y:
+			case MAN_AXIS_SCALE_Z:
+				manipulator_line_vec(v3d, line_vec, axis_type);
+
+				WIDGET_arrow_set_direction(axis, rv3d->twmat[aidx_norm]);
+				WIDGET_arrow_set_color(axis, col);
+				WIDGET_arrow_set_line_vec(axis, (const float (*)[3])line_vec, ARRAY_SIZE(line_vec));
+				WM_widget_set_line_width(axis, MAN_AXIS_LINE_WIDTH);
+				break;
+			case MAN_AXIS_ROT_X:
+			case MAN_AXIS_ROT_Y:
+			case MAN_AXIS_ROT_Z:
+				WM_widget_set_line_width(axis, MAN_AXIS_LINE_WIDTH);
+				WIDGET_dial_set_direction(axis, rv3d->twmat[aidx_norm]);
+				WIDGET_dial_set_color(axis, col);
+				break;
+			case MAN_AXIS_TRANS_C:
+			case MAN_AXIS_ROT_C:
+			case MAN_AXIS_SCALE_C:
+				/* only draw if there isn't already a circle for translate */
+				if (axis_idx == MAN_AXIS_SCALE_C && (v3d->twtype & V3D_MANIP_TRANSLATE)) {
+					WM_widget_flag_set(axis, WM_WIDGET_HIDDEN, true);
+				}
+				else if (axis_idx != MAN_AXIS_ROT_C) {
 					WM_widget_set_scale(axis, 0.2f);
-					WIDGET_dial_set_direction(axis, rv3d->viewinv[2]);
-					WIDGET_dial_set_color(axis, col);
 				}
-				else {
-					float line_vec[2][3];
-
-					manipulator_line_vec(v3d, line_vec, atype);
+				WIDGET_dial_set_direction(axis, rv3d->viewinv[2]);
+				WIDGET_dial_set_color(axis, col);
+				break;
+		}
 
-					WM_widget_set_line_width(axis, MAN_AXIS_LINE_WIDTH);
-					WIDGET_arrow_set_direction(axis, rv3d->twmat[aidx_norm]);
-					WIDGET_arrow_set_color(axis, col);
-					WIDGET_arrow_set_line_vec(axis, (const float (*)[3])line_vec, ARRAY_SIZE(line_vec));
-				}
+		switch (axis_type) {
+			case MAN_AXES_TRANSLATE:
 				WM_widget_operator(axis, "TRANSFORM_OT_translate");
 				break;
 			case MAN_AXES_ROTATE:
-				if (axis_idx == MAN_AXIS_ROT_C) {
-					WIDGET_dial_set_direction(axis, rv3d->viewinv[2]);
-				}
-				else {
-					WM_widget_set_line_width(axis, MAN_AXIS_LINE_WIDTH);
-					WIDGET_dial_set_direction(axis, rv3d->twmat[aidx_norm]);
-				}
-				WIDGET_dial_set_color(axis, col);
 				WM_widget_operator(axis, "TRANSFORM_OT_rotate");
 				break;
 			case MAN_AXES_SCALE:
-				if (axis_idx == MAN_AXIS_SCALE_C) {
-					/* only draw if there isn't already a circle for translate */
-					if ((v3d->twtype & V3D_MANIP_TRANSLATE)) {
-						WM_widget_flag_set(axis, WM_WIDGET_HIDDEN, true);
-					}
-					else {
-						WM_widget_set_scale(axis, 0.2f);
-						WIDGET_dial_set_direction(axis, rv3d->viewinv[2]);
-						WIDGET_dial_set_color(axis, col);
-					}
-				}
-				else {
-					float line_vec[2][3];
-
-					manipulator_line_vec(v3d, line_vec, atype);
-
-					WM_widget_set_line_width(axis, MAN_AXIS_LINE_WIDTH);
-					WIDGET_arrow_set_direction(axis, rv3d->twmat[aidx_norm]);
-					WIDGET_arrow_set_color(axis, col);
-					WIDGET_arrow_set_line_vec(axis, (const float (*)[3])line_vec, ARRAY_SIZE(line_vec));
-				}
 				WM_widget_operator(axis, "TRANSFORM_OT_resize");
 				break;
 		}




More information about the Bf-blender-cvs mailing list