4 Scalable Building Simulator - Manager Classes
5 The Skyscraper Project - Version 1.10 Alpha
6 Copyright (C)2004-2016 Ryan Thoryk
7 http://www.skyscrapersim.com
8 http://sourceforge.net/projects/skyscraper
9 Contact - ryan@skyscrapersim.com
11 This program is free software; you can redistribute it and/or
12 modify it under the terms of the GNU General Public License
13 as published by the Free Software Foundation; either version 2
14 of the License, or (at your option) any later version.
16 This program is distributed in the hope that it will be useful,
17 but WITHOUT ANY WARRANTY; without even the implied warranty of
18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 GNU General Public License for more details.
21 You should have received a copy of the GNU General Public License
22 along with this program; if not, write to the Free Software
23 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
26 #ifndef _SBS_MANAGER_H
27 #define _SBS_MANAGER_H
31 class SBSIMPEXP FloorManager : public Object
34 FloorManager(Object* parent);
36 Floor* Create(int number);
37 int GetCount(); //all floors including basements
38 Floor* Get(int number);
39 Floor* GetIndex(int index);
40 void Remove(Floor *floor);
41 void EnableAll(bool value);
42 DynamicMesh* GetFloorDynMesh() { return floors; }
43 DynamicMesh* GetIFloorDynMesh() { return interfloors; }
44 DynamicMesh* GetColumnDynMesh() { return columnframes; }
49 int number; //floor number
50 Floor* object; //floor object reference
53 std::vector<Map> Array; //floor object array
55 //dynamic mesh objects
57 DynamicMesh* interfloors;
58 DynamicMesh* columnframes;
65 class SBSIMPEXP ElevatorManager : public Object
68 ElevatorManager(Object* parent);
70 Elevator* Create(int number);
72 Elevator* Get(int number);
73 Elevator* GetIndex(int index);
74 void Remove(Elevator *elevator);
75 void EnableAll(bool value);
80 int number; //elevator number
81 Elevator* object; //elevator object reference
84 std::vector<Map> Array; //elevator object array
91 class SBSIMPEXP ShaftManager : public Object
94 ShaftManager(Object* parent);
96 Shaft* Create(int number, float CenterX, float CenterZ, int _startfloor, int _endfloor);
98 Shaft* Get(int number);
99 Shaft* GetIndex(int index);
100 void Remove(Shaft *shaft);
101 void EnableAll(bool value);
106 int number; //shaft number
107 Shaft* object; //shaft object reference
110 std::vector<Map> Array; //shaft object array
117 class SBSIMPEXP StairsManager : public Object
120 StairsManager(Object* parent);
122 Stairs* Create(int number, float CenterX, float CenterZ, int _startfloor, int _endfloor);
124 Stairs* Get(int number);
125 Stairs* GetIndex(int index);
126 void Remove(Stairs *stairs);
127 void EnableAll(bool value);
132 int number; //stairwell number
133 Stairs* object; //stairwell object reference
136 std::vector<Map> Array; //stairs object array
143 class SBSIMPEXP DoorManager : public Object
146 DoorManager(Object* parent);
148 Door* AddDoor(const std::string &open_sound, const std::string &close_sound, bool open_state, const std::string &texture, float thickness, int direction, float speed, float CenterX, float CenterZ, float width, float height, float voffset, float tw, float th);
149 void RemoveDoor(Door *door);
151 Door* GetIndex(int index);
155 std::vector<Door*> Array;
156 DynamicMesh *wrapper; //door dynamic mesh wrapper