Code_TYMPAN  4.4.0
Industrial site acoustic simulation
TYElementPicker.h
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 
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
Generic class for a modeler window.
Classe de definition d'un point de calcul.C'est une classe derivee a TYPoint avec en plus un spectrep...
Definition: TYPointCalcul.h:33