# A generic rotation routine for the gnuplot view.  In the commands
# that load this file, the following should be defined:
#
# iteration_count:  set iteration_count=0
#
# limit_iterations:  if set to a nonzero value, it'll stop after that
#     many iterations; if zero value, continues indefinitely
#
# xrot:  the initial x rotation of the view
#
# xrot_delta:  the amount to increment the x rotation for each new plot
#
# xview:  function for generating x view value; for example
#     xview(xrot)=(50.+30.*sin((xrot%180)/180.*pi))
#
# zrot:  the initial z rotation of the view
#
# zrot_delta:  the amount to increment the z rotation for each new plot
#
# zview:  function for generating z view value; for example
#     zview(zrot)=(60.+45.*sin(zrot/180.*pi))
#
# History:
#   - 1. 1. 2006 Dan Sebald:  Made more generic so other demos could use
#   - ?. ?. ?    Hans-Bernhard Broeker:  Used to just turn round and round
#                by somewhat large steps. Now, it tumbles back and forth
#                smoothly.
#   - ?. ?. ?    ?:  Initial recursive script

iteration_count=iteration_count+1
if ((!limit_iterations) || (iteration_count<=limit_iterations)) \
  set view xview(xrot),zview(zrot); \
  replot; \
  zrot=(zrot+zrot_delta)%360; \
  xrot=(xrot+xrot_delta)%360; \
  reread
