Moka libraries
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
spamod-api.hh
Go to the documentation of this file.
1 /*
2  * lib-spamod : Visualisation des objets en discret.
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-spamod
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 SPAMOD_API_HH
26 #define SPAMOD_API_HH
27 //******************************************************************************
28 #include "spamod-types.hh"
29 
30 #ifdef _WINDOWS
31 #include <windows.h>
32 #endif
33 
34 #ifdef __APPLE__
35 #include <OpenGL/gl.h>
36 #else
37 #include <GL/gl.h>
38 #endif
39 
40 #include <bitset>
41 
42 class Color_Table;
43 
44 namespace GMap3d
45 {
46  class CGMap;
47 
48  class Topologic_View;
49  class Analytic_View;
50  class Euclidian_View;
51  class Voxel_View;
52  class K2_View;
53  //****************************************************************************
54  class CSpamodAPI
55  {
56  private:
57  CGMap * FMap;
58 
59  Topologic_View * TV;
60  Euclidian_View * EV;
61  Analytic_View * AV;
62  Voxel_View * VV;
63  K2_View * KV;
64 
65  TSpamodViewMode FViewMode;
66 
67  /* Pour mémoriser les orbites initialement utilisées dans la carte:
68  */
69 
70  std::bitset<16> FUsedOrbits;
71 
72  /* Couleurs:
73  */
74 
75  Color_Table * colors;
76 
77  /* Paramètres de la vue euclidienne:
78  * FEuclidianParam[0]: affichage fil de fer,
79  * FEuclidianParam[1]: affichage faces pleines.
80  */
81  bool FEuclidianParam[2];
82 
83  /* Paramètres de la vue analytique
84  * FAnalyticParam[0]: affichage des sommets,
85  * FAnalyticParam[1]: affichage des arêtes,
86  * FAnalyticParam[2]: affichage des face,
87  * FAnalyticParam[3]: transparence
88  */
89  bool FAnalyticParam[4];
90 
91  /* Paramètres de la vue voxel:
92  * FVoxelParam[0]: affichage des sommets,
93  * FVoxelParam[1]: affichage des arêtes,
94  * FVoxelParam[2]: affichage des faces.
95  */
96  bool FVoxelParam[3];
97 
98  /* Paramètres de la vue K2:
99  * FK2Param[0]: affichage des pointels,
100  * FK2Param[1]: affichage des lignels,
101  * FK2Param[2]: affichage des surfels.
102  */
103  bool FK2Param[3];
104 
105  protected:
106  /* Méthode permettant de calculer les embeddings que SpaMod utilise.
107  */
109 
110  /* Méthode permettant de détruire les embeddings que SpaMod utilise.
111  */
112  void deleteSpamodEmbeddings();
113 
114  public:
115  CSpamodAPI(CGMap * AMap);
116  virtual ~CSpamodAPI();
117 
118  // Définition du mode de visualisation:
121 
122  // Accessseurs aux paramètres de la vue euclidienne:
123  bool getEuclidianParam(int i);
124  void setEuclidianParam(int i, bool val);
125 
126  // Accessseurs aux paramètres de la vue analytique:
127  bool getAnalyticParam(int i);
128  void setAnalyticParam(int i, bool val);
129 
130  // Accessseurs aux paramètres de la vue voxel:
131  bool getVoxelParam(int i);
132  void setVoxelParam(int i, bool val);
133 
134  // Accessseurs aux paramètres de la vue K2:
135  bool getK2Param(int i);
136  void setK2Param(int i, bool val);
137 
138  void drawMap();
139  };
140 
141 } // namespace GMap3d
142 //******************************************************************************
143 #endif // SPAMOD_API_HH
144 //******************************************************************************