00001 /* 00002 * lib-spamod : Visualisation des objets en discret. 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-spamod 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 #ifndef SPAMOD_API_HH 00026 #define SPAMOD_API_HH 00027 //****************************************************************************** 00028 #include "spamod-types.hh" 00029 00030 #include <GL/gl.h> 00031 #include <bitset> 00032 00033 class Color_Table; 00034 00035 namespace GMap3d 00036 { 00037 class CGMap; 00038 00039 class Topologic_View; 00040 class Analytic_View; 00041 class Euclidian_View; 00042 class Voxel_View; 00043 class K2_View; 00044 //**************************************************************************** 00045 class CSpamodAPI 00046 { 00047 private: 00048 CGMap * FMap; 00049 00050 Topologic_View * TV; 00051 Euclidian_View * EV; 00052 Analytic_View * AV; 00053 Voxel_View * VV; 00054 K2_View * KV; 00055 00056 TSpamodViewMode FViewMode; 00057 00058 /* Pour mémoriser les orbites initialement utilisées dans la carte: 00059 */ 00060 00061 std::bitset<16> FUsedOrbits; 00062 00063 /* Couleurs: 00064 */ 00065 00066 Color_Table * colors; 00067 00068 /* Paramètres de la vue euclidienne: 00069 * FEuclidianParam[0]: affichage fil de fer, 00070 * FEuclidianParam[1]: affichage faces pleines. 00071 */ 00072 bool FEuclidianParam[2]; 00073 00074 /* Paramètres de la vue analytique 00075 * FAnalyticParam[0]: affichage des sommets, 00076 * FAnalyticParam[1]: affichage des arêtes, 00077 * FAnalyticParam[2]: affichage des face, 00078 * FAnalyticParam[3]: transparence 00079 */ 00080 bool FAnalyticParam[4]; 00081 00082 /* Paramètres de la vue voxel: 00083 * FVoxelParam[0]: affichage des sommets, 00084 * FVoxelParam[1]: affichage des arêtes, 00085 * FVoxelParam[2]: affichage des faces. 00086 */ 00087 bool FVoxelParam[3]; 00088 00089 /* Paramètres de la vue K2: 00090 * FK2Param[0]: affichage des pointels, 00091 * FK2Param[1]: affichage des lignels, 00092 * FK2Param[2]: affichage des surfels. 00093 */ 00094 bool FK2Param[3]; 00095 00096 protected: 00097 /* Méthode permettant de calculer les embeddings que SpaMod utilise. 00098 */ 00099 void computeSpamodEmbeddings(); 00100 00101 /* Méthode permettant de détruire les embeddings que SpaMod utilise. 00102 */ 00103 void deleteSpamodEmbeddings(); 00104 00105 public: 00106 CSpamodAPI(CGMap * AMap); 00107 virtual ~CSpamodAPI(); 00108 00109 // Définition du mode de visualisation: 00110 void setViewMode(TSpamodViewMode); 00111 TSpamodViewMode getViewMode() const; 00112 00113 // Accessseurs aux paramètres de la vue euclidienne: 00114 bool getEuclidianParam(int i); 00115 void setEuclidianParam(int i, bool val); 00116 00117 // Accessseurs aux paramètres de la vue analytique: 00118 bool getAnalyticParam(int i); 00119 void setAnalyticParam(int i, bool val); 00120 00121 // Accessseurs aux paramètres de la vue voxel: 00122 bool getVoxelParam(int i); 00123 void setVoxelParam(int i, bool val); 00124 00125 // Accessseurs aux paramètres de la vue K2: 00126 bool getK2Param(int i); 00127 void setK2Param(int i, bool val); 00128 00129 void drawMap(); 00130 }; 00131 00132 } // namespace GMap3d 00133 //****************************************************************************** 00134 #endif // SPAMOD_API_HH 00135 //******************************************************************************