Code_TYMPAN  4.4.0
Industrial site acoustic simulation
OGLLight.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) <2012> <EDF-R&D> <FRANCE>
3  * This program is free software; you can redistribute it and/or modify
4  * it under the terms of the GNU General Public License as published by
5  * the Free Software Foundation; either version 2 of the License, or
6  * (at your option) any later version.
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10  * See the GNU General Public License for more details.
11  * You should have received a copy of the GNU General Public License along
12  * with this program; if not, write to the Free Software Foundation, Inc.,
13  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
14  */
15 
16 /*
17  *
18  */
19 
20 #include "OGLLight.h"
21 
22 #if _WIN32
23  #include <windows.h>
24 #endif //_WIN32
25 
26 #include <GL/gl.h>
27 
29 
31 
33 
34 void OGLLight::drawLight(const int index, const OPoint3D& position, const float intensity) const
35 {
36  // On modifie
37  // float lightIntensity[4] = {intensity, intensity, intensity, 1};
38  float lightIntensity[4] = {intensity, intensity, intensity, intensity};
39  float lightPos[4] = {(float)position._x, (float)position._y, (float)position._z, .0};
40  GLenum light = GL_LIGHT0;
41  switch (index)
42  {
43  case 0:
44  light = GL_LIGHT0;
45  break;
46  case 1:
47  light = GL_LIGHT1;
48  break;
49  case 2:
50  light = GL_LIGHT2;
51  break;
52  case 3:
53  light = GL_LIGHT3;
54  break;
55  case 4:
56  light = GL_LIGHT4;
57  break;
58  case 5:
59  light = GL_LIGHT5;
60  break;
61  }
62  glEnable(light);
63  glLightfv(light, GL_DIFFUSE, lightIntensity);
64  glLightfv(light, GL_POSITION, lightPos);
65 }
All base classes related to 3D manipulation.
double _y
y coordinate of OCoord3D
Definition: 3d.h:283
double _z
z coordinate of OCoord3D
Definition: 3d.h:284
double _x
x coordinate of OCoord3D
Definition: 3d.h:282
void drawLight(const int index, const OPoint3D &position, const float intensity) const
Definition: OGLLight.cpp:34
virtual ~OGLLight()
Definition: OGLLight.cpp:32
OGLLight()
Definition: OGLLight.cpp:30
The 3D point class.
Definition: 3d.h:487