Code_TYMPAN  4.4.0
Industrial site acoustic simulation
OGLMesh.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 "gui/tools/OGLMesh.h"
17 #include <qcolor.h>
18 #include <qvector3d.h>
19 
20 const std::vector<QVector3D>& OGLMesh::vertices() const
21 {
22  return _vertices;
23 };
24 
25 const std::vector<float>& OGLMesh::verticesColors() const
26 {
27  return _verticesColors;
28 };
29 
30 const std::vector<QVector3D>& OGLMesh::normals() const
31 {
32  return _normals;
33 };
34 
35 const std::vector<QVector2D>& OGLMesh::textureCoordinates() const
36 {
37  return _textureCoordinates;
38 };
39 
40 const std::vector<unsigned int>& OGLMesh::indices() const
41 {
42  return _indices;
43 };
44 
46 {
48 }
49 
51 {
52  return _material;
53 }
55 {
56  return _material;
57 }
58 
60 {
62  bool first = true;
63 
64  for (QVector3D pt : _vertices)
65  {
66  if (first)
67  {
68  boundingBox = OBox(pt.x(), pt.y(), pt.z(), pt.x(), pt.y(), pt.z());
69  first = false;
70  }
71  else
72  {
73  boundingBox.Enlarge(pt.x(), pt.y(), pt.z());
74  }
75  }
77 }
The box class.
Definition: 3d.h:1346
virtual void Enlarge(const OPoint3D &pt)
Enlarge the box with the point if the point is outside the box.
Definition: 3d.cpp:1614
std::vector< QVector3D > _vertices
Definition: OGLMesh.h:101
OGLSimpleMaterial _material
Definition: OGLMesh.h:106
const OBox boundingBox() const
Definition: OGLMesh.h:95
OBox _boundingBox
Definition: OGLMesh.h:108
const std::vector< unsigned int > & indices() const
Definition: OGLMesh.cpp:40
const std::vector< QVector3D > & normals() const
Definition: OGLMesh.cpp:30
const std::vector< QVector3D > & vertices() const
Definition: OGLMesh.cpp:20
std::vector< unsigned int > _indices
Definition: OGLMesh.h:105
std::vector< float > _verticesColors
Definition: OGLMesh.h:102
void setMaterial(const OGLSimpleMaterial &material)
Definition: OGLMesh.cpp:45
const std::vector< QVector2D > & textureCoordinates() const
Definition: OGLMesh.cpp:35
OGLSimpleMaterial & material()
Definition: OGLMesh.cpp:50
std::vector< QVector3D > _normals
Definition: OGLMesh.h:103
const std::vector< float > & verticesColors() const
Definition: OGLMesh.cpp:25
std::vector< QVector2D > _textureCoordinates
Definition: OGLMesh.h:104
void recomputeBoundingBox()
Definition: OGLMesh.cpp:59