#
# NEED_PARMS pstart pend pfwd
#
# HELP: SYNOPSIS:
# HELP:     generic/movie/animate/upwait_start pstart pend pfwd
# HELP:
# HELP: DESCRIPTION:
# HELP:     Make the volumes animate in a up and wait fashion. That is:
# HELP:     - wait for pstart frames, 
# HELP:     - go up through the volumes, stepping volume every pfwd frames, 
# HELP:     - wait for pend frames, 
# HELP:     - go back to start 
#
CECHO ${$root.func.var.new("struct","animate",$root)}

CECHO ${$root.func.var.new("int","pstart",$root.animate)}
CECHO ${$root.func.var.new("int","istart",$root.animate)}
CECHO ${$root.func.var.new("int","pend",$root.animate)}
CECHO ${$root.func.var.new("int","iend",$root.animate)}
CECHO ${$root.func.var.new("int","pfwd",$root.animate)}
CECHO ${$root.func.var.new("int","ifwd",$root.animate)}

CECHO ${$root.func.var.new("int","i",$root.animate)}
CECHO ${$root.func.var.new("int","j",$root.animate)}

CECHO ${$root.func.var.new("int","numvols")}

! generic/multivol/countvol

VOL_SET *TOP*

CECHO ${$numvols=$root.mrc} 

CECHO ${$root.animate.i=0} 
CECHO ${$root.animate.j=0} 
CECHO ${$root.animate.pstart=$argv[1]}
CECHO ${$root.animate.pend=$argv[2]}
CECHO ${$root.animate.pfwd=$argv[3]}

CECHO ${$root.animate.istart=$root.animate.pstart}
CECHO ${$root.animate.ifwd=$root.animate.istart+$root.animate.pfwd*($numvols-1)}
CECHO ${$root.animate.iend=$root.animate.ifwd+$root.animate.pend}

REG_COROUT ani_upwait 1 ! coroutine/animate/upwait
