00001 /* 00002 File: GCLApp.h 00003 00004 Function: Useful routines for any GCL application that must deal 00005 with a scene and avars 00006 00007 Author: Andrew Willmott 00008 00009 Copyright: (c) 1999-2000, Andrew Willmott 00010 */ 00011 00012 #ifndef __GCLApp__ 00013 #define __GCLApp__ 00014 00015 #include "cl/ArgParse.h" 00016 #include "gcl/GCLConfig.h" 00017 #include "gcl/SceneLang.h" 00018 #ifndef GCL_NO_GL 00019 #include "gcl/ScenePane.h" 00020 #endif 00021 #include "gcl/Animation.h" 00022 00023 typedef NArray<String> StringArray; 00024 00025 class GCLApp 00026 { 00027 public: 00028 GCLApp(); 00029 00030 Void ReadScene(FileName &sceneFile); 00031 Void SetAvars(scScenePtr scene); 00032 Void SetAvarsFromAnim(scScenePtr scene); 00033 00034 ArgForm *GetOptionList(); 00035 00036 // options 00037 Int xsize; 00038 Int ysize; 00039 Colour bgColour; 00040 Int noScale; 00041 Int zUp; 00042 Int zDown; 00043 00044 static Void GetFileArgs(Int argc, Char *argv[]); 00045 static Void GetAvarArgs(Int argc, Char *argv[]); 00046 00047 static Char **files; 00048 static Int numFiles; 00049 static StrConstArray avarNames; 00050 static ScalarList avarVals; 00051 00052 // fields 00053 scScenePtr scene; 00054 scCamera *itsCamera; 00055 #ifndef GCL_NO_GL 00056 ScenePane *itsScenePane; 00057 #endif 00058 // animation 00059 Int frame; 00060 Double time; 00061 Double fps; 00062 Animation *anim; 00063 scAvarList *avarList; 00064 }; 00065 00066 #endif