![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2003 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: mtlMapReader.h,v $ $Revision: 1.6 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00014 00015 #ifndef DTMTLMAPREADER_H_ 00016 #define DTMTLMAPREADER_H_ 00017 00018 #include "symbolMapper/mapReader.h" 00019 00020 #include "symbolMapper/descriptor.h" 00021 00022 #include <vector> 00023 #include <mtl/mtl.h> 00024 #include <mtl/lispEnv.h> 00025 00026 #include "tmqt/tmqtDefines.h" 00027 class DT_DLL_tmqt DtMtlMapReader : public DtMapReader 00028 { 00029 private: 00030 struct ParserEntry 00031 { 00032 QString key; 00033 DtSymbolDescriptorParserFcn fcn; 00034 }; 00035 public: 00036 DtMtlMapReader(DtBaseMapper* mapper); 00037 virtual ~DtMtlMapReader(); 00038 00039 virtual bool load(const QString& filename, bool replace = false); 00040 virtual bool init(); 00041 virtual bool save(const QString&); 00042 00043 virtual DtSymbolDescriptor* createSymbol(QString symbol, 00044 QString key, const DtlObjPtr& args, DtlObjPtr&result); 00045 00046 virtual void setEnv(DtMtlEnvironment* env); 00047 00049 virtual void parse(const QString& str); 00050 00051 virtual bool replace() const; 00052 00053 public: 00054 static DtlObjPtr parseOverlaySymbolMap(const DtlObjPtr& args, 00055 const DtlObjPtr&); 00056 static DtlObjPtr parseSymbolMap(const DtlObjPtr& args, 00057 const DtlObjPtr&); 00058 00059 static DtMapReader* create(DtBaseMapper* mapper); 00060 00061 static DtSymbolDescriptor* parseBmpSymbol(DtMapReader* reader, 00062 QString key, void*& args, void*& retval); 00063 00064 static DtSymbolDescriptor* parseTtfSymbol(DtMapReader* reader, 00065 QString key, void*& args, void*& retval); 00066 static DtSymbolDescriptor* parseUTTFSymbol(DtMapReader* reader, 00067 QString key, void*& args, void*& retval); 00068 static DtSymbolDescriptor* parseUTTFExtendedSymbol(DtMapReader* reader, 00069 QString key, void*& args, void*& retval); 00070 00071 static DtSymbolDescriptor* parseTtsSymbol(DtMapReader* reader, 00072 QString key, void*& args, void*& retval); 00073 static DtSymbolDescriptor* parsePlySymbol(DtMapReader* reader, 00074 QString key, void*& args, void*& retval); 00075 static DtSymbolDescriptor* parseBoxSymbol(DtMapReader* reader, 00076 QString key, void*& args, void*& retval); 00077 00078 protected: 00079 virtual DtSymbolDescriptor* processBmpSymbol(QString key, 00080 DtlObjPtr& args, DtlObjPtr& retval); 00081 virtual DtSymbolDescriptor* processTtfSymbol(QString key, 00082 DtlObjPtr& args, DtlObjPtr& retval); 00083 virtual DtSymbolDescriptor* processUTTFSymbol(QString key, 00084 DtlObjPtr& args, DtlObjPtr& retval); 00085 virtual DtSymbolDescriptor* processUTTFExtendedSymbol(QString key, 00086 DtlObjPtr& args, DtlObjPtr& retval); 00087 00088 virtual DtSymbolDescriptor* processTtsSymbol(QString key, 00089 DtlObjPtr& args, DtlObjPtr& retval); 00090 virtual DtSymbolDescriptor* processPlySymbol(QString key, 00091 DtlObjPtr& args, DtlObjPtr& retval); 00092 virtual DtSymbolDescriptor* processBoxSymbol(QString key, 00093 DtlObjPtr& args, DtlObjPtr& retval); 00094 00095 virtual QString mapFontKey(const QString& value) const; 00096 virtual void initEnv(); 00097 00098 virtual void parseColorAndTransparency(DtlObjPtr& ptr, 00099 DtSymbolDescriptor* desc); 00100 00101 protected: 00103 static std::vector<ParserEntry> theAddlParserList; 00104 DtMtlEnvironment* myMtlEnvironment; 00105 bool myOwnsEnv; 00106 00107 bool myReplace; 00108 }; 00109 00110 #endif