Code_TYMPAN  4.4.0
Industrial site acoustic simulation
OGLBoxMesh.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) <2012-2024> <EDF-DTG> <FRANCE>
3  * This file is part of Code_TYMPAN (R).
4  * Code_TYMPAN (R) is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation, either version 3 of the License, or
7  * (at your option) any later version.
8  * Code_TYMPAN (R) is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
11  * See the GNU General Public License for more details.
12  * You should have received a copy of the GNU General Public License along
13  * with Code_TYMPAN (R). If not, see <https://www.gnu.org/licenses/>.
14  */
15 
16 #include "OGLBoxMesh.h"
18 #include "models/common/3d.h"
19 #include <qvector3d.h>
20 
21 OGLBoxMesh::OGLBoxMesh(const QVector3D& dimensions)
22 {
24 }
25 
26 void OGLBoxMesh::setDimensions(const QVector3D& dimensions)
27 {
29  QVector3D halfDimensions = dimensions / 2;
30 
31  // 8 corners of the box
32  _vertices = {
33  QVector3D(1, -1, -1) * halfDimensions, // 0
34  QVector3D(-1, -1, -1) * halfDimensions, // 1
35  QVector3D(-1, 1, -1) * halfDimensions, // 2
36  QVector3D(1, 1, -1) * halfDimensions, // 3
37  QVector3D(1, -1, 1) * halfDimensions, // 4
38  QVector3D(-1, -1, 1) * halfDimensions, // 5
39  QVector3D(-1, 1, 1) * halfDimensions, // 6
40  QVector3D(1, 1, 1) * halfDimensions, // 7
41  };
42 
43  // Line indices to draw the box edges
44  _indices = {
45  0, 1, 1, 2, 2, 3, 3, 0, // bottom face
46  4, 5, 5, 6, 6, 7, 7, 4, // top face
47  0, 4, 1, 5, 2, 6, 3, 7 // vertical edges
48  };
49 }
50 
51 const QVector3D& OGLBoxMesh::dimensions() const
52 {
53  return _dimensions;
54 }
All base classes related to 3D manipulation.
const QVector3D & dimensions() const
Definition: OGLBoxMesh.cpp:51
OGLBoxMesh(const QVector3D &dimensions)
Definition: OGLBoxMesh.cpp:21
void setDimensions(const QVector3D &dimensions)
Definition: OGLBoxMesh.cpp:26
QVector3D _dimensions
Definition: OGLBoxMesh.h:42
std::vector< QVector3D > _vertices
Definition: OGLMesh.h:53
std::vector< unsigned int > _indices
Definition: OGLMesh.h:54