[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