Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
CGoGN
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
KennethVanhoey
CGoGN
Commits
7114af20
Commit
7114af20
authored
Feb 02, 2015
by
Sylvain Thery
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' into 'master'
Master once upon a time See merge request !39
parents
7576a3e9
21e86c78
Changes
60
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
60 changed files
with
4284 additions
and
1158 deletions
+4284
-1158
Apps/Examples/mcmesh.cpp
Apps/Examples/mcmesh.cpp
+2
-1
Apps/Examples/viewer.cpp
Apps/Examples/viewer.cpp
+6
-3
Apps/Examples/volumeExplorer.cpp
Apps/Examples/volumeExplorer.cpp
+21
-2
Apps/Tuto/Modelling/tuto_oper2.cpp
Apps/Tuto/Modelling/tuto_oper2.cpp
+30
-0
Apps/Tuto/Modelling/tuto_oper2.h
Apps/Tuto/Modelling/tuto_oper2.h
+1
-0
Apps/Tuto/Modelling/tuto_oper2.ui
Apps/Tuto/Modelling/tuto_oper2.ui
+15
-1
Apps/Tuto/Modelling/tuto_oper3.cpp
Apps/Tuto/Modelling/tuto_oper3.cpp
+25
-9
Apps/Tuto/Modelling/tuto_oper3.ui
Apps/Tuto/Modelling/tuto_oper3.ui
+10
-0
CMakeLists.txt
CMakeLists.txt
+1
-1
SCHNApps/Plugins/CMakeLists.txt
SCHNApps/Plugins/CMakeLists.txt
+2
-0
SCHNApps/include/texture.h
SCHNApps/include/texture.h
+3
-0
SCHNApps/include/types.h
SCHNApps/include/types.h
+3
-0
ThirdParty/build/.gitignore
ThirdParty/build/.gitignore
+0
-2
ThirdParty/buildDebug/.gitignore
ThirdParty/buildDebug/.gitignore
+0
-2
apps_cmake.txt
apps_cmake.txt
+1
-1
build/.gitignore
build/.gitignore
+0
-2
buildDebug/.gitignore
buildDebug/.gitignore
+0
-2
include/Algo/Export/export.hpp
include/Algo/Export/export.hpp
+1
-1
include/Algo/Export/exportVol.h
include/Algo/Export/exportVol.h
+3
-0
include/Algo/Export/exportVol.hpp
include/Algo/Export/exportVol.hpp
+75
-0
include/Algo/ImplicitHierarchicalMesh/ihm3.h
include/Algo/ImplicitHierarchicalMesh/ihm3.h
+144
-144
include/Algo/ImplicitHierarchicalMesh/ihm3.hpp
include/Algo/ImplicitHierarchicalMesh/ihm3.hpp
+186
-185
include/Algo/ImplicitHierarchicalMesh/subdivision3.h
include/Algo/ImplicitHierarchicalMesh/subdivision3.h
+15
-15
include/Algo/ImplicitHierarchicalMesh/subdivision3.hpp
include/Algo/ImplicitHierarchicalMesh/subdivision3.hpp
+280
-279
include/Algo/Import/import.hpp
include/Algo/Import/import.hpp
+711
-408
include/Algo/Import/import2tables.h
include/Algo/Import/import2tables.h
+4
-0
include/Algo/Import/import2tablesSurface.hpp
include/Algo/Import/import2tablesSurface.hpp
+86
-0
include/Algo/Import/import2tablesVolume.hpp
include/Algo/Import/import2tablesVolume.hpp
+62
-31
include/Algo/MC/image.h
include/Algo/MC/image.h
+2
-2
include/Algo/MC/image.hpp
include/Algo/MC/image.hpp
+2
-2
include/Algo/Modelisation/polyhedron.h
include/Algo/Modelisation/polyhedron.h
+2
-0
include/Algo/Modelisation/polyhedron.hpp
include/Algo/Modelisation/polyhedron.hpp
+21
-0
include/Algo/Modelisation/tetrahedralization.h
include/Algo/Modelisation/tetrahedralization.h
+1
-1
include/Algo/Modelisation/tetrahedralization.hpp
include/Algo/Modelisation/tetrahedralization.hpp
+3
-3
include/Algo/Multiresolution/IHM2/ihm2_PrimalAdapt.hpp
include/Algo/Multiresolution/IHM2/ihm2_PrimalAdapt.hpp
+5
-8
include/Algo/Multiresolution/IHM3/ihm3_PrimalAdapt.h
include/Algo/Multiresolution/IHM3/ihm3_PrimalAdapt.h
+208
-0
include/Algo/Multiresolution/IHM3/ihm3_PrimalAdapt.hpp
include/Algo/Multiresolution/IHM3/ihm3_PrimalAdapt.hpp
+956
-0
include/Algo/Multiresolution/Map2MR/Masks/catmullClark.h
include/Algo/Multiresolution/Map2MR/Masks/catmullClark.h
+6
-6
include/Algo/Multiresolution/Map2MR/Masks/lerp.h
include/Algo/Multiresolution/Map2MR/Masks/lerp.h
+6
-6
include/Algo/Multiresolution/Map2MR/Masks/loop.h
include/Algo/Multiresolution/Map2MR/Masks/loop.h
+4
-4
include/Algo/Multiresolution/Map2MR/Masks/sqrt3.h
include/Algo/Multiresolution/Map2MR/Masks/sqrt3.h
+4
-4
include/Algo/Multiresolution/Map3MR/Filters/bertram.h
include/Algo/Multiresolution/Map3MR/Filters/bertram.h
+1
-1
include/Algo/Multiresolution/Map3MR/Masks/lerp.h
include/Algo/Multiresolution/Map3MR/Masks/lerp.h
+9
-9
include/Algo/Multiresolution/Map3MR/map3MR_PrimalAdapt.h
include/Algo/Multiresolution/Map3MR/map3MR_PrimalAdapt.h
+0
-3
include/Topology/generic/dartmarker.h
include/Topology/generic/dartmarker.h
+14
-0
include/Topology/generic/traversor/traversor2_closed.h
include/Topology/generic/traversor/traversor2_closed.h
+2
-2
include/Topology/ihmap/ihm2.h
include/Topology/ihmap/ihm2.h
+2
-2
include/Topology/ihmap/ihm2.hpp
include/Topology/ihmap/ihm2.hpp
+4
-8
include/Topology/ihmap/ihm3.h
include/Topology/ihmap/ihm3.h
+301
-0
include/Topology/ihmap/ihm3.hpp
include/Topology/ihmap/ihm3.hpp
+715
-0
include/Topology/map/embeddedMap2.h
include/Topology/map/embeddedMap2.h
+5
-0
include/Topology/map/embeddedMap3.h
include/Topology/map/embeddedMap3.h
+5
-0
include/Topology/map/map2.h
include/Topology/map/map2.h
+12
-0
include/Topology/map/map2.hpp
include/Topology/map/map2.hpp
+39
-1
include/Topology/map/map3.h
include/Topology/map/map3.h
+5
-0
include/Topology/map/map3.hpp
include/Topology/map/map3.hpp
+47
-1
src/Algo/ImplicitHierarchicalMesh/ihm3.cpp
src/Algo/ImplicitHierarchicalMesh/ihm3.cpp
+6
-6
src/Topology/ihmap/ihm3.cpp
src/Topology/ihmap/ihm3.cpp
+133
-0
src/Topology/map/embeddedMap2.cpp
src/Topology/map/embeddedMap2.cpp
+19
-0
src/Topology/map/embeddedMap3.cpp
src/Topology/map/embeddedMap3.cpp
+58
-0
No files found.
Apps/Examples/mcmesh.cpp
View file @
7114af20
...
@@ -168,7 +168,8 @@ void MCMesh::updateRender()
...
@@ -168,7 +168,8 @@ void MCMesh::updateRender()
void
MCMesh
::
fromFile
(
char
*
fname
)
void
MCMesh
::
fromFile
(
char
*
fname
)
{
{
myImg
=
new
SAlgo
::
MC
::
Image
<
DATATYPE
>
();
myImg
=
new
SAlgo
::
MC
::
Image
<
DATATYPE
>
();
myImg
->
loadInrgz
(
fname
);
//myImg->loadInrgz(fname);
myImg
->
loadVox
(
fname
);
CGoGNout
<<
"Image chargee"
<<
CGoGNendl
;
CGoGNout
<<
"Image chargee"
<<
CGoGNendl
;
CGoGNout
<<
myImg
->
getWidthX
()
<<
"x"
<<
myImg
->
getWidthY
()
<<
"x"
<<
myImg
->
getWidthZ
()
<<
"voxels"
<<
CGoGNendl
;
CGoGNout
<<
myImg
->
getWidthX
()
<<
"x"
<<
myImg
->
getWidthY
()
<<
"x"
<<
myImg
->
getWidthZ
()
<<
"voxels"
<<
CGoGNendl
;
}
}
...
...
Apps/Examples/viewer.cpp
View file @
7114af20
...
@@ -31,7 +31,7 @@ Viewer::Viewer() :
...
@@ -31,7 +31,7 @@ Viewer::Viewer() :
m_drawFaces
(
true
),
m_drawFaces
(
true
),
m_drawNormals
(
false
),
m_drawNormals
(
false
),
m_drawTopo
(
false
),
m_drawTopo
(
false
),
m_drawBoundaryTopo
(
tru
e
),
m_drawBoundaryTopo
(
fals
e
),
m_render
(
NULL
),
m_render
(
NULL
),
m_phongShader
(
NULL
),
m_phongShader
(
NULL
),
m_flatShader
(
NULL
),
m_flatShader
(
NULL
),
...
@@ -87,7 +87,7 @@ void Viewer::cb_initGL()
...
@@ -87,7 +87,7 @@ void Viewer::cb_initGL()
m_render
=
new
Algo
::
Render
::
GL2
::
MapRender
()
;
m_render
=
new
Algo
::
Render
::
GL2
::
MapRender
()
;
m_topoRender
=
new
Algo
::
Render
::
GL2
::
TopoRender
()
;
m_topoRender
=
new
Algo
::
Render
::
GL2
::
TopoRender
()
;
m_topoRender
->
setInitialDartsColor
(
0.25
f
,
0.25
f
,
0.25
f
)
;
m_topoRender
->
setInitialDartsColor
(
1.0
f
,
1.00
f
,
1.00
f
)
;
m_positionVBO
=
new
Utils
::
VBO
()
;
m_positionVBO
=
new
Utils
::
VBO
()
;
m_normalVBO
=
new
Utils
::
VBO
()
;
m_normalVBO
=
new
Utils
::
VBO
()
;
...
@@ -552,11 +552,14 @@ void Viewer::importMesh(std::string& filename)
...
@@ -552,11 +552,14 @@ void Viewer::importMesh(std::string& filename)
// myMap.enableQuickTraversal<VERTEX>() ;
// myMap.enableQuickTraversal<VERTEX>() ;
std
::
cout
<<
"The mesh is "
<<
(
myMap
.
isOpen
()
?
"open"
:
"closed"
)
<<
std
::
endl
;
m_render
->
initPrimitives
<
PFP
>
(
myMap
,
Algo
::
Render
::
GL2
::
POINTS
)
;
m_render
->
initPrimitives
<
PFP
>
(
myMap
,
Algo
::
Render
::
GL2
::
POINTS
)
;
m_render
->
initPrimitives
<
PFP
>
(
myMap
,
Algo
::
Render
::
GL2
::
LINES
)
;
m_render
->
initPrimitives
<
PFP
>
(
myMap
,
Algo
::
Render
::
GL2
::
LINES
)
;
m_render
->
initPrimitives
<
PFP
>
(
myMap
,
Algo
::
Render
::
GL2
::
TRIANGLES
)
;
m_render
->
initPrimitives
<
PFP
>
(
myMap
,
Algo
::
Render
::
GL2
::
TRIANGLES
)
;
m_topoRender
->
updateData
<
PFP
>
(
myMap
,
position
,
0.85
f
,
0.85
f
,
m_drawBoundaryTopo
)
;
m_topoRender
->
updateData
<
PFP
>
(
myMap
,
position
,
0.85
f
,
0.85
f
,
m_drawBoundaryTopo
,
true
)
;
bb
=
Algo
::
Geometry
::
computeBoundingBox
<
PFP
>
(
myMap
,
position
)
;
bb
=
Algo
::
Geometry
::
computeBoundingBox
<
PFP
>
(
myMap
,
position
)
;
normalBaseSize
=
bb
.
diagSize
()
/
100.0
f
;
normalBaseSize
=
bb
.
diagSize
()
/
100.0
f
;
...
...
Apps/Examples/volumeExplorer.cpp
View file @
7114af20
...
@@ -29,8 +29,10 @@
...
@@ -29,8 +29,10 @@
#include "Algo/Modelisation/polyhedron.h"
#include "Algo/Modelisation/polyhedron.h"
#include "Algo/Import/import.h"
#include "Algo/Import/import.h"
#include "Algo/Geometry/volume.h"
#include "Algo/Geometry/volume.h"
#include "Algo/Modelisation/tetrahedralization.h"
#include "Algo/Geometry/area.h"
#include "Algo/Geometry/area.h"
#include "Utils/chrono.h"
#include "Utils/chrono.h"
#include "Algo/Export/exportVol.h"
#include "Algo/Export/exportVol.h"
...
@@ -172,12 +174,14 @@ void MyQT::cb_Open()
...
@@ -172,12 +174,14 @@ void MyQT::cb_Open()
for
(
Dart
d
=
tra
.
begin
();
d
!=
tra
.
end
();
d
=
tra
.
next
())
for
(
Dart
d
=
tra
.
begin
();
d
!=
tra
.
end
();
d
=
tra
.
next
())
{
{
// float v = Algo::Geometry::tetrahedronVolume<PFP>(myMap, d, position);
// float v = Algo::Geometry::tetrahedronVolume<PFP>(myMap, d, position);
color
[
d
]
=
PFP
::
VEC3
(
1.0
,
0
,
0
);
// color[d] = VEC3(v,0,0);
// color[d] = VEC3(v,0,0);
// if (v>maxV)
// if (v>maxV)
// maxV=v;
// maxV=v;
if
(
myMap
.
isVolumeIncidentToBoundary
(
d
))
if
(
myMap
.
isVolumeIncidentToBoundary
(
d
))
color
[
d
]
=
VEC3
(
0
,
0
,
0
);
color
[
d
]
=
VEC3
(
1
,
0.41
,
0.706
);
}
}
// for (unsigned int i = color.begin(); i != color.end(); color.next(i))
// for (unsigned int i = color.begin(); i != color.end(); color.next(i))
// {
// {
...
@@ -399,7 +403,7 @@ int main(int argc, char **argv)
...
@@ -399,7 +403,7 @@ int main(int argc, char **argv)
{
{
*/
*/
if
(
extension
==
std
::
string
(
".map"
))
if
(
extension
==
std
::
string
(
".map
bin
"
))
{
{
myMap
.
loadMapBin
(
filename
);
myMap
.
loadMapBin
(
filename
);
position
=
myMap
.
getAttribute
<
VEC3
,
VERTEX
,
MAP
>
(
"position"
)
;
position
=
myMap
.
getAttribute
<
VEC3
,
VERTEX
,
MAP
>
(
"position"
)
;
...
@@ -421,6 +425,17 @@ int main(int argc, char **argv)
...
@@ -421,6 +425,17 @@ int main(int argc, char **argv)
float
maxV
=
0.0
f
;
float
maxV
=
0.0
f
;
for
(
Dart
d
=
tra
.
begin
();
d
!=
tra
.
end
();
d
=
tra
.
next
())
for
(
Dart
d
=
tra
.
begin
();
d
!=
tra
.
end
();
d
=
tra
.
next
())
{
{
// float v = Algo::Geometry::tetrahedronVolume<PFP>(myMap, d, position);
color
[
d
]
=
PFP
::
VEC3
(
1.0
,
0
,
0
);
// if (v>maxV)
// maxV=v;
if
(
myMap
.
isVolumeIncidentToBoundary
(
d
))
color
[
d
]
=
PFP
::
VEC3
(
1
,
0.41
,
0.706
);
//else
// color[d] = PFP::VEC3(1.0,0,0);
/*
float v = Algo::Geometry::tetrahedronVolume<PFP>(myMap, d, position);
float v = Algo::Geometry::tetrahedronVolume<PFP>(myMap, d, position);
color[d] = VEC3(v,0,0);
color[d] = VEC3(v,0,0);
if (v>maxV)
if (v>maxV)
...
@@ -435,6 +450,7 @@ int main(int argc, char **argv)
...
@@ -435,6 +450,7 @@ int main(int argc, char **argv)
{
{
color[i][0] /= maxV;
color[i][0] /= maxV;
color[i][2] = 1.0f - color[i][0];
color[i][2] = 1.0f - color[i][0];
*/
}
}
}
}
...
@@ -460,6 +476,9 @@ int main(int argc, char **argv)
...
@@ -460,6 +476,9 @@ int main(int argc, char **argv)
// Algo::Volume::Export::exportNAS<PFP>(myMap,position,"/tmp/test1.nas");
// Algo::Volume::Export::exportNAS<PFP>(myMap,position,"/tmp/test1.nas");
// Algo::Volume::Export::exportVTU<PFP>(myMap,position,"/tmp/test3.vtu");
// Algo::Volume::Export::exportVTU<PFP>(myMap,position,"/tmp/test3.vtu");
}
}
myMap
.
check
();
// un peu d'interface
// un peu d'interface
QApplication
app
(
argc
,
argv
);
QApplication
app
(
argc
,
argv
);
MyQT
sqt
;
MyQT
sqt
;
...
...
Apps/Tuto/Modelling/tuto_oper2.cpp
View file @
7114af20
...
@@ -157,6 +157,17 @@ void MyQT::operation(int x)
...
@@ -157,6 +157,17 @@ void MyQT::operation(int x)
m_selected2
=
NIL
;
m_selected2
=
NIL
;
}
}
break
;
break
;
case
10
:
CGoGNout
<<
"split surface"
<<
CGoGNendl
;
if
(
!
m_selecteds
.
empty
())
{
myMap
.
splitSurface
(
m_selecteds
);
updateMap
();
m_selected
=
NIL
;
m_selected2
=
NIL
;
m_selecteds
.
clear
();
}
break
;
default:
default:
break
;
break
;
...
@@ -233,7 +244,15 @@ void MyQT::cb_redraw()
...
@@ -233,7 +244,15 @@ void MyQT::cb_redraw()
m_render_topo
->
overdrawDart
(
myMap
,
m_selected
,
11
,
1.0
f
,
0.0
f
,
0.0
f
);
m_render_topo
->
overdrawDart
(
myMap
,
m_selected
,
11
,
1.0
f
,
0.0
f
,
0.0
f
);
if
(
m_selected2
!=
NIL
)
if
(
m_selected2
!=
NIL
)
if
(
!
m_selecteds
.
empty
())
{
for
(
std
::
vector
<
Dart
>::
iterator
it
=
m_selecteds
.
begin
()
;
it
!=
m_selecteds
.
end
()
;
++
it
)
m_render_topo
->
overdrawDart
(
myMap
,
*
it
,
11
,
0.0
f
,
0.0
f
,
1.0
f
);
}
m_render_topo
->
overdrawDart
(
myMap
,
m_selected2
,
11
,
0.0
f
,
1.0
f
,
0.0
f
);
m_render_topo
->
overdrawDart
(
myMap
,
m_selected2
,
11
,
0.0
f
,
1.0
f
,
0.0
f
);
}
}
void
MyQT
::
cb_mousePress
(
int
button
,
int
x
,
int
y
)
void
MyQT
::
cb_mousePress
(
int
button
,
int
x
,
int
y
)
...
@@ -253,6 +272,17 @@ void MyQT::cb_mousePress(int button, int x, int y)
...
@@ -253,6 +272,17 @@ void MyQT::cb_mousePress(int button, int x, int y)
}
}
updateGL
();
updateGL
();
}
}
if
(
Control
())
{
Dart
d
=
m_render_topo
->
picking
(
myMap
,
x
,
y
);
// nb
if
(
button
==
Qt
::
LeftButton
)
{
if
(
d
==
Dart
::
nil
())
m_selecteds
.
clear
();
else
m_selecteds
.
push_back
(
d
);
}
}
}
}
void
MyQT
::
cb_keyPress
(
int
keycode
)
void
MyQT
::
cb_keyPress
(
int
keycode
)
...
...
Apps/Tuto/Modelling/tuto_oper2.h
View file @
7114af20
...
@@ -93,6 +93,7 @@ protected:
...
@@ -93,6 +93,7 @@ protected:
#endif
#endif
Dart
m_selected
;
Dart
m_selected
;
Dart
m_selected2
;
Dart
m_selected2
;
std
::
vector
<
Dart
>
m_selecteds
;
DartMarker
<
MAP
>
dm
;
DartMarker
<
MAP
>
dm
;
float
m_shift
;
float
m_shift
;
...
...
Apps/Tuto/Modelling/tuto_oper2.ui
View file @
7114af20
...
@@ -36,7 +36,16 @@
...
@@ -36,7 +36,16 @@
</size>
</size>
</property>
</property>
<layout
class=
"QGridLayout"
name=
"gridLayout"
>
<layout
class=
"QGridLayout"
name=
"gridLayout"
>
<property
name=
"margin"
>
<property
name=
"leftMargin"
>
<number>
2
</number>
</property>
<property
name=
"topMargin"
>
<number>
2
</number>
</property>
<property
name=
"rightMargin"
>
<number>
2
</number>
</property>
<property
name=
"bottomMargin"
>
<number>
2
</number>
<number>
2
</number>
</property>
</property>
<property
name=
"spacing"
>
<property
name=
"spacing"
>
...
@@ -99,6 +108,11 @@
...
@@ -99,6 +108,11 @@
<string>
deleteFace
</string>
<string>
deleteFace
</string>
</property>
</property>
</item>
</item>
<item>
<property
name=
"text"
>
<string>
splitSurface
</string>
</property>
</item>
</widget>
</widget>
</item>
</item>
<item>
<item>
...
...
Apps/Tuto/Modelling/tuto_oper3.cpp
View file @
7114af20
...
@@ -245,6 +245,24 @@ void MyQT::operation(int x)
...
@@ -245,6 +245,24 @@ void MyQT::operation(int x)
updateMap
();
updateMap
();
}
}
break
;
break
;
case
13
:
CGoGNout
<<
"split volume"
<<
CGoGNendl
;
if
(
!
m_selecteds
.
empty
())
{
myMap
.
splitVolume
(
m_selecteds
);
m_selecteds
.
clear
();
updateMap
();
}
break
;
case
14
:
CGoGNout
<<
"cut volume"
<<
CGoGNendl
;
if
(
!
m_selecteds
.
empty
())
{
myMap
.
cutVolume
(
m_selecteds
);
m_selecteds
.
clear
();
updateMap
();
}
break
;
default:
default:
break
;
break
;
}
}
...
@@ -459,12 +477,12 @@ void MyQT::cb_mousePress(int button, int x, int y)
...
@@ -459,12 +477,12 @@ void MyQT::cb_mousePress(int button, int x, int y)
{
{
if
(
button
==
Qt
::
LeftButton
)
if
(
button
==
Qt
::
LeftButton
)
{
{
Dart
d
=
m_render_topo_boundary
->
picking
(
myMap
,
x
,
y
,
true
);
m_selecteds
.
push_back
(
Dart
(
173
)
);
if
(
d
!=
Dart
::
nil
())
m_selecteds
.
push_back
(
Dart
(
186
));
{
m_selecteds
.
push_back
(
Dart
(
185
));
Dart
e
=
myMap
.
phi2
(
d
);
m_selecteds
.
push_back
(
Dart
(
171
)
);
std
::
cout
<<
"Dart "
<<
d
.
index
<<
" / phi2:"
<<
e
.
index
<<
std
::
endl
;
m_selecteds
.
push_back
(
Dart
(
170
))
;
}
m_selecteds
.
push_back
(
Dart
(
174
));
}
}
if
(
button
==
Qt
::
RightButton
)
if
(
button
==
Qt
::
RightButton
)
{
{
...
@@ -472,8 +490,6 @@ void MyQT::cb_mousePress(int button, int x, int y)
...
@@ -472,8 +490,6 @@ void MyQT::cb_mousePress(int button, int x, int y)
if
(
d
!=
Dart
::
nil
())
if
(
d
!=
Dart
::
nil
())
{
{
m_selecteds
.
push_back
(
d
);
m_selecteds
.
push_back
(
d
);
Dart
e
=
myMap
.
phi2
(
d
);
std
::
cout
<<
"Dart "
<<
d
.
index
<<
" / phi2:"
<<
e
.
index
<<
std
::
endl
;
}
}
}
}
...
...
Apps/Tuto/Modelling/tuto_oper3.ui
View file @
7114af20
...
@@ -155,6 +155,16 @@
...
@@ -155,6 +155,16 @@
<string>
deleteVolume
</string>
<string>
deleteVolume
</string>
</property>
</property>
</item>
</item>
<item>
<property
name=
"text"
>
<string>
splitVolume
</string>
</property>
</item>
<item>
<property
name=
"text"
>
<string>
cutVolume
</string>
</property>
</item>
</widget>
</widget>
</item>
</item>
<item
row=
"6"
column=
"0"
>
<item
row=
"6"
column=
"0"
>
...
...
CMakeLists.txt
View file @
7114af20
SCHNApps/Plugins/CMakeLists.txt
View file @
7114af20
...
@@ -15,3 +15,5 @@ ADD_SUBDIRECTORY(surface_distance)
...
@@ -15,3 +15,5 @@ ADD_SUBDIRECTORY(surface_distance)
ADD_SUBDIRECTORY
(
volume_import
)
ADD_SUBDIRECTORY
(
volume_import
)
#ADD_SUBDIRECTORY(volume_render)
#ADD_SUBDIRECTORY(volume_render)
ADD_SUBDIRECTORY
(
volumetric
)
SCHNApps/include/texture.h
View file @
7114af20
#ifndef _TEXTURE_H_
#ifndef _TEXTURE_H_
#define _TEXTURE_H_
#define _TEXTURE_H_
#include "Utils/gl_def.h"
#include <QSize>
namespace
CGoGN
namespace
CGoGN
{
{
...
...
SCHNApps/include/types.h
View file @
7114af20
...
@@ -39,6 +39,7 @@ class Camera;
...
@@ -39,6 +39,7 @@ class Camera;
class
MapHandlerGen
;
class
MapHandlerGen
;
class
CellSelectorGen
;
class
CellSelectorGen
;
struct
Texture
;
struct
Texture
;
class
ObjectHandlerGen
;
typedef
QMap
<
QString
,
Plugin
*>
PluginSet
;
typedef
QMap
<
QString
,
Plugin
*>
PluginSet
;
typedef
QMap
<
QString
,
View
*>
ViewSet
;
typedef
QMap
<
QString
,
View
*>
ViewSet
;
...
@@ -51,6 +52,8 @@ typedef QMap<QString, Utils::GLSLShader*> ShaderSet;
...
@@ -51,6 +52,8 @@ typedef QMap<QString, Utils::GLSLShader*> ShaderSet;
typedef
QMap
<
QString
,
Texture
*>
TextureSet
;
typedef
QMap
<
QString
,
Texture
*>
TextureSet
;
typedef
QMap
<
QString
,
ObjectHandlerGen
*>
ObjectSet
;
}
// namespace SCHNApps
}
// namespace SCHNApps
}
// namespace CGoGN
}
// namespace CGoGN
...
...
ThirdParty/build/.gitignore
deleted
100644 → 0
View file @
7576a3e9
# all build directory ignored !
*
ThirdParty/buildDebug/.gitignore
deleted
100644 → 0
View file @
7576a3e9
# all build directory ignored !
*
apps_cmake.txt
View file @
7114af20
...
@@ -69,6 +69,7 @@ SET (COMMON_LIBS
...
@@ -69,6 +69,7 @@ SET (COMMON_LIBS
${LIBXML2_LIBRARIES}
${LIBXML2_LIBRARIES}
${Boost_SYSTEM_LIBRARY}
${Boost_SYSTEM_LIBRARY}
${Boost_REGEX_LIBRARY}
${Boost_REGEX_LIBRARY}
tinyxml2
)
)
IF(WIN32)
IF(WIN32)
...
@@ -82,7 +83,6 @@ ELSE(WIN32)
...
@@ -82,7 +83,6 @@ ELSE(WIN32)
find_package(SuiteSparse REQUIRED)
find_package(SuiteSparse REQUIRED)
SET (COMMON_INCLUDES ${COMMON_INCLUDES} ${SUITESPARSE_INCLUDE_DIRS})
SET (COMMON_INCLUDES ${COMMON_INCLUDES} ${SUITESPARSE_INCLUDE_DIRS})
SET (COMMON_LIBS ${SUITESPARSE_LIBRARIES} lapack blas ${COMMON_LIBS} pthread )
SET (COMMON_LIBS ${SUITESPARSE_LIBRARIES} lapack blas ${COMMON_LIBS} pthread )
ENDIF(WIN32)
ENDIF(WIN32)
#optionnal libs
#optionnal libs
...
...
build/.gitignore
deleted
100644 → 0
View file @
7576a3e9
#ignore all build directory
*
buildDebug/.gitignore
deleted
100644 → 0
View file @
7576a3e9
#ignore all build directory
*
include/Algo/Export/export.hpp
View file @
7114af20
...
@@ -998,7 +998,7 @@ bool exportChoupi(typename PFP::MAP& map, const VertexAttribute<typename PFP::VE
...
@@ -998,7 +998,7 @@ bool exportChoupi(typename PFP::MAP& map, const VertexAttribute<typename PFP::VE
return
false
;
return
false
;
}
}
out
<<
map
.
template
getNbOrbits
<
VERTEX
>
()
<<
" "
<<
map
.
template
getNbOrbits
<
EDGE
>
(
)
<<
std
::
endl
;
out
<<
Algo
::
Topo
::
getNbOrbits
<
VERTEX
>
(
map
)
<<
" "
<<
Algo
::
Topo
::
getNbOrbits
<
EDGE
>
(
map
)
<<
std
::
endl
;
TraversorV
<
MAP
>
travV
(
map
);
TraversorV
<
MAP
>
travV
(
map
);
for
(
Dart
dit
=
travV
.
begin
()
;
dit
!=
travV
.
end
()
;
dit
=
travV
.
next
())
for
(
Dart
dit
=
travV
.
begin
()
;
dit
!=
travV
.
end
()
;
dit
=
travV
.
next
())
...
...
include/Algo/Export/exportVol.h
View file @
7114af20
...
@@ -125,6 +125,9 @@ template <typename PFP>
...
@@ -125,6 +125,9 @@ template <typename PFP>
bool
exportTetmesh
(
typename
PFP
::
MAP
&
map
,
const
VertexAttribute
<
typename
PFP
::
VEC3
,
typename
PFP
::
MAP
>&
position
,
const
char
*
filename
);
bool
exportTetmesh
(
typename
PFP
::
MAP
&
map
,
const
VertexAttribute
<
typename
PFP
::
VEC3
,
typename
PFP
::
MAP
>&
position
,
const
char
*
filename
);
template
<
typename
PFP
>
bool
exportBoundaryOFF
(
typename
PFP
::
MAP
&
map
,
const
VertexAttribute
<
typename
PFP
::
VEC3
,
typename
PFP
::
MAP
>&
position
,
const
char
*
filename
);
}
// namespace Export
}
// namespace Export
}
// namespace Volume
}
// namespace Volume
...
...
include/Algo/Export/exportVol.hpp
View file @
7114af20
...
@@ -853,6 +853,81 @@ bool exportMesh(typename PFP::MAP& map, const VertexAttribute<typename PFP::VEC3
...
@@ -853,6 +853,81 @@ bool exportMesh(typename PFP::MAP& map, const VertexAttribute<typename PFP::VEC3
}
}
}
}
template
<
typename
PFP
>
bool
exportBoundaryOFF
(
typename
PFP
::
MAP
&
map
,
const
VertexAttribute
<
typename
PFP
::
VEC3
,
typename
PFP
::
MAP
>&
position
,
const
char
*
filename
)
{
typedef
typename
PFP
::
MAP
MAP
;
typedef
typename
PFP
::
VEC3
VEC3
;
std
::
ofstream
out
(
filename
,
std
::
ios
::
out
)
;
if
(
!
out
.
good
())
{
CGoGNerr
<<
"Unable to open file "
<<
CGoGNendl
;
return
false
;
}
unsigned
int
nbDarts
=
map
.
getNbDarts
()
;
std
::
vector
<
unsigned
int
>
facesSize
;
std
::
vector
<
std
::
vector
<
unsigned
int
>
>
facesIdx
;
facesSize
.
reserve
(
nbDarts
/
3
)
;
facesIdx
.
reserve
(
nbDarts
/
3
)
;
std
::
map
<
unsigned
int
,
unsigned
int
>
vIndex
;
unsigned
int
vCpt
=
0
;
std
::
vector
<
unsigned
int
>
vertices
;
vertices
.
reserve
(
nbDarts
/
6
)
;
CellMarker
<
typename
PFP
::
MAP
,
VERTEX
>
markV
(
map
)
;
TraversorF
<
MAP
>
t
(
map
)
;
for
(
Dart
d
=
t
.
begin
();
d
!=
t
.
end
();
d
=
t
.
next
())
{
if
(
map
.
isBoundaryFace
(
d
))
{
Dart
db
=
d
;
if
(
!
map
.
template
isBoundaryMarked
<
3
>
(
db
))
db
=
map
.
phi3
(
db
);
std
::
vector
<
unsigned
int
>
fidx
;
fidx
.
reserve
(
8
)
;
unsigned
int
degree
=
0
;
Traversor2FV
<
typename
PFP
::
MAP
>
tfv
(
map
,
db
)
;
for
(
Dart
it
=
tfv
.
begin
();
it
!=
tfv
.
end
();
it
=
tfv
.
next
())
{
++
degree
;
unsigned
int
vNum
=
map
.
template
getEmbedding
<
VERTEX
>
(
it
)
;
if
(
!
markV
.
isMarked
(
it
))
{
markV
.
mark
(
it
)
;
vIndex
[
vNum
]
=
vCpt
++
;
vertices
.
push_back
(
vNum
)
;
}
fidx
.
push_back
(
vIndex
[
vNum
])
;
}
facesSize
.
push_back
(
degree
)
;
facesIdx
.
push_back
(
fidx
)
;
}
}
out
<<
"OFF"
<<
std
::
endl
;
out
<<
vertices
.
size
()
<<
" "
<<
facesSize
.
size
()
<<
" "
<<
0
<<
std
::
endl
;
for
(
unsigned
int
i
=
0
;
i
<
vertices
.
size
();
++
i
)
{
const
VEC3
&
v
=
position
[
vertices
[
i
]]
;
out
<<
v
[
0
]
<<
" "
<<
v
[
1
]
<<
" "
<<
v
[
2
]
<<
std
::
endl
;
}
for
(
unsigned
int
i
=
0
;
i
<
facesSize
.
size
();
++
i
)
{
out
<<
facesSize
[
i
]
;
for
(
unsigned
int
j
=
0
;
j
<
facesIdx
[
i
].
size
();
++
j
)
out
<<
" "
<<
facesIdx
[
i
][
j
]
;
out
<<
std
::
endl
;
}
out
.
close
()
;
return
true
;
}
}
// namespace Export
}
// namespace Export
}
// namespace Volume
}
// namespace Volume
...
...
include/Algo/ImplicitHierarchicalMesh/ihm3.h
View file @
7114af20
...
@@ -57,9 +57,9 @@ public:
...
@@ -57,9 +57,9 @@ public:
unsigned
int
m_edgeIdCount
;
unsigned
int
m_edgeIdCount
;
unsigned
int
m_faceIdCount
;
unsigned
int
m_faceIdCount
;
DartAttribute
<
unsigned
int
,
ImplicitHierarchical
Map3
>
m_dartLevel
;
DartAttribute
<
unsigned
int
,
Embedded
Map3
>
m_dartLevel
;
DartAttribute
<
unsigned
int
,
ImplicitHierarchical
Map3
>
m_edgeId
;
DartAttribute
<
unsigned
int
,
Embedded
Map3
>
m_edgeId
;
DartAttribute
<
unsigned
int
,
ImplicitHierarchical
Map3
>
m_faceId
;
DartAttribute
<
unsigned
int
,
Embedded
Map3
>
m_faceId
;
AttributeMultiVector
<
unsigned
int
>*
m_nextLevelCell
[
NB_ORBITS
]
;
AttributeMultiVector
<
unsigned
int
>*
m_nextLevelCell
[
NB_ORBITS
]
;
...
@@ -100,15 +100,15 @@ public:
...
@@ -100,15 +100,15 @@ public:
/*!
/*!
*
*
*/
*/
template
<
typename
T
,
unsigned
int
ORBIT
>
//
template <typename T, unsigned int ORBIT>
AttributeHandler_IHM
<
T
,
ORBIT
>
addAttribute
(
const
std
::
string
&
nameAttr
)
;
//
AttributeHandler_IHM<T, ORBIT> addAttribute(const std::string& nameAttr) ;
//!
//!
/*!
/*!
*
*
*/
*/
template
<
typename
T
,
unsigned
int
ORBIT
>
//
template <typename T, unsigned int ORBIT>
AttributeHandler_IHM
<
T
,
ORBIT
>
getAttribute
(
const
std
::
string
&
nameAttr
)
;
//
AttributeHandler_IHM<T, ORBIT> getAttribute(const std::string& nameAttr) ;
//@}
//@}
/*! @name Basic Topological Operators
/*! @name Basic Topological Operators
...
@@ -419,8 +419,8 @@ public:
...
@@ -419,8 +419,8 @@ public:
void
foreach_dart_of_cc
(
Dart
d
,
FUNC
&
f
)
const
;
void
foreach_dart_of_cc
(
Dart
d
,
FUNC
&
f
)
const
;
//@}
//@}
template
<
unsigned
int
ORBIT
>
//
template <unsigned int ORBIT>
unsigned
int
getEmbedding
(
Cell
<
ORBIT
>
c
)
const
;
//
unsigned int getEmbedding(Cell<ORBIT> c) const;
}
;
}
;
template
<
typename
T
,
unsigned
int
ORBIT
>
template
<
typename
T
,
unsigned
int
ORBIT
>
...
...
include/Algo/ImplicitHierarchicalMesh/ihm3.hpp
View file @
7114af20
...
@@ -37,7 +37,7 @@ namespace IHM
...
@@ -37,7 +37,7 @@ namespace IHM
/***************************************************
/***************************************************
* ATTRIBUTES MANAGEMENT *
* ATTRIBUTES MANAGEMENT *
***************************************************/
***************************************************/
/*
template <typename T, unsigned int ORBIT>
template <typename T, unsigned int ORBIT>
AttributeHandler_IHM<T, ORBIT> ImplicitHierarchicalMap3::addAttribute(const std::string& nameAttr)
AttributeHandler_IHM<T, ORBIT> ImplicitHierarchicalMap3::addAttribute(const std::string& nameAttr)
{
{
...
@@ -65,13 +65,13 @@ AttributeHandler_IHM<T, ORBIT> ImplicitHierarchicalMap3::getAttribute(const std:
...
@@ -65,13 +65,13 @@ AttributeHandler_IHM<T, ORBIT> ImplicitHierarchicalMap3::getAttribute(const std:
AttributeHandler<T, ORBIT, ImplicitHierarchicalMap3> h = Map3::getAttribute<T, ORBIT, ImplicitHierarchicalMap3>(nameAttr) ;
AttributeHandler<T, ORBIT, ImplicitHierarchicalMap3> h = Map3::getAttribute<T, ORBIT, ImplicitHierarchicalMap3>(nameAttr) ;
return AttributeHandler_IHM<T, ORBIT>(this, h.getDataVector()) ;
return AttributeHandler_IHM<T, ORBIT>(this, h.getDataVector()) ;
}
}
*/
inline
void
ImplicitHierarchicalMap3
::
update_topo_shortcuts
()
inline
void
ImplicitHierarchicalMap3
::
update_topo_shortcuts
()
{
{
// Map3::update_topo_shortcuts();
// Map3::update_topo_shortcuts();
m_dartLevel
=
Map3
::
getAttribute
<
unsigned
int
,
DART
,
ImplicitHierarchical
Map3
>
(
"dartLevel"
)
;
m_dartLevel
=
Map3
::
getAttribute
<
unsigned
int
,
DART
,
Embedded
Map3
>
(
"dartLevel"
)
;
m_faceId
=
Map3
::
getAttribute
<
unsigned
int
,
DART
,
ImplicitHierarchical
Map3
>
(
"faceId"
)
;
m_faceId
=
Map3
::
getAttribute
<
unsigned
int
,
DART
,
Embedded
Map3
>
(
"faceId"
)
;
m_edgeId
=
Map3
::
getAttribute
<
unsigned
int
,
DART
,
ImplicitHierarchical
Map3
>
(
"edgeId"
)
;
m_edgeId
=
Map3
::
getAttribute
<
unsigned
int
,
DART
,
Embedded
Map3
>
(
"edgeId"
)
;
//AttributeContainer& cont = m_attribs[DART] ;
//AttributeContainer& cont = m_attribs[DART] ;
//m_nextLevelCell = cont.getDataVector<unsigned int>(cont.getAttributeIndex("nextLevelCell")) ;
//m_nextLevelCell = cont.getDataVector<unsigned int>(cont.getAttributeIndex("nextLevelCell")) ;
...
@@ -638,6 +638,7 @@ inline unsigned int ImplicitHierarchicalMap3::edgeLevel(Dart d)
...
@@ -638,6 +638,7 @@ inline unsigned int ImplicitHierarchicalMap3::edgeLevel(Dart d)
return
r
;
return
r
;
}
}
/*
template <unsigned int ORBIT>
template <unsigned int ORBIT>
inline unsigned int ImplicitHierarchicalMap3::getEmbedding(Cell<ORBIT> c) const
inline unsigned int ImplicitHierarchicalMap3::getEmbedding(Cell<ORBIT> c) const
{
{
...
@@ -655,7 +656,7 @@ inline unsigned int ImplicitHierarchicalMap3::getEmbedding(Cell<ORBIT> c) const
...
@@ -655,7 +656,7 @@ inline unsigned int ImplicitHierarchicalMap3::getEmbedding(Cell<ORBIT> c) const
}
}
return index;