Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
Thomas Pitiot
CGoGN
Commits
bfceabf5
Commit
bfceabf5
authored
Mar 14, 2012
by
Sylvain Thery
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
remove unused file
parent
dfb6e1d5
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
0 additions
and
153 deletions
+0
-153
include/Algo/Decimation/basic.h
include/Algo/Decimation/basic.h
+0
-153
No files found.
include/Algo/Decimation/basic.h
deleted
100644 → 0
View file @
dfb6e1d5
/*******************************************************************************
* CGoGN: Combinatorial and Geometric modeling with Generic N-dimensional Maps *
* version 0.1 *
* Copyright (C) 2009-2012, IGG Team, LSIIT, University of Strasbourg *
* *
* This library is free software; you can redistribute it and/or modify it *
* under the terms of the GNU Lesser General Public License as published by the *
* Free Software Foundation; either version 2.1 of the License, or (at your *
* option) any later version. *
* *
* This library is distributed in the hope that it will be useful, but WITHOUT *
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or *
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License *
* for more details. *
* *
* You should have received a copy of the GNU Lesser General Public License *
* along with this library; if not, write to the Free Software Foundation, *
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *
* *
* Web site: http://cgogn.unistra.fr/ *
* Contact information: cgogn@unistra.fr *
* *
*******************************************************************************/
#ifndef __DECIMATION_BASIC_H_
#define __DECIMATION_BASIC_H_
namespace
CGoGN
{
namespace
Algo
{
namespace
Decimation
{
template
<
typename
PFP
>
bool
edgeCanCollapse
(
typename
PFP
::
MAP
&
map
,
Dart
d
,
AttributeHandler
<
unsigned
int
>&
valences
)
{
Dart
dd
=
map
.
phi2
(
d
);
Dart
dp
=
map
.
phi_1
(
d
);
Dart
ddp
=
map
.
phi_1
(
dd
);
// Check valency conditions
unsigned
int
val_vd
=
valences
[
d
];
unsigned
int
val_vdd
=
valences
[
dd
];
unsigned
int
val_vd1
=
valences
[
dp
];
unsigned
int
val_vdd1
=
valences
[
ddp
];
if
(
val_vd
+
val_vdd
<
8
||
val_vd
+
val_vdd
>
11
||
val_vd1
<
5
||
val_vdd1
<
5
)
return
false
;
// Check vertex sharing condition
unsigned
int
vu1
[
32
];
// pas de vector mais un tableau (find a la main, mais pas d'allocation par reserve)
val_vd
-=
3
;
// evite le -3 dans la boucle
val_vdd
-=
3
;
Dart
vit1
=
map
.
phi2_1
(
map
.
phi2_1
(
d
));
for
(
unsigned
int
i
=
0
;
i
<
val_vd
;
++
i
)
{
unsigned
int
ve
=
map
.
getEmbedding
(
map
.
phi2
(
vit1
),
VERTEX
);
vu1
[
i
]
=
ve
;
vit1
=
map
.
phi2_1
(
vit1
);
}
val_vd
--
;
// pour le parcours avec while >=0
Dart
vit2
=
map
.
phi2_1
(
map
.
phi2_1
(
dd
));
for
(
unsigned
int
i
=
0
;
i
<
val_vdd
;
++
i
)
{
unsigned
int
ve
=
map
.
getEmbedding
(
map
.
phi2
(
vit2
),
VERTEX
);
int
j
=
val_vd
;
while
(
j
>=
0
)
{
if
(
vu1
[
j
]
==
ve
)
return
false
;
--
j
;
}
vit2
=
map
.
phi2_1
(
vit2
);
}
return
true
;
}
template
<
typename
PFP
>
bool
edgeCanCollapse
(
typename
PFP
::
MAP
&
map
,
Dart
d
)
{
Dart
dd
=
map
.
phi2
(
d
);
Dart
dp
=
map
.
phi_1
(
d
);
Dart
ddp
=
map
.
phi_1
(
dd
);
// Check valency conditions
int
val_vd
=
0
;
Dart
tmp
=
d
;
do
{
++
val_vd
;
tmp
=
map
.
phi2_1
(
tmp
)
;
}
while
(
tmp
!=
d
)
;
int
val_vdd
=
0
;
tmp
=
dd
;
do
{
++
val_vdd
;
tmp
=
map
.
phi2_1
(
tmp
)
;
}
while
(
tmp
!=
dd
)
;
int
val_vdp
=
0
;
tmp
=
dp
;
do
{
++
val_vdp
;
tmp
=
map
.
phi2_1
(
tmp
)
;
}
while
(
tmp
!=
dp
)
;
int
val_vddp
=
0
;
tmp
=
ddp
;
do
{
++
val_vddp
;
tmp
=
map
.
phi2_1
(
tmp
)
;
}
while
(
tmp
!=
ddp
)
;
if
(
val_vd
+
val_vdd
<
8
||
val_vd
+
val_vdd
>
11
||
val_vdp
<
5
||
val_vddp
<
5
)
return
false
;
// Check vertex sharing condition
unsigned
int
vu1
[
32
];
// pas de vector mais un tableau (find a la main, mais pas d'allocation par reserve)
val_vd
-=
3
;
// evite le -3 dans la boucle
val_vdd
-=
3
;
Dart
vit1
=
map
.
phi2_1
(
map
.
phi2_1
(
d
));
for
(
int
i
=
0
;
i
<
val_vd
;
++
i
)
{
unsigned
int
ve
=
map
.
getEmbedding
(
map
.
phi2
(
vit1
),
VERTEX
);
vu1
[
i
]
=
ve
;
vit1
=
map
.
phi2_1
(
vit1
);
}
val_vd
--
;
// pour le parcours avec while >=0
Dart
vit2
=
map
.
phi2_1
(
map
.
phi2_1
(
dd
));
for
(
int
i
=
0
;
i
<
val_vdd
;
++
i
)
{
unsigned
int
ve
=
map
.
getEmbedding
(
map
.
phi2
(
vit2
),
VERTEX
);
int
j
=
val_vd
;
while
(
j
>=
0
)
{
if
(
vu1
[
j
]
==
ve
)
return
false
;
--
j
;
}
vit2
=
map
.
phi2_1
(
vit2
);
}
return
true
;
}
}
// namespace Decimation
}
// namespace Algo
}
// namespace CGoGN
#endif
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment