00001 /* 00002 * lib-gmapkernel : Un noyau de 3-G-cartes et des opérations. 00003 * Copyright (C) 2004, Moka Team, Université de Poitiers, Laboratoire SIC 00004 * http://www.sic.sp2mi.univ-poitiers.fr/ 00005 * Copyright (C) 2009, Guillaume Damiand, CNRS, LIRIS, 00006 * guillaume.damiand@liris.cnrs.fr, http://liris.cnrs.fr/ 00007 * 00008 * This file is part of lib-gmapkernel 00009 * 00010 * This program is free software: you can redistribute it and/or modify 00011 * it under the terms of the GNU Lesser General Public License as published by 00012 * the Free Software Foundation, either version 3 of the License, or 00013 * (at your option) any later version. 00014 * 00015 * This program is distributed in the hope that it will be useful, 00016 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00017 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00018 * GNU Lesser General Public License for more details. 00019 * 00020 * You should have received a copy of the GNU Lesser General Public License 00021 * along with this program. If not, see <http://www.gnu.org/licenses/>. 00022 */ 00023 00024 //****************************************************************************** 00025 // Generic coverage class following different orbits in gmaps. 00026 //****************************************************************************** 00027 #ifndef COVERAGE_HH 00028 #define COVERAGE_HH 00029 //****************************************************************************** 00030 #include "kernel-types.hh" 00031 #include "inline-macro.hh" 00032 //****************************************************************************** 00033 #define COVERAGE0 (0) 00034 #define COVERAGE1 (1) 00035 #define COVERAGE2A (2) 00036 #define COVERAGE2B (3) 00037 #define COVERAGE3A (4) 00038 #define COVERAGE3B (5) 00039 #define COVERAGE4 (6) 00040 00041 #define COVERAGE_BORDER (7) 00042 #define COVERAGE_ALL (8) 00043 00044 #define COVERAGE_REAL_FACE (9) 00045 //****************************************************************************** 00046 namespace GMap3d 00047 { 00048 class CDart; 00049 class CGMapBasic; 00050 00057 class CCoverage 00058 { 00059 public: 00060 // @name Constructeur et destructeur. 00061 // @{ 00062 00064 CCoverage(CGMapBasic* AMap); 00065 00067 virtual ~CCoverage(); 00068 00069 // @} 00070 00072 CGMapBasic* getMap() const; 00073 00074 // @name Méthodes virtuelles pures implémentées dans les classes filles 00075 // @{ 00076 00078 virtual void reinit() = 0; 00079 00081 virtual void operator++() = 0; 00082 00084 virtual CDart* operator++(int) = 0; 00085 00087 virtual bool cont() = 0; 00088 00090 virtual CDart* operator*() = 0; 00091 00093 virtual TOperationState prevOperationType(); 00094 00096 virtual int type() const = 0; 00097 00098 // @} 00099 00100 protected: 00101 // @name Champs privés 00102 // @{ 00103 00105 CGMapBasic* FMap; 00106 00107 // @} 00108 }; 00109 00110 } // namespace GMap3d 00111 //****************************************************************************** 00112 #include INCLUDE_INLINE("coverage.icc") 00113 //****************************************************************************** 00114 #endif // COVERAGE_HH 00115 //******************************************************************************