Moka libraries
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
image-3d-magick.hh
Go to the documentation of this file.
1 /*
2  * lib-extraction-images : Extraction de cartes à partir d'images 2D et 3D.
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-extraction-images
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 MODULE_EXTRACTION_IMAGE_WITHOUT_MAGICK
26 //******************************************************************************
27 #ifndef IMAGE_3D_MAGICK_HH
28 #define IMAGE_3D_MAGICK_HH
29 
30 #include "image-3d.hh"
31 #include "inline-macro.hh"
32 
33 #include <string>
34 #include <Magick++.h>
35 //******************************************************************************
36 
41 namespace GMap3d
42 {
43 
44  class CImage3dMagick: public CImage3d
45  {
46  public:
47  CImage3dMagick(const std::string & AFilename,
48  int FirstPlane=0, int NbPlaneToRead=0, unsigned int Lg=3);
49 
51 
52  bool sameVoxel(unsigned int Ax1, unsigned int Ay1, bool Az1,
53  unsigned int Ax2, unsigned int Ay2, bool Az2) const;
54 
58  // (l'octet de poid fort n'est pas utilisé)
59  bool sameVoxel(unsigned int Ax, unsigned int Ay, bool Az,
60  int ARed, int AGreen, int ABlue, int AAlpha ) const;
61 
62  protected:
63  bool readData();
64  void freePlane(bool AActuPlane);
65  void pushPlane();
66 
67  private:
68  void computePrefix(const std::string & AFileName);
69 
70  Magick::Image * FPrevPlane;
71  Magick::Image * FActuPlane;
72 
73  std::string FPrefix;
74  // Longueur de la chaîne de caractères FPrefix :
75  unsigned int FPrefixLongueur;
76  // Nombre de chiffres pour coder les plans dans le nom des fichiers :
77  unsigned int FLg;
78  };
79 
80 } // namespace GMap3d
81 //******************************************************************************
82 #include INCLUDE_INLINE("image-3d-magick.icc")
83 //******************************************************************************
84 #endif // IMAGE_3D_MAGICK_HH
85 //******************************************************************************
86 #endif // MODULE_EXTRACTION_IMAGE_WITHOUT_MAGICK
87 //******************************************************************************