00001 #ifndef HEADER_MODELFACTORY_H
00002 #define HEADER_MODELFACTORY_H
00003
00004 class V2;
00005 class Unit;
00006
00007 #include "Cube.h"
00008 #include "ControlSym.h"
00009 #include "Dir.h"
00010
00011 #include <string>
00012
00013
00014
00015
00016 class ModelFactory {
00017 private:
00018 static void createParams(const std::string &kind,
00019 Cube::eWeight *out_weight, Cube::eWeight *out_power,
00020 bool *out_alive);
00021 static ControlSym parseExtraControlSym(const std::string &kind);
00022 static Cube *createOutputItem(const std::string &kind, const V2 &loc,
00023 const std::string &shape);
00024 public:
00025 static Cube *createModel(const std::string &kind, const V2 &loc,
00026 const std::string &shape);
00027 static Unit *createUnit(const std::string &kind);
00028 static Cube *createBorder();
00029 };
00030
00031 #endif