00001 //This file is part of PhysTank. 00002 // 00003 //PhysTank is free software: you can redistribute it and/or modify 00004 //it under the terms of the GNU General Public License as published by 00005 //the Free Software Foundation, either version 3 of the License, or 00006 //(at your option) any later version. 00007 // 00008 //PhysTank is distributed in the hope that it will be useful, 00009 //but WITHOUT ANY WARRANTY; without even the implied warranty of 00010 //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00011 //GNU General Public License for more details. 00012 // 00013 //You should have received a copy of the GNU General Public License 00014 //along with PhysTank. If not, see <http://www.gnu.org/licenses/>. 00015 // 00016 // © Marc Johnson, 2009 00017 00018 #ifndef _COMPONENTFACTORY_ 00019 #define _COMPONENTFACTORY_ 00020 00021 #include <string> 00022 00023 #include "game/AbstractComponent.h" 00024 00025 #include "util/FactoryTemplate.h" 00026 #include "util/Macros.h" 00027 #include "util/StringHasher.h" 00028 00029 #define REGISTER_COMPONENT(class_name,object_name,family_name) \ 00030 REGISTER_CREATEABLE(ComponentFactory, AbstractComponent, class_name, object_name, CONCAT(object_name , family_name )) 00031 00032 REGISTER_FACTORY(ComponentFactory, AbstractComponent); 00033 00034 #endif