SO3Engine
SO3EnvironmentComponent.h
Go to the documentation of this file.
1/*
2-----------------------------------------------------------------------------
3This source file is part of OpenSpace3D
4For the latest info, see http://www.openspace3d.com
5
6Copyright (c) 2012 I-maginer
7
8This program is free software; you can redistribute it and/or modify it under
9the terms of the GNU Lesser General Public License as published by the Free Software
10Foundation; either version 2 of the License, or (at your option) any later
11version.
12
13This program is distributed in the hope that it will be useful, but WITHOUT
14ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
16
17You should have received a copy of the GNU Lesser General Public License along with
18this program; if not, write to the Free Software Foundation, Inc., 59 Temple
19Place - Suite 330, Boston, MA 02111-1307, USA, or go to
20http://www.gnu.org/copyleft/lesser.txt
21
22-----------------------------------------------------------------------------
23*/
24
32#ifndef __SO3_ENVIRONMENT_COMPONENT_H__
33#define __SO3_ENVIRONMENT_COMPONENT_H__
34
36
37namespace SO3
38{
39
43class _SO3_Export SEnvironmentComponent : public SData
44{
45public:
46protected:
48 typedef std::set<SViewPort*> ViewportList;
49private:
50 bool cleaned;
51 bool isEnable;
52 ViewportList viewportList;
53
54public:
57 SEnvironmentComponent(SEnvironment* parent, const std::string& environmentComponentName);
58
61 virtual ~SEnvironmentComponent();
62
65 virtual void Update(const Ogre::Real& updateTime)=0;
66
69 virtual void UpdateCamera(SViewPort* viewport);
70
73 SEnvironment* GetEnvironment();
74
77 bool GetEnable();
78
81 void SetEnable(const bool& enableComponent);
82
85 void RegisterViewport(SViewPort* viewport);
86
89 void UnregisterViewport(SViewPort* viewport);
90
93 void UnregisterCamera(Ogre::Camera* cam);
94protected:
98 void Cleanup();
99
103 ViewportList GetRegisteredViewports();
104
107 virtual void SetEnableImpl(const bool& enableComponent)=0;
108
111 virtual void RegisterViewportImpl(SViewPort* viewport)=0;
112
115 virtual void UnregisterViewportImpl(SViewPort* viewport)=0;
116
119 virtual void UnregisterCameraImpl(Ogre::Camera* cam);
120private:
125};
126
127}
128
129#endif
virtual void Update(const Ogre::Real &updateTime)=0
virtual void RegisterViewportImpl(SViewPort *viewport)=0
virtual void UnregisterViewportImpl(SViewPort *viewport)=0
std::set< SViewPort * > ViewportList
virtual void SetEnableImpl(const bool &enableComponent)=0