Code_TYMPAN  4.4.0
Industrial site acoustic simulation
TYFaceSet.h
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 #ifndef __TY_FACESET__
21 #define __TY_FACESET__
22 
23 #include "TYRepere.h"
24 #include "TYVolumeInterface.h"
25 
29 class TYFaceSet : public TYElement, public TYVolumeInterface
30 {
34 
35  // Methodes
36 public:
40  TYFaceSet();
44  TYFaceSet(const TYFaceSet& other);
45 
49  virtual ~TYFaceSet();
50 
52  TYFaceSet& operator=(const TYFaceSet& other);
54  bool operator==(const TYFaceSet& other) const;
56  bool operator!=(const TYFaceSet& other) const;
57 
66  virtual bool deepCopy(const TYElement* pOther, bool copyId = true, bool pUseCopyTag = false);
67 
68  virtual std::string toString() const;
69 
70  virtual DOM_Element toXML(DOM_Element& domElement);
71  virtual int fromXML(DOM_Element domElement);
72 
74  // Fonctions de l'interface TYVolumeInterface
75 
76  virtual double volume() const;
77  virtual double surface() const;
78  virtual double activeSurface() const;
79  virtual double activeSurface();
80  virtual TYTabVector normals() const;
81  virtual TYTabPoint sommets() const;
82  virtual TYTabLPPolygon faces() const;
83  virtual TYPoint centreGravite() const;
84 
95  virtual int intersects(const OSegment3D& seg, TYTabPoint& ptList) const;
96 
106  virtual int isInside(const TYPoint& pt) const;
107 
109  // Gestion du tableau contenant les faces...
110 
114  void purge();
115 
119  size_t getNbFaces() const
120  {
121  return _faces.size();
122  }
123 
128  {
129  _faces = faces;
130  UpdateInternals();
131  setIsGeometryModified(true);
132  }
133 
137  void transform(const OMatrix& matrix);
138 
139  virtual void inverseNormales();
140 
141  // Membres
142 private:
149 
150  void UpdateInternals();
151 };
152 
153 #endif // __TY_FACESET__
QDomElement DOM_Element
Definition: QT2DOM.h:30
std::vector< TYPoint > TYTabPoint
Collection de TYPoint.
Definition: TYDefines.h:340
std::vector< OVector3D > TYTabVector
Collection de OVector3D.
Definition: TYDefines.h:398
std::vector< LPTYPolygon > TYTabLPPolygon
Collection de pointeurs de TYPolygon.
Definition: TYDefines.h:349
#define TY_EXT_GRAPHIC_DECL_ONLY(classname)
Definition: TYElement.h:432
#define OPROTODECL(classname)
Definition: TYElement.h:65
#define TY_EXTENSION_DECL_ONLY(classname)
Definition: TYElement.h:386
The 4x4 matrix class.
Definition: 3d.h:625
Class to define a segment.
Definition: 3d.h:1089
virtual void setIsGeometryModified(bool isModified)
Definition: TYElement.cpp:253
virtual DOM_Element toXML(DOM_Element &domElement)
Definition: TYFaceSet.cpp:130
virtual double volume() const
Definition: TYFaceSet.cpp:172
void purge()
Definition: TYFaceSet.cpp:307
void setFaces(const TYTabLPPolygon &faces)
Definition: TYFaceSet.h:127
virtual int intersects(const OSegment3D &seg, TYTabPoint &ptList) const
Definition: TYFaceSet.cpp:254
TYTabLPPolygon _faces
Faces.
Definition: TYFaceSet.h:144
TYTabVector _normals
Normales.
Definition: TYFaceSet.h:148
TYTabPoint _sommets
Sommets.
Definition: TYFaceSet.h:146
void UpdateInternals()
Definition: TYFaceSet.cpp:336
void transform(const OMatrix &matrix)
Definition: TYFaceSet.cpp:324
virtual TYPoint centreGravite() const
Definition: TYFaceSet.cpp:221
virtual ~TYFaceSet()
Definition: TYFaceSet.cpp:39
size_t getNbFaces() const
Definition: TYFaceSet.h:119
virtual double surface() const
Definition: TYFaceSet.cpp:183
virtual std::string toString() const
Definition: TYFaceSet.cpp:119
bool operator!=(const TYFaceSet &other) const
Operateur !=.
Definition: TYFaceSet.cpp:84
TYFaceSet & operator=(const TYFaceSet &other)
Operateur =.
Definition: TYFaceSet.cpp:44
virtual bool deepCopy(const TYElement *pOther, bool copyId=true, bool pUseCopyTag=false)
Definition: TYFaceSet.cpp:89
virtual TYTabVector normals() const
Definition: TYFaceSet.cpp:206
virtual void inverseNormales()
Definition: TYFaceSet.cpp:385
bool operator==(const TYFaceSet &other) const
Operateur ==.
Definition: TYFaceSet.cpp:60
virtual int isInside(const TYPoint &pt) const
Definition: TYFaceSet.cpp:259
virtual int fromXML(DOM_Element domElement)
Definition: TYFaceSet.cpp:146
virtual TYTabLPPolygon faces() const
Definition: TYFaceSet.cpp:216
virtual TYTabPoint sommets() const
Definition: TYFaceSet.cpp:211
virtual double activeSurface() const
Definition: TYFaceSet.cpp:194