![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2006 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 * $RCSfile: vmapSpecificationFactory.h,v $ $Revision: 1.8 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00009 #ifndef VMAP_SPECIFICATION_FACTORY_H_ 00010 #define VMAP_SPECIFICATION_FACTORY_H_ 00011 00015 00016 #include <list> 00017 #include <map> 00018 00019 #include <vlutil/vlString.h> 00020 #include "gdb/specMgr.h" 00021 #include "geometry/gdbColor.h" 00022 00023 #include "vmap/vmapDefines.h" 00024 #include "vmap/vmapSpecNode.h" 00025 00026 //forward defs 00027 class DtVpfRow; 00028 class DtVpfDatabase; 00029 struct DtVpf3Coord; 00030 00031 //typedefs 00032 typedef std::map<DtString, DtColor> DtColorMap; 00033 typedef std::map<DtString, DtColor>::iterator DtColorMapIter; 00034 00037 class DT_DLL_vmap DtVpfSpecFactory 00038 { 00039 private: 00041 DtVpfSpecFactory(const DtVpfSpecFactory &input); 00042 00044 DtVpfSpecFactory& operator=(const DtVpfSpecFactory &input); 00045 00046 public: 00049 DtVpfSpecFactory(DtVpfDatabase* Db); 00050 00052 virtual ~DtVpfSpecFactory(); 00053 00056 virtual bool init(); 00057 00061 virtual bool createNewSpecification(DtSpecification& spec, 00062 DtSpecificationID& specID, const DtVpfRow& row); 00063 00066 virtual DtVpfDatabase* database() const; 00067 00071 virtual void findBounds(DtSpecification& spec, const std::vector<DtVpf3Coord*>* coords); 00072 00073 protected: 00077 virtual DtColor findColor(DtString sedrisCode); 00078 virtual std::vector<DtString> tokenize(const std::string& str, const std::string& delim); 00079 virtual bool initColorMap(); 00080 virtual bool initSpecMap(); 00081 virtual void insert(DtSpecification& spec, DtVpfEnumeration& e); 00082 virtual DtSpecification* findSpec(const DtVpfEnumeration& e); 00083 virtual DtVpfEnumeration buildEnum(const DtVpfRow& row); 00084 00085 DtColorMap myColorMap; 00086 DtVpfDatabase* myDatabase; 00087 DtVpfSpecNode* myRootSpecNode; 00088 }; 00089 00090 #endif