Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

Animation.h

Go to the documentation of this file.
00001 /*
00002     File:       Animation.h
00003 
00004     Function:   
00005 
00006     Author:     Andrew Willmott
00007 
00008     Copyright:  (c) 2000, Andrew Willmott
00009 */
00010 
00011 #ifndef __Animation__
00012 #define __Animation__
00013 
00014 #include "gcl/Avars.h"
00015 #include "gcl/Hermite.h"
00016 #include "gcl/Geometry.h"
00017 #include "cl/Hash.h"
00018 
00019 const GCLReal kAutoVel = -999999.0;
00020 const GCLReal kAutoSplitVel = -999998.0;
00021 
00022 
00023 class AnimRec
00024 // keyframes for a single variable
00025 {
00026 public:
00027     AnimRec() : currentTimeIndex(-2) {};
00028 
00029     Void            SetupAnim();
00030 
00031     Void            AddKey(GCLReal time, GCLReal value, 
00032                         GCLReal velIn, GCLReal velOut);
00033 
00034     GCLReal         GetValue(GCLReal time);
00035 
00036     Int             FindTimeIndex(GCLReal time);
00037 
00038     // fields
00039     ScalarList      keyTimes;
00040     ScalarList      values;
00041     ScalarList      velIn;
00042     ScalarList      velOut;
00043 
00044     Int             currentTimeIndex;
00045     Cubic           currentCubic;
00046 };
00047 
00048 typedef PtrArray<AnimRec> AnimRecList;
00049 
00050 class Animation
00051 // holds AnimRecs for all avars being tweaked.
00052 {
00053 public:
00054     Bool                ParseAnimFile(StrConst filename);
00055 
00056     Void                DumpAvars(GCLReal time, Int frame);
00057                         // print current avar values
00058     Void                SetAvarList(scAvarList *avarList, scCamera *itsCamera, GCLReal time);
00059                         // set scene's avar list according to time
00060 
00061     Void                AddKey(StrConst avarName, GCLReal time, GCLReal value,
00062                             GCLReal velIn = kAutoVel, GCLReal velOut = kAutoVel);
00063     GCLReal             GetValue(StrConst avarName, GCLReal time);
00064 
00065     IntHash             avarNames;
00066     AnimRecList         avarRecs;
00067     GCLReal             length;
00068     Int                 quiet;
00069     Int                 addDash;
00070     StrConst            tag;
00071     IndexList           avarMap;
00072 };
00073 
00074 
00075 #endif

Generated at Sat Aug 5 00:16:56 2000 for Graphics Class Library by doxygen 1.1.0 written by Dimitri van Heesch, © 1997-2000