C:/Users/Mike/Documents/Visual Studio Projects/GameEngine/include/GameObjectComponent.h

Go to the documentation of this file.
00001 /*
00002 -----------------------------------------------------------------------------
00003 Copyright (C) 2006 Michael Harnetty
00004 
00005 This program is free software; you can redistribute it and/or
00006 modify it under the terms of the GNU General Public License
00007 as published by the Free Software Foundation; either version 2
00008 of the License, or (at your option) any later version.
00009 
00010 This program is distributed in the hope that it will be useful,
00011 but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013 GNU General Public License for more details.
00014 
00015 You should have received a copy of the GNU General Public License
00016 along with this program; if not, write to the Free Software
00017 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
00018 -----------------------------------------------------------------------------
00019 */
00020 
00021 #ifndef GAME_OBJECT_COMPONENT_H
00022 #define GAME_OBJECT_COMPONENT_H
00023 
00024 #include "GameEnginePrerequisites.h"
00025 #include "Process.h"
00026 #include "IEventListener.h"
00027 
00028 namespace GameEngine {
00029 
00032         class ENGINE_DECL GameObjectComponent : public IEventListener, public Process, public boost::enable_shared_from_this<GameObjectComponent> {
00033         public:
00034         
00037                 GameObjectComponent() {}
00038 
00039                 
00043                 virtual bool init() {
00044                         assert(mParent);
00045 
00046                         Process::init();
00047                         return true;
00048                 }
00049 
00053                 virtual void destroy() { 
00054                         Process::destroy();
00055                         mParent.reset();
00056                 }
00057 
00058                 
00062                 void setParent(boost::shared_ptr<GameObject> parent) { mParent = parent; }
00063                 
00067                 boost::shared_ptr<GameObject> getParent() { return mParent; }
00068 
00069         protected:
00070                 boost::shared_ptr<GameObject> mParent;
00071 
00072         };
00073 }
00074 
00075 #endif

Generated on Thu Apr 19 09:47:02 2007 for GameEngine by  doxygen 1.5.2