[Bf-blender-cvs] [ba76f0c] master: Lattice: add-object radius should never scale data

Campbell Barton noreply at git.blender.org
Tue Oct 28 15:56:01 CET 2014


Commit: ba76f0c6a29e3955ead99b32d2fb41c534c1dbc5
Author: Campbell Barton
Date:   Tue Oct 28 15:53:31 2014 +0100
Branches: master
https://developer.blender.org/rBba76f0c6a29e3955ead99b32d2fb41c534c1dbc5

Lattice: add-object radius should never scale data

own error, lattice assumes rest state is unscaled data,
scaling needs to be done in object mode.

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

M	source/blender/editors/object/object_add.c

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

diff --git a/source/blender/editors/object/object_add.c b/source/blender/editors/object/object_add.c
index 8972dd7..24dcf85 100644
--- a/source/blender/editors/object/object_add.c
+++ b/source/blender/editors/object/object_add.c
@@ -449,14 +449,23 @@ static int object_add_exec(bContext *C, wmOperator *op)
 	Object *ob;
 	bool enter_editmode;
 	unsigned int layer;
-	float loc[3], rot[3];
+	float loc[3], rot[3], radius;
 
 	WM_operator_view3d_unit_defaults(C, op);
 	if (!ED_object_add_generic_get_opts(C, op, 'Z', loc, rot, &enter_editmode, &layer, NULL))
 		return OPERATOR_CANCELLED;
 
+	radius = RNA_float_get(op->ptr, "radius");
 	ob = ED_object_add_type(C, RNA_enum_get(op->ptr, "type"), loc, rot, enter_editmode, layer);
-	BKE_object_obdata_size_init(ob, RNA_float_get(op->ptr, "radius"));
+
+	if (ob->type == OB_LATTICE) {
+		/* lattice is a special case!
+		 * we never want to scale the obdata since that is the rest-state */
+		copy_v3_fl(ob->size, radius);
+	}
+	else {
+		BKE_object_obdata_size_init(ob, radius);
+	}
 
 	return OPERATOR_FINISHED;
 }




More information about the Bf-blender-cvs mailing list