[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [59722] trunk/blender/source/blender: fix odd (intentional) behavior with vertex parent,

Campbell Barton ideasman42 at gmail.com
Mon Sep 2 00:38:42 CEST 2013


Revision: 59722
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=59722
Author:   campbellbarton
Date:     2013-09-01 22:38:41 +0000 (Sun, 01 Sep 2013)
Log Message:
-----------
fix odd (intentional) behavior with vertex parent,
curve children of a triangle vertex parent would only display their relationship line to the first vertex. (confusing)

also added OB_TYPE_SUPPORT_PARVERT macro.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/object.c
    trunk/blender/source/blender/editors/object/object_relations.c
    trunk/blender/source/blender/makesdna/DNA_object_types.h
    trunk/blender/source/blender/makesrna/intern/rna_object.c

Modified: trunk/blender/source/blender/blenkernel/intern/object.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/object.c	2013-09-01 22:01:21 UTC (rev 59721)
+++ trunk/blender/source/blender/blenkernel/intern/object.c	2013-09-01 22:38:41 UTC (rev 59722)
@@ -2013,30 +2013,24 @@
 
 static void ob_parvert3(Object *ob, Object *par, float mat[4][4])
 {
-	float cmat[3][3], v1[3], v2[3], v3[3], q[4];
 
 	/* in local ob space */
-	unit_m4(mat);
-	
-	if (ELEM4(par->type, OB_MESH, OB_SURF, OB_CURVE, OB_LATTICE)) {
-		
+	if (OB_TYPE_SUPPORT_PARVERT(par->type)) {
+		float cmat[3][3], v1[3], v2[3], v3[3], q[4];
+
 		give_parvert(par, ob->par1, v1);
 		give_parvert(par, ob->par2, v2);
 		give_parvert(par, ob->par3, v3);
-				
+
 		tri_to_quat(q, v1, v2, v3);
 		quat_to_mat3(cmat, q);
 		copy_m4_m3(mat, cmat);
-		
-		if (ob->type == OB_CURVE) {
-			copy_v3_v3(mat[3], v1);
-		}
-		else {
-			add_v3_v3v3(mat[3], v1, v2);
-			add_v3_v3(mat[3], v3);
-			mul_v3_fl(mat[3], 1.0f / 3.0f);
-		}
+
+		mid_v3_v3v3v3(mat[3], v1, v2, v3);
 	}
+	else {
+		unit_m4(mat);
+	}
 }
 
 /**

Modified: trunk/blender/source/blender/editors/object/object_relations.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_relations.c	2013-09-01 22:01:21 UTC (rev 59721)
+++ trunk/blender/source/blender/editors/object/object_relations.c	2013-09-01 22:38:41 UTC (rev 59722)
@@ -904,7 +904,7 @@
 	}
 	
 	/* vertex parenting */
-	if (ELEM4(ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_LATTICE)) {
+	if (OB_TYPE_SUPPORT_PARVERT(ob->type)) {
 		uiItemEnumO_ptr(layout, ot, NULL, 0, "type", PAR_VERTEX);
 		uiItemEnumO_ptr(layout, ot, NULL, 0, "type", PAR_VERTEX_TRI);
 	}

Modified: trunk/blender/source/blender/makesdna/DNA_object_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_object_types.h	2013-09-01 22:01:21 UTC (rev 59721)
+++ trunk/blender/source/blender/makesdna/DNA_object_types.h	2013-09-01 22:38:41 UTC (rev 59722)
@@ -353,6 +353,8 @@
 	(ELEM(_type, OB_MESH, OB_LATTICE))
 #define OB_TYPE_SUPPORT_EDITMODE(_type) \
 	(ELEM7(_type, OB_MESH, OB_FONT, OB_CURVE, OB_SURF, OB_MBALL, OB_LATTICE, OB_ARMATURE))
+#define OB_TYPE_SUPPORT_PARVERT(_type) \
+	(ELEM4(_type, OB_MESH, OB_SURF, OB_CURVE, OB_LATTICE))
 
 /* is this ID type used as object data */
 #define OB_DATA_SUPPORT_ID(_id_type) \

Modified: trunk/blender/source/blender/makesrna/intern/rna_object.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_object.c	2013-09-01 22:01:21 UTC (rev 59721)
+++ trunk/blender/source/blender/makesrna/intern/rna_object.c	2013-09-01 22:38:41 UTC (rev 59722)
@@ -465,7 +465,7 @@
 			RNA_enum_items_add_value(&item, &totitem, parent_type_items, PARBONE);
 		}
 
-		if (ELEM4(par->type, OB_MESH, OB_CURVE, OB_SURF, OB_LATTICE)) {
+		if (OB_TYPE_SUPPORT_PARVERT(par->type)) {
 			RNA_enum_items_add_value(&item, &totitem, parent_type_items, PARVERT1);
 			RNA_enum_items_add_value(&item, &totitem, parent_type_items, PARVERT3);
 		}




More information about the Bf-blender-cvs mailing list