Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
CGoGN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
Operations
Operations
Incidents
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
David Cazier
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
LocalIncidentTraversal
(
MAP
&
map
);
void
enableQuick
IncidentTraversal
(
);
template
<
typename
MAP
,
unsigned
int
ORBIT
,
unsigned
int
INCI
>
void
updateQuick
LocalIncidentTraversal
(
MAP
&
map
);
void
updateQuick
IncidentTraversal
(
);
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
LocalAdjacentTraversal
(
MAP
&
map
);
void
enableQuick
AdjacentTraversal
(
);
template
<
typename
MAP
,
unsigned
int
ORBIT
,
unsigned
int
ADJ
>
void
updateQuick
LocalAdjacentTraversal
(
MAP
&
map
);
void
updateQuick
AdjacentTraversal
(
);
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
LocalIncidentTraversal
(
MAP
&
map
)
inline
void
GenericMap
::
enableQuick
IncidentTraversal
(
)
{
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
LocalIncidentTraversal
<
MAP
,
ORBIT
,
INCI
>
(
map
)
;
updateQuick
IncidentTraversal
<
MAP
,
ORBIT
,
INCI
>
(
)
;
}
template
<
typename
MAP
,
unsigned
int
ORBIT
,
unsigned
int
INCI
>
inline
void
GenericMap
::
updateQuick
LocalIncidentTraversal
(
MAP
&
map
)
inline
void
GenericMap
::
updateQuick
IncidentTraversal
(
)
{
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
LocalAdjacentTraversal
(
MAP
&
map
)
inline
void
GenericMap
::
enableQuick
AdjacentTraversal
(
)
{
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
LocalAdjacentTraversal
<
MAP
,
ORBIT
,
ADJ
>
(
map
)
;
updateQuick
AdjacentTraversal
<
MAP
,
ORBIT
,
ADJ
>
(
)
;
}
template
<
typename
MAP
,
unsigned
int
ORBIT
,
unsigned
int
ADJ
>
inline
void
GenericMap
::
updateQuick
LocalAdjacentTraversal
(
MAP
&
map
)
inline
void
GenericMap
::
updateQuick
AdjacentTraversal
(
)
{
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