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
KennethVanhoey
CGoGN
Commits
4ed7e53d
Commit
4ed7e53d
authored
May 30, 2013
by
Sylvain Thery
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update quick traversors
parent
cccae9c1
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
37 additions
and
33 deletions
+37
-33
include/Topology/generic/genericmap.h
include/Topology/generic/genericmap.h
+8
-8
include/Topology/generic/genericmap.hpp
include/Topology/generic/genericmap.hpp
+16
-12
include/Topology/generic/traversor2.hpp
include/Topology/generic/traversor2.hpp
+11
-11
include/Topology/generic/traversor3.hpp
include/Topology/generic/traversor3.hpp
+2
-2
No files found.
include/Topology/generic/genericmap.h
View file @
4ed7e53d
...
...
@@ -483,28 +483,28 @@ public:
template
<
typename
MAP
,
unsigned
int
ORBIT
,
unsigned
int
INCI
>
void
enableQuick
Local
IncidentTraversal
(
MAP
&
map
);
void
enableQuickIncidentTraversal
();
template
<
typename
MAP
,
unsigned
int
ORBIT
,
unsigned
int
INCI
>
void
updateQuick
Local
IncidentTraversal
(
MAP
&
map
);
void
updateQuickIncidentTraversal
();
template
<
unsigned
int
ORBIT
,
unsigned
int
INCI
>
AttributeMultiVector
<
NoTypeNameAttribute
<
std
::
vector
<
Dart
>
>
>*
getQuick
Local
IncidentTraversal
();
AttributeMultiVector
<
NoTypeNameAttribute
<
std
::
vector
<
Dart
>
>
>*
getQuickIncidentTraversal
();
template
<
unsigned
int
ORBIT
,
unsigned
int
INCI
>
void
disableQuick
Local
IncidentTraversal
();
void
disableQuickIncidentTraversal
();
template
<
typename
MAP
,
unsigned
int
ORBIT
,
unsigned
int
ADJ
>
void
enableQuick
Local
AdjacentTraversal
(
MAP
&
map
);
void
enableQuickAdjacentTraversal
();
template
<
typename
MAP
,
unsigned
int
ORBIT
,
unsigned
int
ADJ
>
void
updateQuick
Local
AdjacentTraversal
(
MAP
&
map
);
void
updateQuickAdjacentTraversal
();
template
<
unsigned
int
ORBIT
,
unsigned
int
INCI
>
AttributeMultiVector
<
NoTypeNameAttribute
<
std
::
vector
<
Dart
>
>
>*
getQuick
Local
AdjacentTraversal
();
AttributeMultiVector
<
NoTypeNameAttribute
<
std
::
vector
<
Dart
>
>
>*
getQuickAdjacentTraversal
();
template
<
unsigned
int
ORBIT
,
unsigned
int
ADJ
>
void
disableQuick
Local
AdjacentTraversal
();
void
disableQuickAdjacentTraversal
();
/****************************************
* ATTRIBUTES MANAGEMENT *
...
...
include/Topology/generic/genericmap.hpp
View file @
4ed7e53d
...
...
@@ -488,7 +488,7 @@ inline void GenericMap::disableQuickTraversal()
template
<
typename
MAP
,
unsigned
int
ORBIT
,
unsigned
int
INCI
>
inline
void
GenericMap
::
enableQuick
Local
IncidentTraversal
(
MAP
&
map
)
inline
void
GenericMap
::
enableQuickIncidentTraversal
()
{
if
(
m_quickLocalIncidentTraversal
[
ORBIT
][
INCI
]
==
NULL
)
{
...
...
@@ -498,11 +498,11 @@ inline void GenericMap::enableQuickLocalIncidentTraversal(MAP& map)
ss
<<
"quickLocalIncidentTraversal_"
<<
INCI
;
m_quickLocalIncidentTraversal
[
ORBIT
][
INCI
]
=
m_attribs
[
ORBIT
].
addAttribute
<
NoTypeNameAttribute
<
std
::
vector
<
Dart
>
>
>
(
ss
.
str
())
;
}
updateQuick
Local
IncidentTraversal
<
MAP
,
ORBIT
,
INCI
>
(
map
)
;
updateQuickIncidentTraversal
<
MAP
,
ORBIT
,
INCI
>
()
;
}
template
<
typename
MAP
,
unsigned
int
ORBIT
,
unsigned
int
INCI
>
inline
void
GenericMap
::
updateQuick
Local
IncidentTraversal
(
MAP
&
map
)
inline
void
GenericMap
::
updateQuickIncidentTraversal
()
{
assert
(
m_quickLocalIncidentTraversal
[
ORBIT
][
INCI
]
!=
NULL
||
!
"updateQuickTraversal on a disabled orbit"
)
;
...
...
@@ -512,6 +512,8 @@ inline void GenericMap::updateQuickLocalIncidentTraversal(MAP& map)
std
::
vector
<
Dart
>
buffer
;
buffer
.
reserve
(
100
);
MAP
&
map
=
static_cast
<
MAP
&>
(
*
this
);
TraversorCell
<
MAP
,
ORBIT
>
tra_glob
(
map
);
for
(
Dart
d
=
tra_glob
.
begin
();
d
!=
tra_glob
.
end
();
d
=
tra_glob
.
next
())
{
...
...
@@ -543,13 +545,13 @@ inline void GenericMap::updateQuickLocalIncidentTraversal(MAP& map)
}
template
<
unsigned
int
ORBIT
,
unsigned
int
INCI
>
inline
AttributeMultiVector
<
NoTypeNameAttribute
<
std
::
vector
<
Dart
>
>
>*
GenericMap
::
getQuick
Local
IncidentTraversal
()
inline
AttributeMultiVector
<
NoTypeNameAttribute
<
std
::
vector
<
Dart
>
>
>*
GenericMap
::
getQuickIncidentTraversal
()
{
return
m_quickLocalIncidentTraversal
[
ORBIT
][
INCI
]
;
}
template
<
unsigned
int
ORBIT
,
unsigned
int
INCI
>
inline
void
GenericMap
::
disableQuick
Local
IncidentTraversal
()
inline
void
GenericMap
::
disableQuickIncidentTraversal
()
{
if
(
m_quickLocalIncidentTraversal
[
ORBIT
][
INCI
]
!=
NULL
)
{
...
...
@@ -561,7 +563,7 @@ inline void GenericMap::disableQuickLocalIncidentTraversal()
template
<
typename
MAP
,
unsigned
int
ORBIT
,
unsigned
int
ADJ
>
inline
void
GenericMap
::
enableQuick
Local
AdjacentTraversal
(
MAP
&
map
)
inline
void
GenericMap
::
enableQuickAdjacentTraversal
()
{
if
(
m_quickLocalAdjacentTraversal
[
ORBIT
][
ADJ
]
==
NULL
)
{
...
...
@@ -571,17 +573,19 @@ inline void GenericMap::enableQuickLocalAdjacentTraversal(MAP& map)
ss
<<
"m_quickLocalAdjacentTraversal"
<<
ADJ
;
m_quickLocalAdjacentTraversal
[
ORBIT
][
ADJ
]
=
m_attribs
[
ORBIT
].
addAttribute
<
NoTypeNameAttribute
<
std
::
vector
<
Dart
>
>
>
(
ss
.
str
())
;
}
updateQuick
Local
AdjacentTraversal
<
MAP
,
ORBIT
,
ADJ
>
(
map
)
;
updateQuickAdjacentTraversal
<
MAP
,
ORBIT
,
ADJ
>
()
;
}
template
<
typename
MAP
,
unsigned
int
ORBIT
,
unsigned
int
ADJ
>
inline
void
GenericMap
::
updateQuick
Local
AdjacentTraversal
(
MAP
&
map
)
inline
void
GenericMap
::
updateQuickAdjacentTraversal
()
{
assert
(
m_quickLocalAdjacentTraversal
[
ORBIT
][
ADJ
]
!=
NULL
||
!
"updateQuickTraversal on a disabled orbit"
)
;
AttributeMultiVector
<
NoTypeNameAttribute
<
std
::
vector
<
Dart
>
>
>*
ptrVD
=
m_quickLocalAdjacentTraversal
[
ORBIT
][
ADJ
];
m_quickLocalAdjacentTraversal
[
ORBIT
][
ADJ
]
=
NULL
;
MAP
&
map
=
static_cast
<
MAP
&>
(
*
this
);
std
::
vector
<
Dart
>
buffer
;
buffer
.
reserve
(
100
);
...
...
@@ -615,14 +619,14 @@ inline void GenericMap::updateQuickLocalAdjacentTraversal(MAP& map)
m_quickLocalAdjacentTraversal
[
ORBIT
][
ADJ
]
=
ptrVD
;
}
template
<
unsigned
int
ORBIT
,
unsigned
int
INCI
>
inline
AttributeMultiVector
<
NoTypeNameAttribute
<
std
::
vector
<
Dart
>
>
>*
GenericMap
::
getQuick
Local
AdjacentTraversal
()
template
<
unsigned
int
ORBIT
,
unsigned
int
ADJ
>
inline
AttributeMultiVector
<
NoTypeNameAttribute
<
std
::
vector
<
Dart
>
>
>*
GenericMap
::
getQuickAdjacentTraversal
()
{
return
m_quickLocalAdjacentTraversal
[
ORBIT
][
INCI
]
;
return
m_quickLocalAdjacentTraversal
[
ORBIT
][
ADJ
]
;
}
template
<
unsigned
int
ORBIT
,
unsigned
int
ADJ
>
inline
void
GenericMap
::
disableQuick
Local
AdjacentTraversal
()
inline
void
GenericMap
::
disableQuickAdjacentTraversal
()
{
if
(
m_quickLocalAdjacentTraversal
[
ORBIT
][
ADJ
]
!=
NULL
)
{
...
...
include/Topology/generic/traversor2.hpp
View file @
4ed7e53d
...
...
@@ -34,7 +34,7 @@ namespace CGoGN
template
<
typename
MAP
>
Traversor2VE
<
MAP
>::
Traversor2VE
(
MAP
&
map
,
Dart
dart
)
:
m
(
map
),
start
(
dart
),
m_QLT
(
NULL
)
{
AttributeMultiVector
<
NoTypeNameAttribute
<
std
::
vector
<
Dart
>
>
>*
quickTraversal
=
map
.
template
getQuick
Local
IncidentTraversal
<
VERTEX
,
EDGE
>()
;
AttributeMultiVector
<
NoTypeNameAttribute
<
std
::
vector
<
Dart
>
>
>*
quickTraversal
=
map
.
template
getQuickIncidentTraversal
<
VERTEX
,
EDGE
>()
;
if
(
quickTraversal
!=
NULL
)
{
m_QLT
=
&
(
quickTraversal
->
operator
[](
map
.
template
getEmbedding
<
VERTEX
>(
dart
)));
...
...
@@ -83,7 +83,7 @@ Dart Traversor2VE<MAP>::next()
template
<
typename
MAP
>
Traversor2VF
<
MAP
>::
Traversor2VF
(
MAP
&
map
,
Dart
dart
)
:
m
(
map
),
start
(
dart
),
m_QLT
(
NULL
)
{
AttributeMultiVector
<
NoTypeNameAttribute
<
std
::
vector
<
Dart
>
>
>*
quickTraversal
=
map
.
template
getQuick
Local
IncidentTraversal
<
VERTEX
,
FACE
>()
;
AttributeMultiVector
<
NoTypeNameAttribute
<
std
::
vector
<
Dart
>
>
>*
quickTraversal
=
map
.
template
getQuickIncidentTraversal
<
VERTEX
,
FACE
>()
;
if
(
quickTraversal
!=
NULL
)
{
m_QLT
=
&
(
quickTraversal
->
operator
[](
map
.
template
getEmbedding
<
VERTEX
>(
dart
)));
...
...
@@ -137,7 +137,7 @@ Dart Traversor2VF<MAP>::next()
template
<
typename
MAP
>
Traversor2VVaE
<
MAP
>::
Traversor2VVaE
(
MAP
&
map
,
Dart
dart
)
:
m
(
map
),
m_QLT
(
NULL
)
{
AttributeMultiVector
<
NoTypeNameAttribute
<
std
::
vector
<
Dart
>
>
>*
quickTraversal
=
map
.
template
getQuick
Local
AdjacentTraversal
<
VERTEX
,
EDGE
>()
;
AttributeMultiVector
<
NoTypeNameAttribute
<
std
::
vector
<
Dart
>
>
>*
quickTraversal
=
map
.
template
getQuickAdjacentTraversal
<
VERTEX
,
EDGE
>()
;
if
(
quickTraversal
!=
NULL
)
{
m_QLT
=
&
(
quickTraversal
->
operator
[](
map
.
template
getEmbedding
<
VERTEX
>(
dart
)));
...
...
@@ -188,7 +188,7 @@ Dart Traversor2VVaE<MAP>::next()
template
<
typename
MAP
>
Traversor2VVaF
<
MAP
>::
Traversor2VVaF
(
MAP
&
map
,
Dart
dart
)
:
m
(
map
),
m_QLT
(
NULL
)
{
AttributeMultiVector
<
NoTypeNameAttribute
<
std
::
vector
<
Dart
>
>
>*
quickTraversal
=
map
.
template
getQuick
Local
AdjacentTraversal
<
VERTEX
,
FACE
>()
;
AttributeMultiVector
<
NoTypeNameAttribute
<
std
::
vector
<
Dart
>
>
>*
quickTraversal
=
map
.
template
getQuickAdjacentTraversal
<
VERTEX
,
FACE
>()
;
if
(
quickTraversal
!=
NULL
)
{
m_QLT
=
&
(
quickTraversal
->
operator
[](
map
.
template
getEmbedding
<
VERTEX
>(
dart
)));
...
...
@@ -261,7 +261,7 @@ Dart Traversor2VVaF<MAP>::next()
template
<
typename
MAP
>
Traversor2EV
<
MAP
>::
Traversor2EV
(
MAP
&
map
,
Dart
dart
)
:
m
(
map
),
start
(
dart
),
m_QLT
(
NULL
)
{
AttributeMultiVector
<
NoTypeNameAttribute
<
std
::
vector
<
Dart
>
>
>*
quickTraversal
=
map
.
template
getQuick
Local
IncidentTraversal
<
EDGE
,
VERTEX
>()
;
{
AttributeMultiVector
<
NoTypeNameAttribute
<
std
::
vector
<
Dart
>
>
>*
quickTraversal
=
map
.
template
getQuickIncidentTraversal
<
EDGE
,
VERTEX
>()
;
if
(
quickTraversal
!=
NULL
)
{
m_QLT
=
&
(
quickTraversal
->
operator
[](
map
.
template
getEmbedding
<
EDGE
>(
dart
)));
...
...
@@ -308,7 +308,7 @@ Dart Traversor2EV<MAP>::next()
template
<
typename
MAP
>
Traversor2EF
<
MAP
>::
Traversor2EF
(
MAP
&
map
,
Dart
dart
)
:
m
(
map
),
start
(
dart
),
m_QLT
(
NULL
)
{
AttributeMultiVector
<
NoTypeNameAttribute
<
std
::
vector
<
Dart
>
>
>*
quickTraversal
=
map
.
template
getQuick
Local
IncidentTraversal
<
EDGE
,
FACE
>()
;
AttributeMultiVector
<
NoTypeNameAttribute
<
std
::
vector
<
Dart
>
>
>*
quickTraversal
=
map
.
template
getQuickIncidentTraversal
<
EDGE
,
FACE
>()
;
if
(
quickTraversal
!=
NULL
)
{
m_QLT
=
&
(
quickTraversal
->
operator
[](
map
.
template
getEmbedding
<
EDGE
>(
dart
)));
...
...
@@ -360,7 +360,7 @@ Dart Traversor2EF<MAP>::next()
template
<
typename
MAP
>
Traversor2EEaV
<
MAP
>::
Traversor2EEaV
(
MAP
&
map
,
Dart
dart
)
:
m
(
map
),
m_QLT
(
NULL
)
{
AttributeMultiVector
<
NoTypeNameAttribute
<
std
::
vector
<
Dart
>
>
>*
quickTraversal
=
map
.
template
getQuick
Local
AdjacentTraversal
<
EDGE
,
VERTEX
>()
;
AttributeMultiVector
<
NoTypeNameAttribute
<
std
::
vector
<
Dart
>
>
>*
quickTraversal
=
map
.
template
getQuickAdjacentTraversal
<
EDGE
,
VERTEX
>()
;
if
(
quickTraversal
!=
NULL
)
{
m_QLT
=
&
(
quickTraversal
->
operator
[](
map
.
template
getEmbedding
<
EDGE
>(
dart
)));
...
...
@@ -415,7 +415,7 @@ Dart Traversor2EEaV<MAP>::next()
template
<
typename
MAP
>
Traversor2EEaF
<
MAP
>::
Traversor2EEaF
(
MAP
&
map
,
Dart
dart
)
:
m
(
map
),
m_QLT
(
NULL
)
{
AttributeMultiVector
<
NoTypeNameAttribute
<
std
::
vector
<
Dart
>
>
>*
quickTraversal
=
map
.
template
getQuick
Local
AdjacentTraversal
<
EDGE
,
FACE
>()
;
AttributeMultiVector
<
NoTypeNameAttribute
<
std
::
vector
<
Dart
>
>
>*
quickTraversal
=
map
.
template
getQuickAdjacentTraversal
<
EDGE
,
FACE
>()
;
if
(
quickTraversal
!=
NULL
)
{
m_QLT
=
&
(
quickTraversal
->
operator
[](
map
.
template
getEmbedding
<
EDGE
>(
dart
)));
...
...
@@ -474,7 +474,7 @@ Dart Traversor2EEaF<MAP>::next()
template
<
typename
MAP
>
Traversor2FV
<
MAP
>::
Traversor2FV
(
MAP
&
map
,
Dart
dart
)
:
m
(
map
),
start
(
dart
),
m_QLT
(
NULL
)
{
AttributeMultiVector
<
NoTypeNameAttribute
<
std
::
vector
<
Dart
>
>
>*
quickTraversal
=
map
.
template
getQuick
Local
IncidentTraversal
<
FACE
,
VERTEX
>()
;
AttributeMultiVector
<
NoTypeNameAttribute
<
std
::
vector
<
Dart
>
>
>*
quickTraversal
=
map
.
template
getQuickIncidentTraversal
<
FACE
,
VERTEX
>()
;
if
(
quickTraversal
!=
NULL
)
{
m_QLT
=
&
(
quickTraversal
->
operator
[](
map
.
template
getEmbedding
<
FACE
>(
dart
)));
...
...
@@ -521,7 +521,7 @@ Dart Traversor2FV<MAP>::next()
template
<
typename
MAP
>
Traversor2FFaV
<
MAP
>::
Traversor2FFaV
(
MAP
&
map
,
Dart
dart
)
:
m
(
map
),
m_QLT
(
NULL
)
{
AttributeMultiVector
<
NoTypeNameAttribute
<
std
::
vector
<
Dart
>
>
>*
quickTraversal
=
map
.
template
getQuick
Local
AdjacentTraversal
<
FACE
,
VERTEX
>()
;
AttributeMultiVector
<
NoTypeNameAttribute
<
std
::
vector
<
Dart
>
>
>*
quickTraversal
=
map
.
template
getQuickAdjacentTraversal
<
FACE
,
VERTEX
>()
;
if
(
quickTraversal
!=
NULL
)
{
m_QLT
=
&
(
quickTraversal
->
operator
[](
map
.
template
getEmbedding
<
FACE
>(
dart
)));
...
...
@@ -594,7 +594,7 @@ Dart Traversor2FFaV<MAP>::next()
template
<
typename
MAP
>
Traversor2FFaE
<
MAP
>::
Traversor2FFaE
(
MAP
&
map
,
Dart
dart
)
:
m
(
map
),
m_QLT
(
NULL
)
{
AttributeMultiVector
<
NoTypeNameAttribute
<
std
::
vector
<
Dart
>
>
>*
quickTraversal
=
map
.
template
getQuick
Local
AdjacentTraversal
<
FACE
,
EDGE
>()
;
AttributeMultiVector
<
NoTypeNameAttribute
<
std
::
vector
<
Dart
>
>
>*
quickTraversal
=
map
.
template
getQuickAdjacentTraversal
<
FACE
,
EDGE
>()
;
if
(
quickTraversal
!=
NULL
)
{
m_QLT
=
&
(
quickTraversal
->
operator
[](
map
.
template
getEmbedding
<
FACE
>(
dart
)));
...
...
include/Topology/generic/traversor3.hpp
View file @
4ed7e53d
...
...
@@ -105,7 +105,7 @@ Traversor3XY<MAP, ORBX, ORBY>::Traversor3XY(MAP& map, Dart dart, bool forceDartM
m_allocated
(
true
),
m_first
(
true
)
{
AttributeMultiVector
<
NoTypeNameAttribute
<
std
::
vector
<
Dart
>
>
>*
quickTraversal
=
map
.
template
getQuick
Local
IncidentTraversal
<
ORBX
,
ORBY
>()
;
AttributeMultiVector
<
NoTypeNameAttribute
<
std
::
vector
<
Dart
>
>
>*
quickTraversal
=
map
.
template
getQuickIncidentTraversal
<
ORBX
,
ORBY
>()
;
if
(
quickTraversal
!=
NULL
)
{
m_QLT
=
&
(
quickTraversal
->
operator
[](
map
.
template
getEmbedding
<
ORBX
>(
dart
)));
...
...
@@ -258,7 +258,7 @@ template <typename MAP, unsigned int ORBX, unsigned int ORBY>
Traversor3XXaY
<
MAP
,
ORBX
,
ORBY
>::
Traversor3XXaY
(
MAP
&
map
,
Dart
dart
,
bool
forceDartMarker
,
unsigned
int
thread
)
:
m_map
(
map
),
m_QLT
(
NULL
)
{
AttributeMultiVector
<
NoTypeNameAttribute
<
std
::
vector
<
Dart
>
>
>*
quickTraversal
=
map
.
template
getQuick
Local
AdjacentTraversal
<
ORBX
,
ORBY
>()
;
AttributeMultiVector
<
NoTypeNameAttribute
<
std
::
vector
<
Dart
>
>
>*
quickTraversal
=
map
.
template
getQuickAdjacentTraversal
<
ORBX
,
ORBY
>()
;
if
(
quickTraversal
!=
NULL
)
{
m_QLT
=
&
(
quickTraversal
->
operator
[](
map
.
template
getEmbedding
<
ORBX
>(
dart
)));
...
...
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