[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19958] branches/ge_dev/source/blender: ITASC: add solver selection button (nothing behind yet).

Benoit Bolsee benoit.bolsee at online.be
Tue Apr 28 15:56:25 CEST 2009


Revision: 19958
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19958
Author:   ben2610
Date:     2009-04-28 15:56:24 +0200 (Tue, 28 Apr 2009)

Log Message:
-----------
ITASC: add solver selection button (nothing behind yet).

Modified Paths:
--------------
    branches/ge_dev/source/blender/include/butspace.h
    branches/ge_dev/source/blender/makesdna/DNA_armature_types.h
    branches/ge_dev/source/blender/src/buttons_object.c

Modified: branches/ge_dev/source/blender/include/butspace.h
===================================================================
--- branches/ge_dev/source/blender/include/butspace.h	2009-04-28 13:32:02 UTC (rev 19957)
+++ branches/ge_dev/source/blender/include/butspace.h	2009-04-28 13:56:24 UTC (rev 19958)
@@ -709,6 +709,7 @@
 enum {
 	B_CONSTRAINT_TEST = 3201,
 	B_CONSTRAINT_CHANGETARGET,
+	B_CONSTRAINT_CHANGEIKSOLVER,
 	B_CONSTRAINT_ADD_NULL,
 	B_CONSTRAINT_ADD_KINEMATIC,
 	B_CONSTRAINT_ADD_TRACKTO,

Modified: branches/ge_dev/source/blender/makesdna/DNA_armature_types.h
===================================================================
--- branches/ge_dev/source/blender/makesdna/DNA_armature_types.h	2009-04-28 13:32:02 UTC (rev 19957)
+++ branches/ge_dev/source/blender/makesdna/DNA_armature_types.h	2009-04-28 13:56:24 UTC (rev 19958)
@@ -81,6 +81,8 @@
 	int			ghostsf, ghostef;		/* start and end frames of ghost-drawing range */
 	int 		pathsf, pathef;			/* start and end frames of path-calculation range for all bones */
 	int			pathbc, pathac;			/* number of frames before/after current frame of path-calculation for all bones  */
+	int			iksolver;				/* ik solver to use */
+	int			pad;
 } bArmature;
 
 /* armature->flag */
@@ -159,4 +161,9 @@
 	BONE_TRANSFORM_CHILD		= (1<<20),	/* Indicates that a parent is also being transformed */
 } eBone_Flag;
 
+/* bArmature->iksolver */
+typedef enum {
+	IKSOLVER_LEGACY = 0,
+	IKSOLVER_ITASC,
+} eArmature_IKSolverType;
 #endif

Modified: branches/ge_dev/source/blender/src/buttons_object.c
===================================================================
--- branches/ge_dev/source/blender/src/buttons_object.c	2009-04-28 13:32:02 UTC (rev 19957)
+++ branches/ge_dev/source/blender/src/buttons_object.c	2009-04-28 13:56:24 UTC (rev 19958)
@@ -1890,7 +1890,10 @@
 		/* influence; do not execute actions for 1 dag_flush */
 		if (ob->pose)
 			ob->pose->flag |= (POSE_LOCKED|POSE_DO_UNLOCK);
-
+		/* walkthrough */
+	case B_CONSTRAINT_CHANGEIKSOLVER:
+		allqueue(REDRAWBUTSOBJECT, 0);
+		/* walkthrough */
 	case B_CONSTRAINT_CHANGETARGET:
 		if (ob->pose) ob->pose->flag |= POSE_RECALC;	// checks & sorts pose channels
 		DAG_scene_sort(G.scene);
@@ -2874,9 +2877,23 @@
 	if(G.obedit==OBACT) return;	// ??
 	
 	conlist = get_active_constraints(OBACT);
-	
+
+	xco = 10;
+	yco = 190;
+	{
+		bArmature *arm = get_armature(ob);
+		if (arm) {
+			uiDefBut(block, LABEL, 0, "Armature IK solver:",	0, yco, 130, 20, NULL, 0.0, 0.0, 0, 0, "Choose the IK solver for IK constraints");
+			uiDefButI(block, MENU, B_CONSTRAINT_CHANGEIKSOLVER, 
+				  "IK Solver%t|Legacy%x0|iTaSc%x1", 
+				  150, yco, 120, 19, &arm->iksolver, 0, 0, 0, 0, "Choose the IK solver for IK constraints");
+			yco -= 30;
+		}
+	}
+
 	if (conlist) {
-		uiDefBlockBut(block, add_constraintmenu, NULL, "Add Constraint", 0, 190, 130, 20, "Add a new constraint");
+
+		uiDefBlockBut(block, add_constraintmenu, NULL, "Add Constraint", 0, yco, 130, 20, "Add a new constraint");
 		
 		/* print active object or bone */
 		str[0]= 0;
@@ -2887,11 +2904,9 @@
 		else {
 			sprintf(str, "To Object: %s", ob->id.name+2);
 		}
-		uiDefBut(block, LABEL, 1, str,	150, 190, 150, 20, NULL, 0.0, 0.0, 0, 0, "Displays Active Object or Bone name");
-		
+		uiDefBut(block, LABEL, 1, str,	150, yco, 150, 20, NULL, 0.0, 0.0, 0, 0, "Displays Active Object or Bone name");
+		yco -= 30;
 		/* Go through the list of constraints and draw them */
-		xco = 10;
-		yco = 160;
 		
 		for (curcon = conlist->first; curcon; curcon=curcon->next) {
 			/* hrms, the temporal constraint should not draw! */





More information about the Bf-blender-cvs mailing list