Moka kernel
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
gmv-null-length-edge.cc
Go to the documentation of this file.
1
/*
2
* lib-gmapkernel : Un noyau de 3-G-cartes et des opérations.
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-gmapkernel
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
#include "
g-map-vertex.hh
"
26
using namespace
GMap3d;
27
//******************************************************************************
28
int
CGMapVertex::deleteNullLengthEdges
()
29
{
30
int
mark =
getNewMark
();
31
negateMaskMark
(mark);
32
int
result =
deleteMarkedNullLengthEdges
(mark);
33
negateMaskMark
(mark);
34
freeMark
(mark);
35
return
result;
36
}
37
//------------------------------------------------------------------------------
38
int
CGMapVertex::deleteMarkedNullLengthEdges
(
int
AMarkNumber)
39
{
40
int
toContract =
getNewMark
();
41
int
treated =
getNewMark
();
42
43
for
(
CDynamicCoverageAll
it(
this
) ; it.
cont
(); ++it )
44
if
(
isMarked
(*it, AMarkNumber))
45
{
46
if
(!
isMarked
(*it, treated))
47
{
48
if
(!
isFree0
(*it) && *
findVertex
(*it)==*
findVertex
(
alpha0
(*it)))
49
setMark
(*it, toContract);
50
51
markOrbit
(*it,
ORBIT_EDGE
, treated);
52
}
53
}
54
else
55
setMark
(*it, treated);
56
57
int
deleted =
contractMarkedCells
(toContract, 1,
true
);
58
59
freeMark
(toContract);
60
negateMaskMark
(treated);
61
freeMark
(treated);
62
63
return
deleted;
64
}
65
//******************************************************************************
lib-gmapkernel
g-map-vertex
gmv-null-length-edge.cc
Generated on Tue Apr 9 2013 09:51:35 for Moka kernel by
1.8.2