Moka libraries
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
corefinement-api.hh
Go to the documentation of this file.
1 /*
2  * lib-corefinement : Opérations de corafinement.
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-corefinement
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 COREF_API_HH
26 #define COREF_API_HH
27 
28 //******************************************************************************
29 namespace GMap3d
30 {
31  class CGMapVertex;
32  class CDart;
33 }
34 class CVertex;
35 //******************************************************************************
37 {
38 private:
39  GMap3d::CGMapVertex * FMap;
40 
41 public:
42  CCorefinementAPI(GMap3d::CGMapVertex * AMap);
43  virtual ~CCorefinementAPI();
44 
45  void corefine2dMeshesSweeping(GMap3d::CDart * ADart1,
46  GMap3d::CDart * ADart2, const CVertex& ANormal);
47 
48  void corefine2dMeshesPropagation(GMap3d::CDart * ADart1,
49  GMap3d::CDart * ADart2,
50  const CVertex & ANormal,
51  bool useBBox = false);
52 
53  void corefine3dMeshes(GMap3d::CDart * ADart1, GMap3d::CDart * ADart2);
54  void corefineMarked3dFaces(int AMark1, int AMark2);
55  void corefineMarked3dMeshesWith(int AMark, GMap3d::CDart * ADart);
56 
57  void booleanOperations2d(GMap3d::CDart * ADart1, GMap3d::CDart * ADart2,
58  const CVertex & ANormal,
59  int ADifference1Mark = -1,
60  int ADifference2Mark = -1,
61  int AIntersectionMark = -1,
62  int AUnionMark = -1);
63 
64  void booleanOperations3d(GMap3d::CDart * ADart1, GMap3d::CDart * ADart2,
65  int ADifference1Mark = -1,
66  int ADifference2Mark = -1,
67  int AIntersectionMark = -1,
68  int AUnionMark = -1);
69 };
70 //******************************************************************************
71 #endif // COREF_API_HH
72 //******************************************************************************