NAME
    hwTimer - alter the passage of time for its children

PROPERTIES
    Lifetime	2F	Range of time for which this hwTimer is effective
    Equation	*F	Polynomial equation for the alteration of time
    CycleTime	1F	How long does it take to cycle from 0 to 1?  If 0,
			it doesn't cycle
    Children	*O	List of objects affected by the timer

DEFAULTS
    Lifetime	{0,1e38}
    Equation	{0,1} # That is, 0*X^0 + 1*X^1, or identity
    CycleTime	0.0
    Children	NULL

DESCRIPTION
    The hwTimer class can be used to change time for its children from a
    strict 1:1 realtime ratio to whatever polynomial equation is
    desired.  For example, to "freeze" time at a given value, say, 42,
    merely create an hwTimer object whose equation is {42}.  The
    equation is interpreted using the following algorithm:

	/* Compute sum of polynomial */
	Tsum = 0.0;
	for( i = 0; i < Length(Equation); i++ ) {
	    Tsum = Tsum + Equation[i] * pow( RealTime, (double)i );
	}

	RealTime = Tsum;

    In other words, a polynomial equation.  The Lifetime parameter
    specifies the range of real time over which this hwTimer object
    operates; if real time is outside this range, the hwTimer object and
    its children do not display.  The CycleTime parameter specifies how
    long it takes for the hwTimer object to cycle back to (relative)
    T = 0.  If a CycleTime is specified, time will cycle from
    Lifetime[0] to Lifetime[0]+CycleTime.

OBJECT FILE EXAMPLE
    # Pause time for the children of this object, for 10 seconds starting
    # 100 seconds into time
    hwTimer {
	Lifetime = {100,110}
	Equation = {100}	# In other words, make T = 100.0 seconds
	Children = {
	    hwSpinner {
		UpType = HW_SPIN_LINEAR
		UpParams = {0,360}
		CycleTime = 5
		Children = {
		    hwFile {
			FileName = "foo.gfx"
		    }
		}
	    }
	}
    }

SEE ALSO
    hw(3)