Code_TYMPAN  4.4.0
Industrial site acoustic simulation
TYElementPicker.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 
26 #ifndef __TY_ELEMENT_PICKER__
27 #define __TY_ELEMENT_PICKER__
28 
29 #include <qobject.h>
30 #include <memory>
31 #include "TYAppDefines.h"
33 
34 class TYMaillage;
35 class TYPointCalcul;
36 
41 class TYElementPicker : public QObject
42 {
43  Q_OBJECT
44 
45 public:
48 
54  {
55  return _pLastPickedElt;
56  }
57 
58 public slots:
63  bool pick(int x, int y);
64 
70  void updateParents(TYElement* pElt);
71 
76  void highlightElement(TYElement* pElt);
77 
82  void reset();
83 
84 signals:
91  void elementPicked(TYElement* pElt);
92 
101 
109  void elementCollectionPicked(std::shared_ptr<LPTYElementArray> pElts);
110 
111  // Ces elements sont pickes directement ("bas niveau")
112  void pointPicked(TYElement* pElt);
121  void routePicked(TYElement* pElt);
125  void dallePicked(TYElement* pElt);
133 
134  // Ces elements sont pickes indirectement ("haut niveau")
135  // Ce sont les parents des elements bas niveau.
137  void murPicked(TYElement* pElt);
140  void etagePicked(TYElement* pElt);
144  void sitePicked(TYElement* pElt);
146 
148  void ecranPicked(TYElement* pElt);
149 
150 protected:
160  bool checkType(TYElement* pElt);
161 
169 
170 protected:
173 
176 
179 
181  int _x;
183  int _y;
184 };
185 
186 #endif // __TY_ELEMENT_PICKER__
gestion des elements selectionnes par picking
void courbeNiveauPicked(TYElement *pElt)
LPTYElementGraphic _pHighlightedGraphicObject
Pointeur sur le dernier objet graphique highlighte.
void etagePicked(TYElement *pElt)
void elementPicked(TYElement *pElt)
Indique qu'un element a ete picke, sans connaitre son type. Celui-ci sera de type "bas niveau".
void acousticRectangleNodePicked(TYElement *pElt)
void updateParents(TYElement *pElt)
Parcours les parents depuis le dernier element picke et emets les signaux correcpondants.
void pointPicked(TYElement *pElt)
void linearMaillagePicked(TYElement *pElt)
bool checkType(TYElement *pElt)
Teste le type de l'element passe et emet le signal correspondant au type, avec en parametre l'element...
void maillagePicked(TYElement *pElt)
void sourcePonctuellePicked(TYElement *pElt)
void acousticLinePicked(TYElement *pElt)
void ecranPicked(TYElement *pElt)
void reset()
Retourne dans son etat initial.
void acousticSemiCylinderPicked(TYElement *pElt)
void siteNodePicked(TYElement *pElt)
int _x
Position courante en x.
TYPointCalcul * findPointCalculOnMaillage(TYMaillage *pMaillage)
Effectue un picking sur un maillage.
TYElementPicker(TYModelerFrame *pModeler)
int _y
Position courante en y.
void pointControlPicked(TYElement *pElt)
void highlightElement(TYElement *pElt)
Dessine la boite englobante de l'element passe.
TYModelerFrame * _pModeler
Le modeler dans lequel on effectue le picking.
void machinePicked(TYElement *pElt)
void topographiePicked(TYElement *pElt)
void routePicked(TYElement *pElt)
void acousticBoxPicked(TYElement *pElt)
void acousticCylinderPicked(TYElement *pElt)
void dallePicked(TYElement *pElt)
TYElement * _pLastPickedElt
Le dernier element picke.
void coursEauPicked(TYElement *pElt)
void sitePicked(TYElement *pElt)
bool pick(int x, int y)
Effectue un picking en (x, y).
void pointCalculPicked(TYElement *pElt)
void murPicked(TYElement *pElt)
void acousticFaceSetPicked(TYElement *pElt)
void acousticSemiCirclePicked(TYElement *pElt)
void reseauTransportPicked(TYElement *pElt)
void acousticRectanglePicked(TYElement *pElt)
void elementCollectionPicked(std::shared_ptr< LPTYElementArray > pElts)
Indique qu'un element a ete picke, sans connaitre son type. La collection d'elements pickes est compo...
void planEauPicked(TYElement *pElt)
void batimentPicked(TYElement *pElt)
TYElement * getLastPickedElement()
Retourne le dernier element picke.
void terrainPicked(TYElement *pElt)
void acousticVolumeNodePicked(TYElement *pElt)
void highestParentPicked(TYElement *pElt)
Indique qu'un element parent a ete picke, ce sera le dernier parent de l'element de base picke....
void acousticCirclePicked(TYElement *pElt)
void rectangularMaillagePicked(TYElement *pElt)
void murElementPicked(TYElement *pElt)
Classe de definition d'un maillage.
Definition: TYMaillage.h:51
Classe generique pour une fenetre de modeleur.
Classe de definition d'un point de calcul.C'est une classe derivee a TYPoint avec en plus un spectrep...
Definition: TYPointCalcul.h:33