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
d4159fab
Commit
d4159fab
authored
Feb 07, 2012
by
Pierre Kraemer
Browse files
Options
Browse Files
Download
Plain Diff
Merge cgogn:~thery/CGoGN
Conflicts: include/Topology/generic/genericmap.h
parents
85cd31be
9ea67fa3
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
555 additions
and
489 deletions
+555
-489
Apps/Tuto/show_traversors.cpp
Apps/Tuto/show_traversors.cpp
+38
-380
Apps/Tuto/show_traversors.h
Apps/Tuto/show_traversors.h
+12
-12
include/Algo/Render/GL2/drawerCells.h
include/Algo/Render/GL2/drawerCells.h
+25
-1
include/Algo/Render/GL2/drawerCells.hpp
include/Algo/Render/GL2/drawerCells.hpp
+45
-0
include/Topology/generic/genericmap.h
include/Topology/generic/genericmap.h
+37
-0
include/Topology/generic/genericmap.hpp
include/Topology/generic/genericmap.hpp
+38
-13
include/Topology/generic/traversor2.h
include/Topology/generic/traversor2.h
+30
-12
include/Topology/generic/traversor2.hpp
include/Topology/generic/traversor2.hpp
+71
-0
include/Topology/generic/traversor3.hpp
include/Topology/generic/traversor3.hpp
+0
-1
include/Utils/chrono.h
include/Utils/chrono.h
+1
-1
src/Topology/generic/genericmap.cpp
src/Topology/generic/genericmap.cpp
+167
-13
src/Topology/map/map1.cpp
src/Topology/map/map1.cpp
+21
-14
src/Topology/map/map2.cpp
src/Topology/map/map2.cpp
+30
-18
src/Topology/map/map3.cpp
src/Topology/map/map3.cpp
+40
-24
No files found.
Apps/Tuto/show_traversors.cpp
View file @
d4159fab
...
...
@@ -54,8 +54,8 @@ void MyQT::cb_checkTopo(bool b)
void
MyQT
::
cb_combo1
(
int
x
)
{
m_
val_combo1
=
x
+
1
;
if
(
m_
val_combo1
!=
m_val_combo
3
)
m_
first3
=
x
;
if
(
m_
first3
!=
m_second
3
)
traverse3
();
else
CGoGNerr
<<
"undefined traversor"
<<
CGoGNendl
;
...
...
@@ -63,8 +63,8 @@ void MyQT::cb_combo1(int x)
void
MyQT
::
cb_combo2
(
int
x
)
{
m_
val_combo2
=
x
+
1
;
if
(
m_
val_combo1
!=
m_val_combo
3
)
m_
ajd_or_inci3
=
x
;
if
(
m_
first3
!=
m_second
3
)
traverse3
();
else
CGoGNerr
<<
"undefined traversor"
<<
CGoGNendl
;
...
...
@@ -72,8 +72,8 @@ void MyQT::cb_combo2(int x)
void
MyQT
::
cb_combo3
(
int
x
)
{
m_
val_combo
3
=
x
+
1
;
if
(
m_
val_combo1
!=
m_val_combo
3
)
m_
second
3
=
x
;
if
(
m_
first3
!=
m_second
3
)
traverse3
();
else
CGoGNerr
<<
"undefined traversor"
<<
CGoGNendl
;
...
...
@@ -81,8 +81,8 @@ void MyQT::cb_combo3(int x)
void
MyQT
::
cb_combo4
(
int
x
)
{
m_
val_combo4
=
x
+
1
;
if
(
m_
val_combo4
!=
m_val_combo6
)
m_
first2
=
x
;
if
(
m_
first2
!=
m_second2
)
traverse2
();
else
CGoGNerr
<<
"undefined traversor"
<<
CGoGNendl
;
...
...
@@ -90,8 +90,8 @@ void MyQT::cb_combo4(int x)
void
MyQT
::
cb_combo5
(
int
x
)
{
m_
val_combo5
=
x
+
1
;
if
(
m_
val_combo4
!=
m_val_combo6
)
m_
ajd_or_inci2
=
x
;
if
(
m_
first2
!=
m_second2
)
traverse2
();
else
CGoGNerr
<<
"undefined traversor"
<<
CGoGNendl
;
...
...
@@ -99,8 +99,8 @@ void MyQT::cb_combo5(int x)
void
MyQT
::
cb_combo6
(
int
x
)
{
m_
val_combo6
=
x
+
1
;
if
(
m_
val_combo4
!=
m_val_combo6
)
m_
second2
=
x
;
if
(
m_
first2
!=
m_second2
)
traverse2
();
else
CGoGNerr
<<
"undefined traversor"
<<
CGoGNendl
;
...
...
@@ -167,8 +167,7 @@ void MyQT::traverse2()
if
(
m_selected
==
NIL
)
return
;
int
code
=
(
m_val_combo5
)
*
100
+
m_val_combo4
*
10
+
m_val_combo6
;
// int code = (m_ajd_or_inci2)*100+m_first2*10+m_second2;
SelectorDartNoBoundary
<
PFP
::
MAP
>
nb
(
myMap
);
m_drawer
.
newList
(
GL_COMPILE
);
...
...
@@ -177,136 +176,28 @@ void MyQT::traverse2()
m_drawer
.
color3f
(
1.0
f
,
1.0
f
,
0.0
f
);
m_affDarts
.
clear
();
switch
(
code
)
{
// 1YX incient
case
113
:
{
Algo
::
Render
::
drawerFace
<
PFP
>
(
m_drawer
,
myMap
,
m_selected
,
position
,
0.7
f
);
m_drawer
.
color3f
(
1.0
f
,
0.0
f
,
0.0
f
);
Traversor2FV
<
PFP
::
MAP
>
tra
(
myMap
,
m_selected
);
for
(
Dart
d
=
tra
.
begin
();
d
!=
tra
.
end
();
d
=
tra
.
next
())
m_affDarts
.
push_back
(
d
);
Algo
::
Render
::
drawerVertices
<
PFP
>
(
m_drawer
,
myMap
,
m_affDarts
,
position
);
break
;
}
case
123
:
{
Algo
::
Render
::
drawerFace
<
PFP
>
(
m_drawer
,
myMap
,
m_selected
,
position
,
0.7
f
);
m_drawer
.
color3f
(
1.0
f
,
0.0
f
,
0.0
f
);
Traversor2FE
<
PFP
::
MAP
>
tra
(
myMap
,
m_selected
);
for
(
Dart
d
=
tra
.
begin
();
d
!=
tra
.
end
();
d
=
tra
.
next
())
m_affDarts
.
push_back
(
d
);
Algo
::
Render
::
drawerEdges
<
PFP
>
(
m_drawer
,
myMap
,
m_affDarts
,
position
,
0.7
f
);
break
;
}
case
112
:
{
Algo
::
Render
::
drawerEdge
<
PFP
>
(
m_drawer
,
myMap
,
m_selected
,
position
,
0.7
f
);
m_drawer
.
color3f
(
1.0
f
,
0.0
f
,
0.0
f
);
Traversor2EV
<
PFP
::
MAP
>
tra
(
myMap
,
m_selected
);
for
(
Dart
d
=
tra
.
begin
();
d
!=
tra
.
end
();
d
=
tra
.
next
())
m_affDarts
.
push_back
(
d
);
Algo
::
Render
::
drawerVertices
<
PFP
>
(
m_drawer
,
myMap
,
m_affDarts
,
position
);
break
;
}
case
132
:
{
Algo
::
Render
::
drawerEdge
<
PFP
>
(
m_drawer
,
myMap
,
m_selected
,
position
,
0.7
f
);
m_drawer
.
color3f
(
1.0
f
,
0.0
f
,
0.0
f
);
Traversor2EF
<
PFP
::
MAP
>
tra
(
myMap
,
m_selected
);
for
(
Dart
d
=
tra
.
begin
();
d
!=
tra
.
end
();
d
=
tra
.
next
())
m_affDarts
.
push_back
(
d
);
Algo
::
Render
::
drawerFaces
<
PFP
>
(
m_drawer
,
myMap
,
m_affDarts
,
position
,
0.7
f
);
break
;
}
case
121
:
{
Algo
::
Render
::
drawerVertex
<
PFP
>
(
m_drawer
,
myMap
,
m_selected
,
position
);
m_drawer
.
color3f
(
1.0
f
,
0.0
f
,
0.0
f
);
Traversor2VE
<
PFP
::
MAP
>
tra
(
myMap
,
m_selected
);
for
(
Dart
d
=
tra
.
begin
();
d
!=
tra
.
end
();
d
=
tra
.
next
())
m_affDarts
.
push_back
(
d
);
Algo
::
Render
::
drawerEdges
<
PFP
>
(
m_drawer
,
myMap
,
m_affDarts
,
position
,
0.7
f
);
break
;
}
case
131
:
{
Algo
::
Render
::
drawerVertex
<
PFP
>
(
m_drawer
,
myMap
,
m_selected
,
position
);
m_drawer
.
color3f
(
1.0
f
,
0.0
f
,
0.0
f
);
Traversor2VF
<
PFP
::
MAP
>
tra
(
myMap
,
m_selected
);
for
(
Dart
d
=
tra
.
begin
();
d
!=
tra
.
end
();
d
=
tra
.
next
())
m_affDarts
.
push_back
(
d
);
Algo
::
Render
::
drawerFaces
<
PFP
>
(
m_drawer
,
myMap
,
m_affDarts
,
position
,
0.7
f
);
break
;
}
// 2XY adjacent
case
212
:
{
Algo
::
Render
::
drawerVertex
<
PFP
>
(
m_drawer
,
myMap
,
m_selected
,
position
);
m_drawer
.
color3f
(
1.0
f
,
0.0
f
,
0.0
f
);
Traversor2VVaE
<
PFP
::
MAP
>
tra
(
myMap
,
m_selected
);
for
(
Dart
d
=
tra
.
begin
();
d
!=
tra
.
end
();
d
=
tra
.
next
())
m_affDarts
.
push_back
(
d
);
Algo
::
Render
::
drawerVertices
<
PFP
>
(
m_drawer
,
myMap
,
m_affDarts
,
position
);
break
;
}
case
213
:
{
Algo
::
Render
::
drawerVertex
<
PFP
>
(
m_drawer
,
myMap
,
m_selected
,
position
);
m_drawer
.
color3f
(
1.0
f
,
0.0
f
,
0.0
f
);
Traversor2VVaF
<
PFP
::
MAP
>
tra
(
myMap
,
m_selected
);
for
(
Dart
d
=
tra
.
begin
();
d
!=
tra
.
end
();
d
=
tra
.
next
())
m_affDarts
.
push_back
(
d
);
Algo
::
Render
::
drawerVertices
<
PFP
>
(
m_drawer
,
myMap
,
m_affDarts
,
position
);
break
;
}
case
221
:
{
Algo
::
Render
::
drawerEdge
<
PFP
>
(
m_drawer
,
myMap
,
m_selected
,
position
,
0.7
f
);
m_drawer
.
color3f
(
1.0
f
,
0.0
f
,
0.0
f
);
Traversor2EEaV
<
PFP
::
MAP
>
tra
(
myMap
,
m_selected
);
for
(
Dart
d
=
tra
.
begin
();
d
!=
tra
.
end
();
d
=
tra
.
next
())
m_affDarts
.
push_back
(
d
);
Algo
::
Render
::
drawerEdges
<
PFP
>
(
m_drawer
,
myMap
,
m_affDarts
,
position
,
0.7
f
);
break
;
}
case
223
:
if
(
m_ajd_or_inci2
==
0
)
// incident
{
Algo
::
Render
::
drawer
Edge
<
PFP
>
(
m_drawer
,
myMap
,
m_selected
,
position
,
0.7
f
);
Algo
::
Render
::
drawer
Cell
<
PFP
>
(
VERTEX
+
m_second2
,
m_drawer
,
myMap
,
m_selected
,
position
,
0.7
f
);
m_drawer
.
color3f
(
1.0
f
,
0.0
f
,
0.0
f
);
Traversor2EEaF
<
PFP
::
MAP
>
tra
(
myMap
,
m_selected
);
for
(
Dart
d
=
tra
.
begin
();
d
!=
tra
.
end
();
d
=
tra
.
next
())
m_affDarts
.
push_back
(
d
);
Algo
::
Render
::
drawerEdges
<
PFP
>
(
m_drawer
,
myMap
,
m_affDarts
,
position
,
0.7
f
);
break
;
Traversor2
<
PFP
::
MAP
>*
tra
=
Traversor2
<
PFP
::
MAP
>::
createIncident
(
myMap
,
m_selected
,
VERTEX
+
m_second2
,
VERTEX
+
m_first2
);
for
(
Dart
d
=
tra
->
begin
();
d
!=
tra
->
end
();
d
=
tra
->
next
())
m_affDarts
.
push_back
(
d
);
Algo
::
Render
::
drawerCells
<
PFP
>
(
VERTEX
+
m_first2
,
m_drawer
,
myMap
,
m_affDarts
,
position
,
0.7
f
);
}
case
231
:
else
// adjacent
{
Algo
::
Render
::
drawer
Face
<
PFP
>
(
m_drawer
,
myMap
,
m_selected
,
position
,
0.7
f
);
Algo
::
Render
::
drawer
Cell
<
PFP
>
(
VERTEX
+
m_first2
,
m_drawer
,
myMap
,
m_selected
,
position
,
0.7
f
);
m_drawer
.
color3f
(
1.0
f
,
0.0
f
,
0.0
f
);
Traversor2FFaV
<
PFP
::
MAP
>
tra
(
myMap
,
m_selected
);
for
(
Dart
d
=
tra
.
begin
();
d
!=
tra
.
end
();
d
=
tra
.
next
())
m_affDarts
.
push_back
(
d
);
Algo
::
Render
::
drawerFaces
<
PFP
>
(
m_drawer
,
myMap
,
m_affDarts
,
position
,
0.7
f
);
break
;
}
case
232
:
{
Algo
::
Render
::
drawerFace
<
PFP
>
(
m_drawer
,
myMap
,
m_selected
,
position
,
0.7
f
);
m_drawer
.
color3f
(
1.0
f
,
0.0
f
,
0.0
f
);
Traversor2FFaE
<
PFP
::
MAP
>
tra
(
myMap
,
m_selected
);
for
(
Dart
d
=
tra
.
begin
();
d
!=
tra
.
end
();
d
=
tra
.
next
())
m_affDarts
.
push_back
(
d
);
Algo
::
Render
::
drawerFaces
<
PFP
>
(
m_drawer
,
myMap
,
m_affDarts
,
position
,
0.7
f
);
break
;
}
Traversor2
<
PFP
::
MAP
>*
tra
=
Traversor2
<
PFP
::
MAP
>::
createAdjacent
(
myMap
,
m_selected
,
VERTEX
+
m_first2
,
VERTEX
+
m_second2
);
default:
CGoGNerr
<<
"Not implemented"
<<
CGoGNendl
;
break
;
for
(
Dart
d
=
tra
->
begin
();
d
!=
tra
->
end
();
d
=
tra
->
next
())
m_affDarts
.
push_back
(
d
)
;
Algo
::
Render
::
drawerCells
<
PFP
>
(
VERTEX
+
m_first2
,
m_drawer
,
myMap
,
m_affDarts
,
position
,
0.7
f
)
;
}
m_drawer
.
endList
();
updateGL
();
}
...
...
@@ -315,7 +206,7 @@ void MyQT::traverse2()
void
MyQT
::
traverse3
()
{
int
code
=
(
m_
val_combo2
)
*
100
+
m_val_combo1
*
10
+
m_val_combo
3
;
//
int code = (m_
ajd_or_inci3)*100+m_first3*10+m_second
3;
// std::cout << "CODE="<< code << std::endl;
if
(
m_selected
==
NIL
)
return
;
...
...
@@ -326,259 +217,26 @@ void MyQT::traverse3()
m_drawer
.
lineWidth
(
3.0
f
);
m_drawer
.
pointSize
(
7.0
f
);
m_drawer
.
color3f
(
1.0
f
,
1.0
f
,
0.0
f
);
switch
(
code
)
{
// 1YX incient
case
114
:
{
Algo
::
Render
::
drawerVolume
<
PFP
>
(
m_drawer
,
myMap
,
m_selected
,
position
,
0.7
f
);
m_drawer
.
color3f
(
1.0
f
,
0.0
f
,
0.0
f
);
Traversor3WV
<
PFP
::
MAP
>
tra
(
myMap
,
m_selected
);
for
(
Dart
d
=
tra
.
begin
();
d
!=
tra
.
end
();
d
=
tra
.
next
())
m_affDarts
.
push_back
(
d
);
Algo
::
Render
::
drawerVertices
<
PFP
>
(
m_drawer
,
myMap
,
m_affDarts
,
position
);
break
;
}
case
124
:
{
Algo
::
Render
::
drawerVolume
<
PFP
>
(
m_drawer
,
myMap
,
m_selected
,
position
,
0.7
f
);
m_drawer
.
color3f
(
1.0
f
,
0.0
f
,
0.0
f
);
Traversor3WE
<
PFP
::
MAP
>
tra
(
myMap
,
m_selected
);
for
(
Dart
d
=
tra
.
begin
();
d
!=
tra
.
end
();
d
=
tra
.
next
())
m_affDarts
.
push_back
(
d
);
Algo
::
Render
::
drawerEdges
<
PFP
>
(
m_drawer
,
myMap
,
m_affDarts
,
position
,
0.7
f
);
break
;
}
case
134
:
{
Algo
::
Render
::
drawerVolume
<
PFP
>
(
m_drawer
,
myMap
,
m_selected
,
position
,
0.7
f
);
m_drawer
.
color3f
(
1.0
f
,
0.0
f
,
0.0
f
);
Traversor3WF
<
PFP
::
MAP
>
tra
(
myMap
,
m_selected
);
for
(
Dart
d
=
tra
.
begin
();
d
!=
tra
.
end
();
d
=
tra
.
next
())
m_affDarts
.
push_back
(
d
);
Algo
::
Render
::
drawerFaces
<
PFP
>
(
m_drawer
,
myMap
,
m_affDarts
,
position
,
0.7
f
);
break
;
}
case
113
:
{
Algo
::
Render
::
drawerFace
<
PFP
>
(
m_drawer
,
myMap
,
m_selected
,
position
,
0.7
f
);
m_drawer
.
color3f
(
1.0
f
,
0.0
f
,
0.0
f
);
Traversor3FV
<
PFP
::
MAP
>
tra
(
myMap
,
m_selected
);
for
(
Dart
d
=
tra
.
begin
();
d
!=
tra
.
end
();
d
=
tra
.
next
())
m_affDarts
.
push_back
(
d
);
Algo
::
Render
::
drawerVertices
<
PFP
>
(
m_drawer
,
myMap
,
m_affDarts
,
position
);
break
;
}
case
123
:
{
Algo
::
Render
::
drawerFace
<
PFP
>
(
m_drawer
,
myMap
,
m_selected
,
position
,
0.7
f
);
m_drawer
.
color3f
(
1.0
f
,
0.0
f
,
0.0
f
);
Traversor3FE
<
PFP
::
MAP
>
tra
(
myMap
,
m_selected
);
for
(
Dart
d
=
tra
.
begin
();
d
!=
tra
.
end
();
d
=
tra
.
next
())
m_affDarts
.
push_back
(
d
);
Algo
::
Render
::
drawerEdges
<
PFP
>
(
m_drawer
,
myMap
,
m_affDarts
,
position
,
0.7
f
);
break
;
}
case
143
:
{
Algo
::
Render
::
drawerFace
<
PFP
>
(
m_drawer
,
myMap
,
m_selected
,
position
,
0.7
f
);
m_drawer
.
color3f
(
1.0
f
,
0.0
f
,
0.0
f
);
Traversor3FW
<
PFP
::
MAP
>
tra
(
myMap
,
m_selected
);
for
(
Dart
d
=
tra
.
begin
();
d
!=
tra
.
end
();
d
=
tra
.
next
())
m_affDarts
.
push_back
(
d
);
Algo
::
Render
::
drawerVolumes
<
PFP
>
(
m_drawer
,
myMap
,
m_affDarts
,
position
,
0.7
f
);
break
;
}
case
112
:
{
Algo
::
Render
::
drawerEdge
<
PFP
>
(
m_drawer
,
myMap
,
m_selected
,
position
,
0.7
f
);
m_drawer
.
color3f
(
1.0
f
,
0.0
f
,
0.0
f
);
Traversor3EV
<
PFP
::
MAP
>
tra
(
myMap
,
m_selected
);
for
(
Dart
d
=
tra
.
begin
();
d
!=
tra
.
end
();
d
=
tra
.
next
())
m_affDarts
.
push_back
(
d
);
Algo
::
Render
::
drawerVertices
<
PFP
>
(
m_drawer
,
myMap
,
m_affDarts
,
position
);
break
;
}
case
132
:
{
Algo
::
Render
::
drawerEdge
<
PFP
>
(
m_drawer
,
myMap
,
m_selected
,
position
,
0.7
f
);
m_drawer
.
color3f
(
1.0
f
,
0.0
f
,
0.0
f
);
Traversor3EF
<
PFP
::
MAP
>
tra
(
myMap
,
m_selected
);
for
(
Dart
d
=
tra
.
begin
();
d
!=
tra
.
end
();
d
=
tra
.
next
())
m_affDarts
.
push_back
(
d
);
Algo
::
Render
::
drawerFaces
<
PFP
>
(
m_drawer
,
myMap
,
m_affDarts
,
position
,
0.7
f
);
break
;
}
case
142
:
{
Algo
::
Render
::
drawerEdge
<
PFP
>
(
m_drawer
,
myMap
,
m_selected
,
position
,
0.7
f
);
m_drawer
.
color3f
(
1.0
f
,
0.0
f
,
0.0
f
);
Traversor3EW
<
PFP
::
MAP
>
tra
(
myMap
,
m_selected
);
for
(
Dart
d
=
tra
.
begin
();
d
!=
tra
.
end
();
d
=
tra
.
next
())
m_affDarts
.
push_back
(
d
);
Algo
::
Render
::
drawerVolumes
<
PFP
>
(
m_drawer
,
myMap
,
m_affDarts
,
position
,
0.7
f
);
break
;
}
case
121
:
{
Algo
::
Render
::
drawerVertex
<
PFP
>
(
m_drawer
,
myMap
,
m_selected
,
position
);
m_drawer
.
color3f
(
1.0
f
,
0.0
f
,
0.0
f
);
Traversor3VE
<
PFP
::
MAP
>
tra
(
myMap
,
m_selected
);
for
(
Dart
d
=
tra
.
begin
();
d
!=
tra
.
end
();
d
=
tra
.
next
())
m_affDarts
.
push_back
(
d
);
Algo
::
Render
::
drawerEdges
<
PFP
>
(
m_drawer
,
myMap
,
m_affDarts
,
position
,
0.7
f
);
break
;
}
case
131
:
{
Algo
::
Render
::
drawerVertex
<
PFP
>
(
m_drawer
,
myMap
,
m_selected
,
position
);
Traversor3VF
<
PFP
::
MAP
>
tra
(
myMap
,
m_selected
);
for
(
Dart
d
=
tra
.
begin
();
d
!=
tra
.
end
();
d
=
tra
.
next
())
m_affDarts
.
push_back
(
d
);
Algo
::
Render
::
drawerFaces
<
PFP
>
(
m_drawer
,
myMap
,
m_affDarts
,
position
,
0.7
f
);
break
;
}
case
141
:
{
Algo
::
Render
::
drawerVertex
<
PFP
>
(
m_drawer
,
myMap
,
m_selected
,
position
);
Traversor3VW
<
PFP
::
MAP
>
tra
(
myMap
,
m_selected
);
for
(
Dart
d
=
tra
.
begin
();
d
!=
tra
.
end
();
d
=
tra
.
next
())
m_affDarts
.
push_back
(
d
);
Algo
::
Render
::
drawerVolumes
<
PFP
>
(
m_drawer
,
myMap
,
m_affDarts
,
position
,
0.7
f
);
break
;
}
// 2XY adjacent
case
212
:
{
Algo
::
Render
::
drawerVertex
<
PFP
>
(
m_drawer
,
myMap
,
m_selected
,
position
);
m_drawer
.
color3f
(
1.0
f
,
0.0
f
,
0.0
f
);
Traversor3VVaE
<
PFP
::
MAP
>
tra
(
myMap
,
m_selected
);
for
(
Dart
d
=
tra
.
begin
();
d
!=
tra
.
end
();
d
=
tra
.
next
())
m_affDarts
.
push_back
(
d
);
Algo
::
Render
::
drawerVertices
<
PFP
>
(
m_drawer
,
myMap
,
m_affDarts
,
position
);
break
;
}
case
213
:
{
Algo
::
Render
::
drawerVertex
<
PFP
>
(
m_drawer
,
myMap
,
m_selected
,
position
);
m_drawer
.
color3f
(
1.0
f
,
0.0
f
,
0.0
f
);
Traversor3VVaF
<
PFP
::
MAP
>
tra
(
myMap
,
m_selected
);
for
(
Dart
d
=
tra
.
begin
();
d
!=
tra
.
end
();
d
=
tra
.
next
())
m_affDarts
.
push_back
(
d
);
Algo
::
Render
::
drawerVertices
<
PFP
>
(
m_drawer
,
myMap
,
m_affDarts
,
position
);
break
;
}
case
214
:
{
Algo
::
Render
::
drawerVertex
<
PFP
>
(
m_drawer
,
myMap
,
m_selected
,
position
);
m_drawer
.
color3f
(
1.0
f
,
0.0
f
,
0.0
f
);
Traversor3VVaW
<
PFP
::
MAP
>
tra
(
myMap
,
m_selected
);
for
(
Dart
d
=
tra
.
begin
();
d
!=
tra
.
end
();
d
=
tra
.
next
())
m_affDarts
.
push_back
(
d
);
Algo
::
Render
::
drawerVertices
<
PFP
>
(
m_drawer
,
myMap
,
m_affDarts
,
position
);
break
;
}
case
221
:
{
Algo
::
Render
::
drawerEdge
<
PFP
>
(
m_drawer
,
myMap
,
m_selected
,
position
,
0.7
f
);
m_drawer
.
color3f
(
1.0
f
,
0.0
f
,
0.0
f
);
Traversor3EEaV
<
PFP
::
MAP
>
tra
(
myMap
,
m_selected
);
for
(
Dart
d
=
tra
.
begin
();
d
!=
tra
.
end
();
d
=
tra
.
next
())
m_affDarts
.
push_back
(
d
);
Algo
::
Render
::
drawerEdges
<
PFP
>
(
m_drawer
,
myMap
,
m_affDarts
,
position
,
0.7
f
);
break
;
}
case
223
:
{
Algo
::
Render
::
drawerEdge
<
PFP
>
(
m_drawer
,
myMap
,
m_selected
,
position
,
0.7
f
);
m_drawer
.
color3f
(
1.0
f
,
0.0
f
,
0.0
f
);
Traversor3EEaF
<
PFP
::
MAP
>
tra
(
myMap
,
m_selected
);
for
(
Dart
d
=
tra
.
begin
();
d
!=
tra
.
end
();
d
=
tra
.
next
())
m_affDarts
.
push_back
(
d
);
Algo
::
Render
::
drawerEdges
<
PFP
>
(
m_drawer
,
myMap
,
m_affDarts
,
position
,
0.7
f
);
break
;
}
case
224
:
{
Algo
::
Render
::
drawerEdge
<
PFP
>
(
m_drawer
,
myMap
,
m_selected
,
position
,
0.7
f
);
m_drawer
.
color3f
(
1.0
f
,
0.0
f
,
0.0
f
);
Traversor3EEaW
<
PFP
::
MAP
>
tra
(
myMap
,
m_selected
);
for
(
Dart
d
=
tra
.
begin
();
d
!=
tra
.
end
();
d
=
tra
.
next
())
m_affDarts
.
push_back
(
d
);
Algo
::
Render
::
drawerEdges
<
PFP
>
(
m_drawer
,
myMap
,
m_affDarts
,
position
,
0.7
f
);
break
;
}
case
231
:
if
(
m_ajd_or_inci3
==
0
)
// incident
{
Algo
::
Render
::
drawer
Face
<
PFP
>
(
m_drawer
,
myMap
,
m_selected
,
position
,
0.7
f
);
Algo
::
Render
::
drawer
Cell
<
PFP
>
(
VERTEX
+
m_second3
,
m_drawer
,
myMap
,
m_selected
,
position
,
0.7
f
);
m_drawer
.
color3f
(
1.0
f
,
0.0
f
,
0.0
f
);
Traversor3
FFaV
<
PFP
::
MAP
>
tra
(
myMap
,
m_selected
);
Traversor3
XY
<
PFP
::
MAP
>
tra
(
myMap
,
m_selected
,
VERTEX
+
m_second3
,
VERTEX
+
m_first3
);
for
(
Dart
d
=
tra
.
begin
();
d
!=
tra
.
end
();
d
=
tra
.
next
())
m_affDarts
.
push_back
(
d
);
Algo
::
Render
::
drawerFaces
<
PFP
>
(
m_drawer
,
myMap
,
m_affDarts
,
position
,
0.7
f
);
break
;
m_affDarts
.
push_back
(
d
);
Algo
::
Render
::
drawerCells
<
PFP
>
(
VERTEX
+
m_first3
,
m_drawer
,
myMap
,
m_affDarts
,
position
,
0.7
f
);
}
case
232
:
else
// adjacent
{
Algo
::
Render
::
drawer
Face
<
PFP
>
(
m_drawer
,
myMap
,
m_selected
,
position
,
0.7
f
);
Algo
::
Render
::
drawer
Cell
<
PFP
>
(
VERTEX
+
m_first3
,
m_drawer
,
myMap
,
m_selected
,
position
,
0.7
f
);
m_drawer
.
color3f
(
1.0
f
,
0.0
f
,
0.0
f
);
Traversor3
FFaE
<
PFP
::
MAP
>
tra
(
myMap
,
m_selected
);
Traversor3
XXaY
<
PFP
::
MAP
>
tra
(
myMap
,
m_selected
,
VERTEX
+
m_first3
,
VERTEX
+
m_second3
);
for
(
Dart
d
=
tra
.
begin
();
d
!=
tra
.
end
();
d
=
tra
.
next
())
m_affDarts
.
push_back
(
d
);
Algo
::
Render
::
drawerFaces
<
PFP
>
(
m_drawer
,
myMap
,
m_affDarts
,
position
,
0.7
f
);
break
;
}
case
234
:
{
Algo
::
Render
::
drawerFace
<
PFP
>
(
m_drawer
,
myMap
,
m_selected
,
position
,
0.7
f
);
m_drawer
.
color3f
(
1.0
f
,
0.0
f
,
0.0
f
);
Traversor3FFaW
<
PFP
::
MAP
>
tra
(
myMap
,
m_selected
);
for
(
Dart
d
=
tra
.
begin
();
d
!=
tra
.
end
();
d
=
tra
.
next
())
m_affDarts
.
push_back
(
d
);
Algo
::
Render
::
drawerFaces
<
PFP
>
(
m_drawer
,
myMap
,
m_affDarts
,
position
,
0.7
f
);
break
;
}
case
241
:
{
Algo
::
Render
::
drawerVolume
<
PFP
>
(
m_drawer
,
myMap
,
m_selected
,
position
,
0.7
f
);
m_drawer
.
color3f
(
1.0
f
,
0.0
f
,
0.0
f
);
Traversor3WWaV
<
PFP
::
MAP
>
tra
(
myMap
,
m_selected
);
for
(
Dart
d
=
tra
.
begin
();
d
!=
tra
.
end
();
d
=
tra
.
next
())
m_affDarts
.
push_back
(
d
);
Algo
::
Render
::
drawerVolumes
<
PFP
>
(
m_drawer
,
myMap
,
m_affDarts
,
position
,
0.7
f
);
break
;
}
case
242
:
{
Algo
::
Render
::
drawerVolume
<
PFP
>
(
m_drawer
,
myMap
,
m_selected
,
position
,
0.7
f
);
m_drawer
.
color3f
(
1.0
f
,
0.0
f
,
0.0
f
);
Traversor3WWaE
<
PFP
::
MAP
>
tra
(
myMap
,
m_selected
);
for
(
Dart
d
=
tra
.
begin
();
d
!=
tra
.
end
();
d
=
tra
.
next
())
m_affDarts
.
push_back
(
d
);
Algo
::
Render
::
drawerVolumes
<
PFP
>
(
m_drawer
,
myMap
,
m_affDarts
,
position
,
0.7
f
);
break
;
}
case
243
:
{
Algo
::
Render
::
drawerVolume
<
PFP
>
(
m_drawer
,
myMap
,
m_selected
,
position
,
0.7
f
);
m_drawer
.
color3f
(
1.0
f
,
0.0
f
,
0.0
f
);
Traversor3WWaF
<
PFP
::
MAP
>
tra
(
myMap
,
m_selected
);
for
(
Dart
d
=
tra
.
begin
();
d
!=
tra
.
end
();
d
=
tra
.
next
())
m_affDarts
.
push_back
(
d
);
Algo
::
Render
::
drawerVolumes
<
PFP
>
(
m_drawer
,
myMap
,
m_affDarts
,
position
,
0.7
f
);
break
;
m_affDarts
.
push_back
(
d
);
Algo
::
Render
::
drawerCells
<
PFP
>
(
VERTEX
+
m_first3
,
m_drawer
,
myMap
,
m_affDarts
,
position
,
0.7
f
);
}
default:
CGoGNerr
<<
"Not implemented"
<<
CGoGNendl
;
break
;
}
m_drawer
.
endList
();
updateGL
();
}
...
...
Apps/Tuto/show_traversors.h
View file @
d4159fab
...
...
@@ -90,22 +90,22 @@ class MyQT: public Utils::QT::SimpleQT
bool
m_showTopo
;
unsigned
int
m_
val_combo1
;
unsigned
int
m_
val_combo2
;
unsigned
int
m_
val_combo
3
;
unsigned
int
m_
val_combo4
;
unsigned
int
m_
val_combo5
;
unsigned
int
m_
val_combo6
;
unsigned
int
m_
first3
;
unsigned
int
m_
ajd_or_inci3
;
unsigned
int
m_
second
3
;
unsigned
int
m_
first2
;
unsigned
int
m_
ajd_or_inci2
;
unsigned
int
m_
second2
;
public:
MyQT
()
:
m_render_topo
(
NULL
),
m_showTopo
(
true
),
m_
val_combo1
(
1
),
m_
val_combo2
(
1
),
m_
val_combo
3
(
2
),
m_
val_combo4
(
1
),
m_
val_combo5
(
1
),
m_
val_combo6
(
2
),
m_
first3
(
0
),
m_
ajd_or_inci3
(
0
),
m_
second
3
(
1
),
m_
first2
(
0
),
m_
ajd_or_inci2
(
0
),
m_
second2
(
1
),
m_selected
(
NIL
)
{}
...
...
include/Algo/Render/GL2/drawerCells.h
View file @
d4159fab
...
...
@@ -33,6 +33,31 @@ namespace Algo
{
namespace
Render
{
/**
* add a cell to a drawer
* @param the cell (VERTEX,EDGE,...)
* * @param dr the drawer to use
* @param map the map
* @param d the dart
* @param positions attribute of positions
* @param k shrinking factor
*/
template
<
typename
PFP
>
void
drawerCells
(
unsigned
int
cell
,
Utils
::
Drawer
&
dr
,
typename
PFP
::
MAP
&
map
,
std
::
vector
<
Dart
>&
vd
,
const
typename
PFP
::
TVEC3
&
positions
);
/**
* add a set of volumes to a drawer
* @param the cell (VERTEX,EDGE,...)
* @param dr the drawer to use
* @param map the map
* @param vd the darts
* @param positions attribute of positions
* @param k shrinking factor
*/
template
<
typename
PFP
>
void
drawerCell
(
unsigned
int
cell
,
Utils
::
Drawer
&
dr
,
typename
PFP
::
MAP
&
map
,
Dart
d
,
const
typename
PFP
::
TVEC3
&
positions
);
/**
* add a set of vertices to a drawer
...
...
@@ -87,7 +112,6 @@ void drawerVolumes(Utils::Drawer& dr, typename PFP::MAP& map, std::vector<Dart>&
* @param map the map
* @param d the dart
* @param positions attribute of positions
* @param k shrinking factor
*/
template
<
typename
PFP
>
void
drawerVertex
(
Utils
::
Drawer
&
dr
,
typename
PFP
::
MAP
&
map
,
Dart
d
,
const
typename
PFP
::
TVEC3
&
positions
);
...
...