? .sconsign.dblite
? Doxyfile
? blender.kdevelop
? blender.tag
? error.txt
? html
? nodes_notes.txt
? update_cvs.sh
? xml
? extern/ffmpeg/config.h
? extern/ffmpeg/config.log
? extern/ffmpeg/config.mak
? extern/ffmpeg/libavcodec-uninstalled.pc
? extern/ffmpeg/libavcodec.pc
? extern/ffmpeg/libavformat-uninstalled.pc
? extern/ffmpeg/libavformat.pc
? extern/ffmpeg/libavutil-uninstalled.pc
? extern/ffmpeg/libavutil.pc
? extern/ffmpeg/libpostproc-uninstalled.pc
? extern/ffmpeg/libpostproc.pc
? tools/Blender.pyc
? tools/__init__.pyc
? tools/bcolors.pyc
? tools/btools.pyc
Index: source/blender/blenkernel/intern/node_composite.c
===================================================================
RCS file: /cvsroot/bf-blender/blender/source/blender/blenkernel/intern/node_composite.c,v
retrieving revision 1.120
diff -U3 -r1.120 node_composite.c
--- source/blender/blenkernel/intern/node_composite.c	13 Mar 2007 12:20:55 -0000	1.120
+++ source/blender/blenkernel/intern/node_composite.c	13 Mar 2007 15:05:06 -0000
@@ -1409,6 +1409,11 @@
 /* **************** CURVE Time  ******************** */
 
 /* custom1 = sfra, custom2 = efra */
+static bNodeSocketType cmp_node_time_in[]= {
+	{	SOCK_VALUE, 1, "Offs",	0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 10000.0f},
+	{	-1, 0, ""	}
+};
+
 static bNodeSocketType cmp_node_time_out[]= {
 	{	SOCK_VALUE, 0, "Fac",	1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f},
 	{	-1, 0, ""	}
@@ -1418,9 +1423,13 @@
 {
 	/* stack order output: fac */
 	float fac= 0.0f;
-	
-	if(node->custom1 < node->custom2)
-		fac= (G.scene->r.cfra - node->custom1)/(float)(node->custom2-node->custom1);
+	/* allow an offset input to be specified. Makes node groups
+	with a time curve component reusable at different spots in a composite timeline */
+	short start= (short)(node->custom1+in[0]->vec[0]);
+	short end=   (short)(node->custom2+in[0]->vec[0]);
+
+	if(start < end)
+		fac= (G.scene->r.cfra - start)/(float)(end-start);
 	
 	fac= curvemapping_evaluateF(node->storage, 0, fac);
 	out[0]->vec[0]= CLAMPIS(fac, 0.0f, 1.0f);
@@ -1431,7 +1440,7 @@
 	/* name        */	"Time",
 	/* width+range */	140, 100, 320,
 	/* class+opts  */	NODE_CLASS_INPUT, NODE_OPTIONS,
-	/* input sock  */	NULL,
+	/* input sock  */	cmp_node_time_in,
 	/* output sock */	cmp_node_time_out,
 	/* storage     */	"CurveMapping",
 	/* execfunc    */	node_composit_exec_time
