//-
// ==========================================================================
// Copyright 1995,2006,2008 Autodesk, Inc. All rights reserved.
//
// Use of this software is subject to the terms of the Autodesk
// license agreement provided at the time of installation or download,
// or which otherwise accompanies this software in either electronic
// or hard copy form.
// ==========================================================================
//+

These are an example set of functions which can be used to read a Maya
animation curve which has been exported using the animImportExport plugin,
and then evaluate the animation curve at any point in time.

The examples do *not* use any Maya specific code (specifically it is *not*
necessary to use the API to perform the evaluation).  The intent of these
examples is that they could provide a base for implementing Maya
animation curve evaluation in stand alone applications.

An attempt has been made to isolate any platform dependent implementations
within a single file (engine.h).  The evaluation module does not include any
other header files, nor does it make use of any library specific funtionality
(with the exception of sin, cos and sqrt).

The functions have been implemented in c with the thought that it is easier
to create a c++ class from c code, as well as it being easier to optimise
c code than it is to optimise c++ code.

The files which are included are:

	animDemo.dsw		Microsoft VC++ 5.0 project files
	animDemo.dsp
	Makefile			SGI Irix make file
	engine.h			platform dependent implementations (such as
						type definitions and include files)
	utilEngine.h		some memory allocation and string functions
	utilEngine.c
	fileEngine.h		some file I/O functions
	fileEngine.c
	animEngine.h		the example functions: engineAnimReadCurves and
	animEngine.c			engineAnimEvaluate
	animDemo.c			An example application which reads in the
						animation curves from a .anim file, prints
						the list of keys for each curve, and then evaluates
						each curve over a time range
	charJointer.anim	An example .anim exported from Maya
	readme

All of the function names have been prefixed with 'engine' so that they
can have their own name space, but be easily changed to any other naming
convention.  All the types used have the prefix 'Et' for the same reason.

One thing to be aware of: the computation of smooth tangents has changed
in Maya 2.0.  engineAnimReadCurves calls a static helper function
assembleAnimCurve which has a boolean parameter to specify whether or
not to use pre-Maya 2.0 smooth tangent computation.  In the example
code this is set to false by default.
