00001 /* 00002 * lib-controler-gmap : Le contrôleur de 3-G-cartes, surcouche de lib-controler. 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-controler-gmap 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 #include "g-map-vertex.hh" 00026 #include "controler-gmap.hh" 00027 #include <cassert> 00028 00029 using namespace GMap3d; 00030 //****************************************************************************** 00031 bool CControlerGMap::dual2d() 00032 { 00033 bool res = false; 00034 if (canApplyOperation(COperation(OPERATION_DUAL, 2))) 00035 { 00036 undoRedoPreSave(); 00037 00038 if (FMap->dualOfMarkedDarts(2, getSelectionMark()) <= 0) 00039 { 00040 setMessage("Dual 2D impossible. Sélectionnez des brins"); 00041 undoRedoPostSaveFailed(); 00042 } 00043 else 00044 { 00045 undoRedoPostSaveOk(); 00046 setModelChanged(); 00047 setMessage("Dual 2D effectué"); 00048 res = true; 00049 } 00050 } 00051 00052 return res; 00053 } 00054 //****************************************************************************** 00055 bool CControlerGMap::dual3d() 00056 { 00057 bool res = false; 00058 if (canApplyOperation(COperation(OPERATION_DUAL, 3))) 00059 { 00060 undoRedoPreSave(); 00061 00062 if (FMap->dualOfMarkedDarts(3, getSelectionMark()) <= 0) 00063 { 00064 setMessage("Dual 3D impossible. Sélectionnez des brins"); 00065 undoRedoPostSaveFailed(); 00066 } 00067 else 00068 { 00069 undoRedoPostSaveOk(); 00070 setModelChanged(); 00071 setMessage("Dual 3D effectué"); 00072 res = true; 00073 } 00074 } 00075 00076 return res; 00077 } 00078 //******************************************************************************
1.5.8