00001 #ifndef __CHOP_VariableList_h__ 00002 #define __CHOP_VariableList_h__ 00003 00004 #include "CHOP_API.h" 00005 #include <UT/UT_SymbolTable.h> 00006 #include <UT/UT_PtrArray.h> 00007 00008 class CHOP_API CHOP_VariableEntry 00009 { 00010 public: 00011 CHOP_VariableEntry(char *name, char *builder, char *type) 00012 { 00013 myName = name; myType = type; 00014 myBuilder = builder; 00015 00016 } 00017 00018 char *myName; // eg. NC 00019 char *myBuilder; // eg. numChan 00020 char *myType; // eg. float 00021 00022 int myUsed, myUsedAtAll; 00023 int myChannelVarying; 00024 int myIndexVarying; 00025 int myUserVarying; 00026 }; 00027 00028 class CHOP_API CHOP_VariableList 00029 { 00030 public: 00031 CHOP_VariableList(); 00032 virtual ~CHOP_VariableList(); 00033 00034 // Steals these pointers! 00035 void addVariable(char *name, char *builder, char *type, 00036 int chan = 1, int index = 1, int user = 1); 00037 00038 CHOP_VariableEntry *findVariable(const char *name) const; 00039 CHOP_VariableEntry *useVariable(const char *name); 00040 00041 int numvar() const { return myVariableList.entries(); } 00042 CHOP_VariableEntry *variable(int idx) const 00043 { return myVariableList(idx); } 00044 00045 void resetUsed(); 00046 void resetAll(); 00047 00048 protected: 00049 UT_SymbolTable myVariableTable; 00050 UT_PtrArray<CHOP_VariableEntry *> myVariableList; 00051 }; 00052 00053 #endif
1.5.9