[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17512] branches/animsys2/source/blender: AnimSys2: Added data-type IPO's to DopeSheet

Joshua Leung aligorith at gmail.com
Thu Nov 20 06:55:42 CET 2008


Revision: 17512
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17512
Author:   aligorith
Date:     2008-11-20 06:55:42 +0100 (Thu, 20 Nov 2008)

Log Message:
-----------
AnimSys2: Added data-type IPO's to DopeSheet 

* Added support for Material, Lamp, and Camera IPO's to DopeSheet
* Added appropriate filters for the added datatypes
* Fixed issues with Constraint Channels caused by a typo in an earlier commit

Modified Paths:
--------------
    branches/animsys2/source/blender/include/BIF_editaction.h
    branches/animsys2/source/blender/makesdna/DNA_action_types.h
    branches/animsys2/source/blender/makesdna/DNA_camera_types.h
    branches/animsys2/source/blender/makesdna/DNA_key_types.h
    branches/animsys2/source/blender/makesdna/DNA_lamp_types.h
    branches/animsys2/source/blender/makesdna/DNA_material_types.h
    branches/animsys2/source/blender/makesdna/DNA_object_types.h
    branches/animsys2/source/blender/src/drawaction.c
    branches/animsys2/source/blender/src/drawipo.c
    branches/animsys2/source/blender/src/editaction.c
    branches/animsys2/source/blender/src/editipo_lib.c
    branches/animsys2/source/blender/src/header_action.c

Modified: branches/animsys2/source/blender/include/BIF_editaction.h
===================================================================
--- branches/animsys2/source/blender/include/BIF_editaction.h	2008-11-20 05:47:34 UTC (rev 17511)
+++ branches/animsys2/source/blender/include/BIF_editaction.h	2008-11-20 05:55:42 UTC (rev 17512)
@@ -53,8 +53,13 @@
 	ACTTYPE_FILLACTD,
 	ACTTYPE_FILLIPOD,
 	ACTTYPE_FILLCOND,
-	ACTTYPE_FILLSKED,
+	ACTTYPE_FILLMATD,
 	
+	ACTTYPE_DSMAT,
+	ACTTYPE_DSLAM,
+	ACTTYPE_DSCAM,
+	ACTTYPE_DSSKEY,
+	
 	ACTTYPE_ACHAN,
 	ACTTYPE_CONCHAN,
 	ACTTYPE_CONCHAN2,
@@ -71,7 +76,13 @@
 #define EXPANDED_OBJC(ob) ((ob->nlaflag & OB_ADS_COLLAPSED)==0)
 #define FILTER_IPO_OBJC(ob) ((ob->nlaflag & OB_ADS_SHOWIPO))
 #define FILTER_CON_OBJC(ob) ((ob->nlaflag & OB_ADS_SHOWCONS)) 
-#define FILTER_SKE_OBJC(key) ((key->flag & KEYBLOCK_EXPAND))
+#define FILTER_MAT_OBJC(ob) ((ob->nlaflag & OB_ADS_SHOWMATS))
+
+#define FILTER_SKE_OBJD(key) ((key->flag & KEYBLOCK_DS_EXPAND))
+#define FILTER_MAT_OBJD(ma) ((ma->flag & MA_DS_EXPAND))
+#define FILTER_LAM_OBJD(la) ((la->flag & LA_DS_EXPAND))
+#define FILTER_CAM_OBJD(ca) ((ca->flag & CAM_DS_EXPAND))
+
 #define SEL_ACTC(actc) ((actc->flag & ACTC_SELECTED))
 #define EXPANDED_ACTC(actc) ((actc->flag & ACTC_EXPANDED))
 

Modified: branches/animsys2/source/blender/makesdna/DNA_action_types.h
===================================================================
--- branches/animsys2/source/blender/makesdna/DNA_action_types.h	2008-11-20 05:47:34 UTC (rev 17511)
+++ branches/animsys2/source/blender/makesdna/DNA_action_types.h	2008-11-20 05:55:42 UTC (rev 17512)
@@ -255,6 +255,9 @@
 	ADS_FILTER_NOIPOS			= (1<<7),
 	ADS_FILTER_NOACTS			= (1<<8),
 	ADS_FILTER_NOCONSTRAINTS	= (1<<9),
+	ADS_FILTER_NOCAM			= (1<<10),
+	ADS_FILTER_NOMAT			= (1<<11),
+	ADS_FILTER_NOLAM			= (1<<12),
 } DOPESHEET_FILTERFLAG;	
 
 /* DopeSheet general flags */

Modified: branches/animsys2/source/blender/makesdna/DNA_camera_types.h
===================================================================
--- branches/animsys2/source/blender/makesdna/DNA_camera_types.h	2008-11-20 05:47:34 UTC (rev 17511)
+++ branches/animsys2/source/blender/makesdna/DNA_camera_types.h	2008-11-20 05:55:42 UTC (rev 17512)
@@ -76,6 +76,7 @@
 #define CAM_SHOWTITLESAFE	8
 #define CAM_SHOWNAME		16
 #define CAM_ANGLETOGGLE		32
+#define CAM_DS_EXPAND		64
 
 /* yafray: dof sampling switch */
 #define CAM_YF_NO_QMC	512

Modified: branches/animsys2/source/blender/makesdna/DNA_key_types.h
===================================================================
--- branches/animsys2/source/blender/makesdna/DNA_key_types.h	2008-11-20 05:47:34 UTC (rev 17511)
+++ branches/animsys2/source/blender/makesdna/DNA_key_types.h	2008-11-20 05:55:42 UTC (rev 17512)
@@ -85,8 +85,8 @@
 #define KEY_BSPLINE     2
 
 /* keyblock->flag */
-#define KEYBLOCK_MUTE	1
-#define KEYBLOCK_EXPAND	2
+#define KEYBLOCK_MUTE		1
+#define KEYBLOCK_DS_EXPAND	2
 
 #endif
 

Modified: branches/animsys2/source/blender/makesdna/DNA_lamp_types.h
===================================================================
--- branches/animsys2/source/blender/makesdna/DNA_lamp_types.h	2008-11-20 05:47:34 UTC (rev 17511)
+++ branches/animsys2/source/blender/makesdna/DNA_lamp_types.h	2008-11-20 05:55:42 UTC (rev 17512)
@@ -45,7 +45,7 @@
 typedef struct Lamp {
 	ID id;
 	
-	short type, pad3;
+	short type, flag;
 	int mode;
 	
 	short colormodel, totex;
@@ -113,6 +113,9 @@
 
 /* **************** LAMP ********************* */
 
+/* flag */
+#define LA_DS_EXPAND	1
+
 /* type */
 #define LA_LOCAL		0
 #define LA_SUN			1

Modified: branches/animsys2/source/blender/makesdna/DNA_material_types.h
===================================================================
--- branches/animsys2/source/blender/makesdna/DNA_material_types.h	2008-11-20 05:47:34 UTC (rev 17511)
+++ branches/animsys2/source/blender/makesdna/DNA_material_types.h	2008-11-20 05:55:42 UTC (rev 17512)
@@ -153,6 +153,8 @@
 /* flag */
 		/* for render */
 #define MA_IS_USED		1
+		/* for dopesheet */
+#define MA_DS_EXPAND	2
 
 /* mode (is int) */
 #define MA_TRACEBLE		1

Modified: branches/animsys2/source/blender/makesdna/DNA_object_types.h
===================================================================
--- branches/animsys2/source/blender/makesdna/DNA_object_types.h	2008-11-20 05:47:34 UTC (rev 17511)
+++ branches/animsys2/source/blender/makesdna/DNA_object_types.h	2008-11-20 05:55:42 UTC (rev 17512)
@@ -477,9 +477,14 @@
 #define OB_NLA_OVERRIDE		(1<<0)
 #define OB_NLA_COLLAPSED	(1<<1)
 
+	/* object-channel expanded status */
 #define OB_ADS_COLLAPSED	(1<<10)
+	/* object's ipo-block */
 #define OB_ADS_SHOWIPO		(1<<11)
+	/* object's constraint channels */
 #define OB_ADS_SHOWCONS		(1<<12)
+	/* object's material channels */
+#define OB_ADS_SHOWMATS		(1<<13)
 
 /* ob->protectflag */
 #define OB_LOCK_LOCX	1

Modified: branches/animsys2/source/blender/src/drawaction.c
===================================================================
--- branches/animsys2/source/blender/src/drawaction.c	2008-11-20 05:47:34 UTC (rev 17511)
+++ branches/animsys2/source/blender/src/drawaction.c	2008-11-20 05:55:42 UTC (rev 17512)
@@ -49,6 +49,7 @@
 #include "DNA_listBase.h"
 #include "DNA_action_types.h"
 #include "DNA_armature_types.h"
+#include "DNA_camera_types.h"
 #include "DNA_curve_types.h"
 #include "DNA_ipo_types.h"
 #include "DNA_object_types.h"
@@ -57,6 +58,8 @@
 #include "DNA_space_types.h"
 #include "DNA_constraint_types.h"
 #include "DNA_key_types.h"
+#include "DNA_lamp_types.h"
+#include "DNA_material_types.h"
 #include "DNA_userdef_types.h"
 #include "DNA_gpencil_types.h"
 
@@ -616,38 +619,105 @@
 					sprintf(name, "IPO Curves");
 				}
 					break;
-				case ACTTYPE_FILLSKED: /* shapekeys (dopesheet) expand widget */
+				case ACTTYPE_FILLCOND: /* constraint channels (dopesheet) expand widget */
 				{
-					Key *key= (Key *)ale->data;
+					Object *ob = (Object *)ale->data;
 					
 					group = 4;
 					indent = 1;
-					special = ICON_EDIT;
+					special = ICON_CONSTRAINT;
 					
-					if (FILTER_SKE_OBJC(key))	
+					if (FILTER_CON_OBJC(ob))	
 						expand = ICON_TRIA_DOWN;
 					else
 						expand = ICON_TRIA_RIGHT;
 						
 					//sel = SEL_OBJC(base);
-					sprintf(name, "Shape Keys");
+					sprintf(name, "Constraints");
 				}
 					break;
-				case ACTTYPE_FILLCOND: /* constraint channels (dopesheet) expand widget */
+				case ACTTYPE_FILLMATD: /* object materials (dopesheet) expand widget */
 				{
 					Object *ob = (Object *)ale->data;
 					
 					group = 4;
 					indent = 1;
-					special = ICON_CONSTRAINT;
+					special = ICON_MATERIAL;
 					
-					if (FILTER_CON_OBJC(ob))	
+					if (FILTER_MAT_OBJC(ob))
 						expand = ICON_TRIA_DOWN;
 					else
 						expand = ICON_TRIA_RIGHT;
 						
+					sprintf(name, "Materials");
+				}
+					break;
+				
+				
+				case ACTTYPE_DSMAT: /* single material (dopesheet) expand widget */
+				{
+					Material *ma = (Material *)ale->data;
+					
+					group = 0;
+					indent = 0;
+					special = ICON_MATERIAL;
+					offset = 21;
+					
+					if (FILTER_MAT_OBJD(ma))
+						expand = ICON_TRIA_DOWN;
+					else
+						expand = ICON_TRIA_RIGHT;
+					
+					sprintf(name, ma->id.name+2);
+				}
+					break;
+				case ACTTYPE_DSLAM: /* lamp (dopesheet) expand widget */
+				{
+					Lamp *la = (Lamp *)ale->data;
+					
+					group = 4;
+					indent = 1;
+					special = ICON_LAMP;
+					
+					if (FILTER_LAM_OBJD(la))
+						expand = ICON_TRIA_DOWN;
+					else
+						expand = ICON_TRIA_RIGHT;
+					
+					sprintf(name, la->id.name+2);
+				}
+					break;
+				case ACTTYPE_DSCAM: /* camera (dopesheet) expand widget */
+				{
+					Camera *ca = (Camera *)ale->data;
+					
+					group = 4;
+					indent = 1;
+					special = ICON_CAMERA;
+					
+					if (FILTER_CAM_OBJD(ca))
+						expand = ICON_TRIA_DOWN;
+					else
+						expand = ICON_TRIA_RIGHT;
+					
+					sprintf(name, ca->id.name+2);
+				}
+					break;
+				case ACTTYPE_DSSKEY: /* shapekeys (dopesheet) expand widget */
+				{
+					Key *key= (Key *)ale->data;
+					
+					group = 4;
+					indent = 1;
+					special = ICON_EDIT;
+					
+					if (FILTER_SKE_OBJD(key))	
+						expand = ICON_TRIA_DOWN;
+					else
+						expand = ICON_TRIA_RIGHT;
+						
 					//sel = SEL_OBJC(base);
-					sprintf(name, "Constraints");
+					sprintf(name, "Shape Keys");
 				}
 					break;
 					
@@ -716,12 +786,26 @@
 				{
 					bConstraintChannel *conchan = (bConstraintChannel *)ale->data;
 					
-					indent = 2;
-					
 					group= (ale->grp) ? 1 : 0;
 					grp= ale->grp;
 					
-					offset= (ale->id) ? 21 : 0;
+					if (ale->id) {
+						if (ale->ownertype == ACTTYPE_ACHAN) {
+							/* for constraint channels under Action in Dopesheet */
+							indent= 2;
+							offset= 21;
+						}
+						else {
+							/* for constraint channels under Object in Dopesheet */
+							indent= 2;
+							offset = 0;
+						}
+					}
+					else {
+						/* for normal constraint channels in Action Editor */
+						indent= 2;
+						offset= 0;
+					}
 					
 					if (EDITABLE_CONCHAN(conchan))
 						protect = ICON_UNLOCKED;
@@ -749,8 +833,17 @@
 					group= (ale->grp) ? 1 : 0;
 					grp= ale->grp;
 					
-					offset= (ale->id) ? 21 : 0;
+					//offset= ((ale->id) && (GS(ale->id->name) == ID_MA)) ? 21 : 0;
+					if (ale->id) {
+						if ((GS(ale->id->name)==ID_MA) || (ale->ownertype == ACTTYPE_ACHAN))
+							offset= 21;
+						else
+							offset= 0;
+					}
+					else
+						offset= 0;
 					
+					
 					if (icu->flag & IPO_MUTE)
 						mute = ICON_MUTE_IPO_ON;
 					else	
@@ -1195,7 +1288,7 @@
 					if (sel) glColor4ub(col1b[0], col1b[1], col1b[2], 0x45); 
 					else glColor4ub(col1b[0], col1b[1], col1b[2], 0x22); 
 				}
-				else if (ELEM3(ale->type, ACTTYPE_FILLIPOD, ACTTYPE_FILLACTD, ACTTYPE_FILLCOND)) {
+				else if (ELEM4(ale->type, ACTTYPE_FILLIPOD, ACTTYPE_FILLACTD, ACTTYPE_FILLCOND, ACTTYPE_DSSKEY)) {
 					// FIXME... how do we differentiate between the two modes?
 					if (sel) glColor4ub(col2b[0], col2b[1], col2b[2], 0x45); 
 					else glColor4ub(col2b[0], col2b[1], col2b[2], 0x22); 

Modified: branches/animsys2/source/blender/src/drawipo.c
===================================================================
--- branches/animsys2/source/blender/src/drawipo.c	2008-11-20 05:47:34 UTC (rev 17511)
+++ branches/animsys2/source/blender/src/drawipo.c	2008-11-20 05:55:42 UTC (rev 17512)
@@ -1334,8 +1334,8 @@
 /* draw lines for IPO-curve handles only (this is only done in EditMode) */
 static void draw_ipohandles(int sel)
 {
+	EditIpo *ei;

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list