Moka libraries
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
sweeping-comparators.hh
Go to the documentation of this file.
1 /*
2  * lib-corefinement : Opérations de corafinement.
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-corefinement
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 SWEEPING_COMPARATORS_HH
26 #define SWEEPING_COMPARATORS_HH
27 //******************************************************************************
28 #include "math-extension.hh"
29 #include "vertex.hh"
30 
31 //******************************************************************************
32 namespace GMap3d
33 {
34  class CDartVertex;
35  class CGMapVertex;
36 
43  // @{
44 
46  {
47  public:
48  // @name Constructeur
49  // @{
50 
64  CDartCompare(CGMapVertex* AMap,
65  int ADirectVertex, int AExtremity1, const CVertex& AZVector);
66 
67  // @}
68  // @name Méthode de projection
69  // @{
70 
83  void project(const CVertex& AVertex,
84  TCoordinate& AX, TCoordinate& AY) const;
85 
86  // @}
87 
88  protected:
89  // @name Champs protégés
90  // @{
91 
92  CGMapVertex* FMap;
93 
96 
98 
99  // @}
100  };
101  //----------------------------------------------------------------------------
103  {
104  public:
105  // @name Constructeur
106  // @{
107 
122  CDartLexicoCompare(CGMapVertex* AMap,
123  int ADirectVertex, int AExtremity1,
124  const CVertex& AZVector, bool AExactComparison);
125 
126  // @}
127  // @name Opérateur de comparaison
128  // @{
129 
141  bool operator()(CDartVertex* ADart1, CDartVertex* ADart2) const;
142 
143  // @}
144 
145  // @name Champs Privés
146  // @{
147 
149 
150  // @}
151  };
152 
154  {
155  public:
156  // @name Constructeur
157  // @{
158 
173  CDartVertexerticalCompare(CGMapVertex* AMap,
174  int ADirectVertex, int AExtremity1,
175  const CVertex& AZVector);
176 
177  // @}
178  // @name Opérateur de comparaison
179  // @{
180 
186  bool operator()(CDartVertex* ADart1, CDartVertex* ADart2) const;
187 
194  void setCurrentPoint(const CVertex& AVertex);
195 
196  // @}
197 
198  private:
199  // @name Champs privés
200  // @{
201 
203  static TCoordinate FX;
204 
205  // @}
206  };
207  //****************************************************************************
209  {
210  public:
211  // @name Constructeur
212  // @{
213 
225  CDartAngularCompare(CGMapVertex* AMap, int ADirectVertex,
226  const CVertex& AZVector);
227 
228  // @}
229  // @name Opérateur de comparaison
230  // @{
231 
237  bool operator()(CDartVertex* ADart1, CDartVertex* ADart2) const;
238 
239  // @}
240  // @name Champs privés
241  // @{
242 
243  CVertex FZVector;
244 
245  // @}
246  };
247  //****************************************************************************
249  {
250  public:
251  // @name Attributs publics
252  // @{
253 
258  TCoordinate FLambda;
259 
262 
263  // @}
264  // @name Constructeur
265  // @{
266 
276  CIntersection(const TCoordinate& ALambda, int AIdentity);
277 
278  // @}
279  };
280  //****************************************************************************
282  {
283  public:
284  // @name Constructeur
285  // @{
286 
292 
293  // @}
294  // @name Opérateur de comparaison
295  // @{
296 
302  bool operator()(CIntersection* AIntersection1,
303  CIntersection* AIntersection2) const;
304 
305  // @}
306  };
307 
308  // @}
309 
310 } // namespace GMap3d
311 //******************************************************************************
312 #endif // SWEEPING_COMPARATORS_HH
313 //******************************************************************************