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
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
KennethVanhoey
CGoGN
Commits
28268981
Commit
28268981
authored
May 24, 2011
by
Pierre Kraemer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
suite no lazy
parent
0003689c
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
53 additions
and
25 deletions
+53
-25
include/Algo/Modelisation/polyhedron.h
include/Algo/Modelisation/polyhedron.h
+1
-1
include/Algo/Modelisation/polyhedron.hpp
include/Algo/Modelisation/polyhedron.hpp
+10
-9
include/Algo/MovingObjects/particle_cell_2D.h
include/Algo/MovingObjects/particle_cell_2D.h
+1
-1
include/Algo/MovingObjects/particle_cell_2D.hpp
include/Algo/MovingObjects/particle_cell_2D.hpp
+1
-1
include/Algo/Render/GL1/topo_render.hpp
include/Algo/Render/GL1/topo_render.hpp
+1
-1
include/Topology/generic/cellmarker.h
include/Topology/generic/cellmarker.h
+1
-0
include/Topology/generic/embeddedMap2.h
include/Topology/generic/embeddedMap2.h
+5
-0
include/Topology/generic/embeddedMap2.hpp
include/Topology/generic/embeddedMap2.hpp
+32
-11
src/Topology/map/map1.cpp
src/Topology/map/map1.cpp
+1
-1
No files found.
include/Algo/Modelisation/polyhedron.h
View file @
28268981
...
...
@@ -206,7 +206,7 @@ public:
* @param y nb of quads in y
* @return the dart
*/
Dart
grid_topo
(
int
x
,
int
y
);
Dart
grid_topo
(
unsigned
int
x
,
unsigned
int
y
);
/**
* Create a subdivided (surface) cylinder
...
...
include/Algo/Modelisation/polyhedron.hpp
View file @
28268981
...
...
@@ -202,7 +202,7 @@ Dart Polyhedron<PFP>::createOrientedPolyhedron(typename PFP::MAP& the_map, int n
}
template
<
typename
PFP
>
Dart
Polyhedron
<
PFP
>::
grid_topo
(
int
x
,
int
y
)
Dart
Polyhedron
<
PFP
>::
grid_topo
(
unsigned
int
x
,
unsigned
int
y
)
{
if
(
m_kind
!=
NONE
)
return
m_dart
;
...
...
@@ -216,29 +216,30 @@ Dart Polyhedron<PFP>::grid_topo(int x, int y)
m_tableVertDarts
.
reserve
(
nb
);
// creation of quads and storing vertices
for
(
int
i
=
0
;
i
<
y
;
++
i
)
for
(
unsigned
int
i
=
0
;
i
<
y
;
++
i
)
{
for
(
int
j
=
1
;
j
<=
x
;
++
j
)
for
(
unsigned
int
j
=
1
;
j
<=
x
;
++
j
)
{
Dart
d
=
m_map
.
newFace
(
4
);
m_tableVertDarts
.
push_back
(
d
);
if
(
j
==
x
)
if
(
j
==
x
)
m_tableVertDarts
.
push_back
(
m_map
.
phi1
(
d
));
}
}
// store last row of vertices
for
(
int
i
=
0
;
i
<
x
;
++
i
)
for
(
unsigned
int
i
=
0
;
i
<
x
;
++
i
)
{
m_tableVertDarts
.
push_back
(
m_map
.
phi_1
(
m_tableVertDarts
[(
y
-
1
)
*
(
x
+
1
)
+
i
])
);
}
m_tableVertDarts
.
push_back
(
m_map
.
phi1
(
m_tableVertDarts
[(
y
-
1
)
*
(
x
+
1
)
+
x
])
);
//sewing the quads
for
(
int
i
=
0
;
i
<
y
;
++
i
)
for
(
unsigned
int
i
=
0
;
i
<
y
;
++
i
)
{
for
(
int
j
=
0
;
j
<
x
;
++
j
)
for
(
unsigned
int
j
=
0
;
j
<
x
;
++
j
)
{
if
(
i
>
0
)
// sew with preceeding row
if
(
i
>
0
)
// sew with preceeding row
{
int
pos
=
i
*
(
x
+
1
)
+
j
;
Dart
d
=
m_tableVertDarts
[
pos
];
...
...
@@ -246,7 +247,7 @@ Dart Polyhedron<PFP>::grid_topo(int x, int y)
e
=
m_map
.
phi1
(
m_map
.
phi1
(
e
));
m_map
.
sewFaces
(
d
,
e
);
}
if
(
j
>
0
)
// sew with preceeding column
if
(
j
>
0
)
// sew with preceeding column
{
int
pos
=
i
*
(
x
+
1
)
+
j
;
Dart
d
=
m_tableVertDarts
[
pos
];
...
...
include/Algo/MovingObjects/particle_cell_2D.h
View file @
28268981
...
...
@@ -49,7 +49,7 @@ public :
{}
ParticleCell2D
(
Map
&
map
,
Dart
belonging_cell
,
VEC3
pos
,
const
TAB_POS
&
tabPos
)
:
ParticleBase
(
pos
),
m
(
map
),
m_positions
(
tabPos
),
d
(
belonging_cell
),
lastCrossed
(
belonging_cell
),
state
(
2
),
crossCell
(
NO_CROSS
)
ParticleBase
(
pos
),
m
(
map
),
m_positions
(
tabPos
),
d
(
belonging_cell
),
lastCrossed
(
belonging_cell
),
state
(
FACE_ORBIT
),
crossCell
(
NO_CROSS
)
{}
Dart
getCell
()
{
return
d
;
}
...
...
include/Algo/MovingObjects/particle_cell_2D.hpp
View file @
28268981
//
#define DEBUG
//#define DEBUG
template
<
typename
PFP
>
void
ParticleCell2D
<
PFP
>::
display
()
...
...
include/Algo/Render/GL1/topo_render.hpp
View file @
28268981
...
...
@@ -168,7 +168,7 @@ void renderTopoMD2(typename PFP::MAP& the_map, const typename PFP::TVEC3& positi
AutoAttributeHandler
<
Geom
::
Vec3f
>
vert
(
the_map
,
DART_ORBIT
);
glLineWidth
(
2.0
f
);
glColor3f
(
0.
0
f
,
0.0
f
,
0.0
f
);
glColor3f
(
0.
9
f
,
0.9
f
,
0.9
f
);
glBegin
(
GL_LINES
);
DartMarker
mf
(
the_map
);
...
...
include/Topology/generic/cellmarker.h
View file @
28268981
...
...
@@ -32,6 +32,7 @@
#define VERTEX_CELL VERTEX_ORBIT
#define EDGE_CELL EDGE_ORBIT
#define ORIENTED_FACE_CELL ORIENTED_FACE_ORBIT
#define FACE_CELL FACE_ORBIT
#define VOLUME_CELL VOLUME_ORBIT
#define DART_CELL DART_ORBIT // ??
...
...
include/Topology/generic/embeddedMap2.h
View file @
28268981
...
...
@@ -113,6 +113,11 @@ public:
*/
virtual
bool
mergeVolumes
(
Dart
d
,
Dart
e
)
;
/**
* No attribute is attached to the new face
*/
virtual
unsigned
int
closeHole
(
Dart
d
);
virtual
bool
check
()
;
}
;
...
...
include/Topology/generic/embeddedMap2.hpp
View file @
28268981
...
...
@@ -168,13 +168,13 @@ bool EmbeddedMap2<MAP2>::flipEdge(Dart d)
if
(
MAP2
::
isOrbitEmbedded
(
VERTEX_ORBIT
))
{
MAP2
::
setDartEmbedding
(
VERTEX_ORBIT
,
d
,
MAP2
::
getEmbedding
(
VERTEX_ORBIT
,
MAP2
::
phi1
(
e
)
))
;
MAP2
::
setDartEmbedding
(
VERTEX_ORBIT
,
e
,
MAP2
::
getEmbedding
(
VERTEX_ORBIT
,
MAP2
::
phi1
(
d
)
))
;
MAP2
::
copyDartEmbedding
(
VERTEX_ORBIT
,
d
,
MAP2
::
phi1
(
e
))
;
MAP2
::
copyDartEmbedding
(
VERTEX_ORBIT
,
e
,
MAP2
::
phi1
(
d
))
;
}
if
(
MAP2
::
isOrbitEmbedded
(
FACE_ORBIT
))
{
MAP2
::
setDartEmbedding
(
FACE_ORBIT
,
MAP2
::
phi_1
(
d
),
MAP2
::
getEmbedding
(
FACE_ORBIT
,
d
)
)
;
MAP2
::
setDartEmbedding
(
FACE_ORBIT
,
MAP2
::
phi_1
(
e
),
MAP2
::
getEmbedding
(
FACE_ORBIT
,
e
)
)
;
MAP2
::
copyDartEmbedding
(
FACE_ORBIT
,
MAP2
::
phi_1
(
d
),
d
)
;
MAP2
::
copyDartEmbedding
(
FACE_ORBIT
,
MAP2
::
phi_1
(
e
),
e
)
;
}
return
true
;
}
...
...
@@ -190,13 +190,13 @@ bool EmbeddedMap2<MAP2>::flipBackEdge(Dart d)
if
(
MAP2
::
isOrbitEmbedded
(
VERTEX_ORBIT
))
{
MAP2
::
setDartEmbedding
(
VERTEX_ORBIT
,
d
,
MAP2
::
getEmbedding
(
VERTEX_ORBIT
,
MAP2
::
phi1
(
e
)
))
;
MAP2
::
setDartEmbedding
(
VERTEX_ORBIT
,
e
,
MAP2
::
getEmbedding
(
VERTEX_ORBIT
,
MAP2
::
phi1
(
d
)
))
;
MAP2
::
copyDartEmbedding
(
VERTEX_ORBIT
,
d
,
MAP2
::
phi1
(
e
))
;
MAP2
::
copyDartEmbedding
(
VERTEX_ORBIT
,
e
,
MAP2
::
phi1
(
d
))
;
}
if
(
MAP2
::
isOrbitEmbedded
(
FACE_ORBIT
))
{
MAP2
::
setDartEmbedding
(
FACE_ORBIT
,
MAP2
::
phi1
(
d
),
MAP2
::
getEmbedding
(
FACE_ORBIT
,
d
)
)
;
MAP2
::
setDartEmbedding
(
FACE_ORBIT
,
MAP2
::
phi1
(
e
),
MAP2
::
getEmbedding
(
FACE_ORBIT
,
e
)
)
;
MAP2
::
copyDartEmbedding
(
FACE_ORBIT
,
MAP2
::
phi1
(
d
),
d
)
;
MAP2
::
copyDartEmbedding
(
FACE_ORBIT
,
MAP2
::
phi1
(
e
),
e
)
;
}
return
true
;
}
...
...
@@ -281,7 +281,7 @@ bool EmbeddedMap2<MAP2>::collapseDegeneratedFace(Dart d)
{
if
(
MAP2
::
isOrbitEmbedded
(
EDGE_ORBIT
))
{
MAP2
::
setDartEmbedding
(
EDGE_ORBIT
,
MAP2
::
phi2
(
e
),
MAP2
::
getEmbedding
(
EDGE_ORBIT
,
e
)
)
;
MAP2
::
copyDartEmbedding
(
EDGE_ORBIT
,
MAP2
::
phi2
(
e
),
e
)
;
}
return
true
;
}
...
...
@@ -295,8 +295,8 @@ void EmbeddedMap2<MAP2>::splitFace(Dart d, Dart e)
if
(
MAP2
::
isOrbitEmbedded
(
VERTEX_ORBIT
))
{
MAP2
::
setDartEmbedding
(
VERTEX_ORBIT
,
MAP2
::
phi_1
(
e
),
MAP2
::
getEmbedding
(
VERTEX_ORBIT
,
d
)
)
;
MAP2
::
setDartEmbedding
(
VERTEX_ORBIT
,
MAP2
::
phi_1
(
d
),
MAP2
::
getEmbedding
(
VERTEX_ORBIT
,
e
)
)
;
MAP2
::
copyDartEmbedding
(
VERTEX_ORBIT
,
MAP2
::
phi_1
(
e
),
d
)
;
MAP2
::
copyDartEmbedding
(
VERTEX_ORBIT
,
MAP2
::
phi_1
(
d
),
e
)
;
}
if
(
MAP2
::
isOrbitEmbedded
(
FACE_ORBIT
))
{
...
...
@@ -364,6 +364,27 @@ bool EmbeddedMap2<MAP2>::mergeVolumes(Dart d, Dart e)
return
false
;
}
template
<
typename
MAP2
>
unsigned
int
EmbeddedMap2
<
MAP2
>::
closeHole
(
Dart
d
)
{
unsigned
int
nbE
=
MAP2
::
closeHole
(
d
)
;
Dart
dd
=
MAP2
::
phi2
(
d
)
;
Dart
f
=
dd
;
do
{
if
(
MAP2
::
isOrbitEmbedded
(
VERTEX_ORBIT
))
{
MAP2
::
copyDartEmbedding
(
VERTEX_ORBIT
,
f
,
MAP2
::
alpha1
(
f
))
;
}
if
(
MAP2
::
isOrbitEmbedded
(
EDGE_ORBIT
))
{
MAP2
::
copyDartEmbedding
(
EDGE_ORBIT
,
f
,
MAP2
::
phi2
(
f
))
;
}
f
=
MAP2
::
phi1
(
f
)
;
}
while
(
dd
!=
f
)
;
return
nbE
;
}
template
<
typename
MAP2
>
bool
EmbeddedMap2
<
MAP2
>::
check
()
{
...
...
src/Topology/map/map1.cpp
View file @
28268981
...
...
@@ -35,7 +35,7 @@ Dart Map1::newOrientedFace(unsigned nbEdges)
{
assert
(
nbEdges
>
0
||
!
"Cannot create a face with no edge"
)
;
Dart
d
=
newDart
()
;
// Create the first edge
for
(
unsigned
i
=
1
;
i
<
nbEdges
;
++
i
)
for
(
unsigned
i
nt
i
=
1
;
i
<
nbEdges
;
++
i
)
Map1
::
cutEdge
(
d
)
;
// Subdivide nbEdges-1 times this edge
return
d
;
}
...
...
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