Moka controlers
 All Classes Namespaces Files Functions Variables Typedefs Enumerator Friends Macros
parameter-selection.hh
Go to the documentation of this file.
1 /*
2  * lib-controler-gmap : Le contrôleur de 3-G-cartes, surcouche de lib-controler.
3  * Copyright (C) 2004, Moka Team, Université de Poitiers, Laboratoire SIC
4  * http://www.sic.sp2mi.univ-poitiers.fr/
5  * Copyright (C) 2009, Guillaume Damiand, CNRS, LIRIS,
6  * guillaume.damiand@liris.cnrs.fr, http://liris.cnrs.fr/
7  *
8  * This file is part of lib-controler-gmap
9  *
10  * This program is free software: you can redistribute it and/or modify
11  * it under the terms of the GNU Lesser General Public License as published by
12  * the Free Software Foundation, either version 3 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU Lesser General Public License for more details.
19  *
20  * You should have received a copy of the GNU Lesser General Public License
21  * along with this program. If not, see <http://www.gnu.org/licenses/>.
22  */
23 
24 //******************************************************************************
25 #ifndef PARAMETER_SELECTION_HH
26 #define PARAMETER_SELECTION_HH
27 //******************************************************************************
28 #include "parameter.hh"
29 #include "kernel-types.hh"
30 //******************************************************************************
31 namespace GMap3d
32 {
33  class CControlerGMap;
34  class CDart;
35 
37  {
38  public:
40 
42  int ANbSelectionLevels,
43  int ANbRef = 0);
44 
46  virtual ~CParameterSelection();
47  virtual CParameter * copy() const;
49 
51 
52  virtual void save(std::ostream &);
53  virtual void load(std::istream &);
54  virtual void reinit();
55 
57 
59 
60  // Pour récupérer les informations de sélection
61  int getNbSelectionLevels() const;
62 
63  int getSelectionLevel () const;
64  int getNextSelectionLevel(int AIndex=1) const;
65  void setSelectionLevel (int ALevel);
66 
67  bool getHalfSelection() const;
68  void setHalfSelection(bool ABool);
69 
70  // Pour récupérer les marques de sélections
71  int getSelectionMark () const;
72  int getSelectionMark (int ALevel) const;
73  int getNextSelectionMark(int AIndex=1) const;
74 
75  // Accéder à l'orbite de selection.
76  TOrbit getSelectionOrbit () const;
77  void setSelectionOrbit (TOrbit AOrbit);
78  void setNextSelectionOrbit();
79 
80  // Pour récupérer les dernier brins sélectionnés
81  CDart* getLastSelectedDart () const;
82  CDart* getLastSelectedDart (int ALevel) const;
83  CDart* getNextLastSelectedDart(int AIndex=1) const;
84 
85  // Sélection des dernier brins
86  void setLastSelectedDart(CDart* ALastDart);
87  void setLastSelectedDart(int ALevel, CDart* ALastDart);
88 
89  // Déselection des dernier brins
90  void unsetLastSelectedDart ();
91  void unsetLastSelectedDart (int ALevel);
92  void unsetNextLastSelectedDart(int AIndex=1);
94 
95  // Pour échanger les niveaux de sélections.
96  void swapLevels(int ALevel1, int ALevel2);
97 
99  bool getChanged() const;
100 
102  void setChanged();
103 
105  void unsetChanged();
106 
108  virtual int getType() const;
109 
110  // Pour sélectionner ou déséllectionner une orbite selon son état actuel.
111  // Utilisé par le picking.
112  void toggleOrbitSelection (CDart* ADart);
113 
115 
116  private:
117 
119 
120  CControlerGMap* FControlerGMapV;
121 
122  int FNbLevels;
123  int FCurrentLevel;
124  int* FMarks;
125  CDart** FLasts;
126 
127  TOrbit FSelectionOrbit;
128  bool FHalfSelection;
129 
131  bool FChanged;
132 
134  };
135 
136 } // namespace GMap3d
137 //******************************************************************************
138 #endif // PARAMETER_SELECTION_HH
139 //******************************************************************************