Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
KennethVanhoey
CGoGN
Commits
d4159fab
Commit
d4159fab
authored
Feb 07, 2012
by
Pierre Kraemer
Browse files
Merge cgogn:~thery/CGoGN
Conflicts: include/Topology/generic/genericmap.h
parents
85cd31be
9ea67fa3
Changes
14
Hide whitespace changes
Inline
Side-by-side
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