Recreating my GSoC branch.
[blender.git] / source / gameengine / Converter / BlenderWorldInfo.cpp
1 /**
2  * $Id$
3  * ***** BEGIN GPL LICENSE BLOCK *****
4  *
5  * This program is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU General Public License
7  * as published by the Free Software Foundation; either version 2
8  * of the License, or (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software Foundation,
17  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18  *
19  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
20  * All rights reserved.
21  *
22  * The Original Code is: all of this file.
23  *
24  * Contributor(s): none yet.
25  *
26  * ***** END GPL LICENSE BLOCK *****
27  */
28
29 #include <stdio.h>  // printf()
30
31 #include "BlenderWorldInfo.h"
32 #include "KX_BlenderGL.h"
33
34 /* This little block needed for linking to Blender... */
35 #ifdef WIN32
36 #include "BLI_winstuff.h"
37 #endif
38
39 /* This list includes only data type definitions */
40 #include "DNA_object_types.h"
41 #include "DNA_material_types.h"
42 #include "DNA_image_types.h"
43 #include "DNA_lamp_types.h"
44 #include "DNA_group_types.h"
45 #include "DNA_scene_types.h"
46 #include "DNA_camera_types.h"
47 #include "DNA_property_types.h"
48 #include "DNA_text_types.h"
49 #include "DNA_sensor_types.h"
50 #include "DNA_controller_types.h"
51 #include "DNA_actuator_types.h"
52 #include "DNA_mesh_types.h"
53 #include "DNA_meshdata_types.h"
54 #include "DNA_view3d_types.h"
55 #include "DNA_world_types.h"
56 #include "DNA_screen_types.h"
57
58 #include "BKE_global.h"
59 /* end of blender include block */
60
61
62 BlenderWorldInfo::BlenderWorldInfo(struct World* blenderworld)
63 {
64         if (blenderworld)
65         {
66                 m_hasworld = true;
67
68                 // do we have mist?
69                 if ((blenderworld->mode) & WO_MIST)
70                 {
71                         m_hasmist = true;
72                         m_miststart = blenderworld->miststa;
73                         m_mistdistance = blenderworld->mistdist;
74                         m_mistred = blenderworld->horr;
75                         m_mistgreen = blenderworld->horg;
76                         m_mistblue = blenderworld->horb;
77                 }
78                 else
79                 {
80                         m_hasmist = false;
81                         m_miststart = 0.0;
82                         m_mistdistance = 0.0;
83                         m_mistred = 0.0;
84                         m_mistgreen = 0.0;
85                         m_mistblue = 0.0;
86                 }
87
88                 m_backgroundred = blenderworld->horr;
89                 m_backgroundgreen = blenderworld->horg;
90                 m_backgroundblue = blenderworld->horb;
91                 
92                 m_ambientred = blenderworld->ambr;
93                 m_ambientgreen = blenderworld->ambg;
94                 m_ambientblue = blenderworld->ambb;
95         }
96         else
97         {
98                 m_hasworld = false;
99         }
100 }
101
102
103
104 BlenderWorldInfo::~BlenderWorldInfo()
105 {
106
107 }
108
109
110 bool BlenderWorldInfo::hasWorld()
111 {
112         return m_hasworld;
113 }
114
115
116
117 bool BlenderWorldInfo::hasMist()
118 {
119         return m_hasmist;
120 }
121
122
123
124 float BlenderWorldInfo::getBackColorRed()
125 {
126         return m_backgroundred;
127 }
128
129
130
131 float BlenderWorldInfo::getBackColorGreen()
132 {
133         return m_backgroundgreen;
134 }  
135
136
137
138 float BlenderWorldInfo::getBackColorBlue()
139 {
140         return m_backgroundblue;
141 }  
142
143
144 float BlenderWorldInfo::getAmbientColorRed()
145 {
146         return m_ambientred;
147 }
148
149 float BlenderWorldInfo::getAmbientColorGreen()
150 {
151         return m_ambientgreen;
152 }
153
154 float BlenderWorldInfo::getAmbientColorBlue()
155 {
156         return m_ambientblue;
157 }
158
159 float BlenderWorldInfo::getMistStart()
160 {
161         return m_miststart;
162 }
163
164
165
166 float BlenderWorldInfo::getMistDistance()
167 {
168         return m_mistdistance;
169 }  
170     
171
172     
173 float BlenderWorldInfo::getMistColorRed()
174 {
175         return m_mistred;
176 }
177
178
179
180 float BlenderWorldInfo::getMistColorGreen()
181 {
182         return m_mistgreen;
183 }   
184
185
186
187 float BlenderWorldInfo::getMistColorBlue()
188 {
189         return m_mistblue;
190 }
191
192
193         void    
194 BlenderWorldInfo::setMistStart(
195         float d
196 ) {
197         m_miststart = d;
198 }
199
200
201         void
202 BlenderWorldInfo::setMistDistance(
203         float d
204 ) {
205         m_mistdistance = d;
206 }
207
208
209         void    
210 BlenderWorldInfo::setMistColorRed(
211         float d
212 ) {
213         m_mistred = d;
214 }
215
216
217         void
218 BlenderWorldInfo::setMistColorGreen(
219         float d
220 ) {
221         m_mistgreen = d;
222 }
223
224
225         void    
226 BlenderWorldInfo::setMistColorBlue(
227         float d
228 ) {
229         m_mistblue = d;
230 }