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
CGoGN
CGoGN
Commits
d12298e1
Commit
d12298e1
authored
Feb 06, 2015
by
Sylvain Thery
Browse files
Options
Browse Files
Download
Plain Diff
Merge icube-forge.unistra.fr:cgogn/cgogn into develop
Conflicts: README.md
parents
744f4d3f
7114af20
Changes
73
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
73 changed files
with
5019 additions
and
1300 deletions
+5019
-1300
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
README.md
README.md
+3
-102
SCHNApps/Plugins/CMakeLists.txt
SCHNApps/Plugins/CMakeLists.txt
+3
-0
SCHNApps/Plugins/surface_distance/CMakeLists.txt
SCHNApps/Plugins/surface_distance/CMakeLists.txt
+32
-0
SCHNApps/Plugins/surface_distance/forms/dialog_computeDistance.ui
.../Plugins/surface_distance/forms/dialog_computeDistance.ui
+237
-0
SCHNApps/Plugins/surface_distance/include/dialog_computeDistance.h
...Plugins/surface_distance/include/dialog_computeDistance.h
+40
-0
SCHNApps/Plugins/surface_distance/include/surface_distance.h
SCHNApps/Plugins/surface_distance/include/surface_distance.h
+54
-0
SCHNApps/Plugins/surface_distance/src/dialog_computeDistance.cpp
...s/Plugins/surface_distance/src/dialog_computeDistance.cpp
+181
-0
SCHNApps/Plugins/surface_distance/src/surface_distance.cpp
SCHNApps/Plugins/surface_distance/src/surface_distance.cpp
+145
-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/Filtering/average_normals.h
include/Algo/Filtering/average_normals.h
+4
-3
include/Algo/Geometry/distances.h
include/Algo/Geometry/distances.h
+7
-3
include/Algo/Geometry/distances.hpp
include/Algo/Geometry/distances.hpp
+3
-3
include/Algo/Geometry/voronoiDiagrams.hpp
include/Algo/Geometry/voronoiDiagrams.hpp
+3
-3
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/Algo/Selection/collector.h
include/Algo/Selection/collector.h
+9
-5
include/Algo/Selection/collector.hpp
include/Algo/Selection/collector.hpp
+16
-23
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 @
d12298e1
...
...
@@ -168,7 +168,8 @@ void MCMesh::updateRender()
void
MCMesh
::
fromFile
(
char
*
fname
)
{
myImg
=
new
SAlgo
::
MC
::
Image
<
DATATYPE
>
();
myImg
->
loadInrgz
(
fname
);
//myImg->loadInrgz(fname);
myImg
->
loadVox
(
fname
);
CGoGNout
<<
"Image chargee"
<<
CGoGNendl
;
CGoGNout
<<
myImg
->
getWidthX
()
<<
"x"
<<
myImg
->
getWidthY
()
<<
"x"
<<
myImg
->
getWidthZ
()
<<
"voxels"
<<
CGoGNendl
;
}
...
...
Apps/Examples/viewer.cpp
View file @
d12298e1
...
...
@@ -31,7 +31,7 @@ Viewer::Viewer() :
m_drawFaces
(
true
),
m_drawNormals
(
false
),
m_drawTopo
(
false
),
m_drawBoundaryTopo
(
tru
e
),
m_drawBoundaryTopo
(
fals
e
),
m_render
(
NULL
),
m_phongShader
(
NULL
),
m_flatShader
(
NULL
),
...
...
@@ -87,7 +87,7 @@ void Viewer::cb_initGL()
m_render
=
new
Algo
::
Render
::
GL2
::
MapRender
()
;
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_normalVBO
=
new
Utils
::
VBO
()
;
...
...
@@ -552,11 +552,14 @@ void Viewer::importMesh(std::string& filename)
// 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
::
LINES
)
;
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
)
;
normalBaseSize
=
bb
.
diagSize
()
/
100.0
f
;
...
...
Apps/Examples/volumeExplorer.cpp
View file @
d12298e1
...
...
@@ -29,8 +29,10 @@
#include "Algo/Modelisation/polyhedron.h"
#include "Algo/Import/import.h"
#include "Algo/Geometry/volume.h"
#include "Algo/Modelisation/tetrahedralization.h"
#include "Algo/Geometry/area.h"
#include "Utils/chrono.h"
#include "Algo/Export/exportVol.h"
...
...
@@ -172,12 +174,14 @@ void MyQT::cb_Open()
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
);
// color[d] = VEC3(v,0,0);
// if (v>maxV)
// maxV=v;
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))
// {
...
...
@@ -399,7 +403,7 @@ int main(int argc, char **argv)
{
*/
if
(
extension
==
std
::
string
(
".map"
))
if
(
extension
==
std
::
string
(
".map
bin
"
))
{
myMap
.
loadMapBin
(
filename
);
position
=
myMap
.
getAttribute
<
VEC3
,
VERTEX
,
MAP
>
(
"position"
)
;
...
...
@@ -421,6 +425,17 @@ int main(int argc, char **argv)
float
maxV
=
0.0
f
;
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);
color[d] = VEC3(v,0,0);
if (v>maxV)
...
...
@@ -435,6 +450,7 @@ int main(int argc, char **argv)
{
color[i][0] /= maxV;
color[i][2] = 1.0f - color[i][0];
*/
}
}
...
...
@@ -460,6 +476,9 @@ int main(int argc, char **argv)
// Algo::Volume::Export::exportNAS<PFP>(myMap,position,"/tmp/test1.nas");
// Algo::Volume::Export::exportVTU<PFP>(myMap,position,"/tmp/test3.vtu");
}
myMap
.
check
();
// un peu d'interface
QApplication
app
(
argc
,
argv
);
MyQT
sqt
;
...
...
Apps/Tuto/Modelling/tuto_oper2.cpp
View file @
d12298e1
...
...
@@ -157,6 +157,17 @@ void MyQT::operation(int x)
m_selected2
=
NIL
;
}
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:
break
;
...
...
@@ -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
);
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
);
}
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
();
}
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
)
...
...
Apps/Tuto/Modelling/tuto_oper2.h
View file @
d12298e1
...
...
@@ -93,6 +93,7 @@ protected:
#endif
Dart
m_selected
;
Dart
m_selected2
;
std
::
vector
<
Dart
>
m_selecteds
;
DartMarker
<
MAP
>
dm
;
float
m_shift
;
...
...
Apps/Tuto/Modelling/tuto_oper2.ui
View file @
d12298e1
...
...
@@ -36,7 +36,16 @@
</size>
</property>
<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>
</property>
<property
name=
"spacing"
>
...
...
@@ -99,6 +108,11 @@
<string>
deleteFace
</string>
</property>
</item>
<item>
<property
name=
"text"
>
<string>
splitSurface
</string>
</property>
</item>
</widget>
</item>
<item>
...
...
Apps/Tuto/Modelling/tuto_oper3.cpp
View file @
d12298e1
...
...
@@ -245,6 +245,24 @@ void MyQT::operation(int x)
updateMap
();
}
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:
break
;
}
...
...
@@ -459,12 +477,12 @@ void MyQT::cb_mousePress(int button, int x, int y)
{
if
(
button
==
Qt
::
LeftButton
)
{
Dart
d
=
m_render_topo_boundary
->
picking
(
myMap
,
x
,
y
,
true
);
if
(
d
!=
Dart
::
nil
(
))
{
Dart
e
=
myMap
.
phi2
(
d
);
std
::
cout
<<
"Dart "
<<
d
.
index
<<
" / phi2:"
<<
e
.
index
<<
std
::
endl
;
}
m_selecteds
.
push_back
(
Dart
(
173
)
);
m_selecteds
.
push_back
(
Dart
(
186
))
;
m_selecteds
.
push_back
(
Dart
(
185
));
m_selecteds
.
push_back
(
Dart
(
171
)
);
m_selecteds
.
push_back
(
Dart
(
170
))
;
m_selecteds
.
push_back
(
Dart
(
174
));
}
if
(
button
==
Qt
::
RightButton
)
{
...
...
@@ -472,8 +490,6 @@ void MyQT::cb_mousePress(int button, int x, int y)
if
(
d
!=
Dart
::
nil
())
{
m_selecteds
.
push_back
(
d
);
Dart
e
=
myMap
.
phi2
(
d
);
std
::
cout
<<
"Dart "
<<
d
.
index
<<
" / phi2:"
<<
e
.
index
<<
std
::
endl
;
}
}
...
...
@@ -836,7 +852,7 @@ void MyQT::importMesh(std::string& filename)
std
::
cerr
<<
"could not import "
<<
filename
<<
std
::
endl
;
return
;
}
else
else
position
=
myMap
.
getAttribute
<
VEC3
,
VERTEX
,
MAP
>
(
attrNames
[
0
])
;
m_selected
=
NIL
;
...
...
Apps/Tuto/Modelling/tuto_oper3.ui
View file @
d12298e1
...
...
@@ -155,6 +155,16 @@
<string>
deleteVolume
</string>
</property>
</item>
<item>
<property
name=
"text"
>
<string>
splitVolume
</string>
</property>
</item>
<item>
<property
name=
"text"
>
<string>
cutVolume
</string>
</property>
</item>
</widget>
</item>
<item
row=
"6"
column=
"0"
>
...
...
CMakeLists.txt
View file @
d12298e1
...
...
@@ -135,7 +135,7 @@ SET (CGoGN_EXT_INCLUDES
# define libs for external libs
SET
(
CGoGN_EXT_LIBS
nl
nl
${
OPENGL_LIBRARY
}
${
GLEW_LIBRARIES
}
${
ZLIB_LIBRARIES
}
...
...
README.md
View file @
d12298e1
French version bellow
Linux dependencies
==================
install the following packages:
cmake cmake-curses-gui cmake-qt-gui libXi-dev libXmu-dev libglew-dev
libboost-all-dev
zlib1g-dev libqt4-dev qt4-dev-tools uuid-dev libgsl0-dev libsuitesparse-dev libqglviewer-dev
cmake cmake-curses-gui cmake-qt-gui libXi-dev libXmu-dev libglew-dev zlib1g-dev libqt4-dev qt4-dev-tools uuid-dev libgsl0-dev libsuitesparse-dev libqglviewer-dev
Mac Dependencies
=================
...
...
@@ -13,7 +12,7 @@ To compile CGoGN on MAC
*
install Qt4 (4.8) and QtCreator
*
install (or build) libQGLViewer
*
install cmake (native or with homebrew)
*
install with homebrew : lzlib, glew,
boost,
suite-sparse
*
install with homebrew : lzlib, glew, suite-sparse
To install suite-sparse package, you must first
add the homebrew/science repository with the following command :
...
...
@@ -70,6 +69,7 @@ To compile CGoGN
* WITH_QT -> to minimize dependencies and compilation time
* WITH_GLEWMX -> to use GLEWMX (for VRJuggler users)
*
we can then compile SCHNApps and the provided plugins :
```
...
...
@@ -91,102 +91,3 @@ Binaries are generated in bin/Release and bin/Debug
Examples of data (trianbgz, off, etc.. files) are available at the following address:
https://iggservis.u-strasbg.fr/Data/data.zip
FRENCH VERSION
==============
Dpendences Linux
=================
installer les paquets suivants:
cmake cmake-curses-gui cmake-qt-gui libXi-dev libXmu-dev libglew-dev libboost-all-dev zlib1g-dev libqt4-dev qt4-dev-tools uuid-dev libgsl0-dev libsuitesparse-dev libqglviewer-dev
Mac Dependencies
=================
To compile CGoGN on MAC
*
installer XCode et les command line tools.
*
installer Qt4 (4.8) et QtCreator
*
installer (ou compiler) libQGLViewer
*
installer cmake (native ou avec homebrew)
*
installer with avec homebrew : lzlib, glew, boost, suite-sparse
Pour pouvoir installer le paquet suite-sparse, il faut avoir
prlablement ajout le dpt homebrew/science grce la commande suivante :
brew tap homebrew/science
Pour le reste la compilation se passe de la meme manire
Pour compiler CGoGN
===================
*
on compile tout d'abord les bibliothques third-party :
```
cd CGoGN/ThirdParty/build
cmake ..
make (-j x si vous avez x cores)
make install
```
La mme chose en debug:
```
cd ../buildDebug
cmake ..
make (-j x si vous avez x cores)
make install
```
On peut fixer certaines option pour ne pas tout compiler:
*
WITH_ASSIMP -> compile et utilise la librairie Assimp
*
WITH_ZINRI -> compile et utilise la librairie Zinri
*
WITH_PYTHONQT -> pour SCHNApps
*
ensuite on compile CGoGN :
```
cd CGoGN/build
cmake ..
make (-j x si vous avez x cores)
```
Et en Debug avec:
```
cd ../buildDebug
cmake ..
make (-j x si vous avez x cores)
```
Certaines options sont disponibles :
* BUILD_SHARED_LIBS -Q experimental !
* ONELIB -> compilation en une seule lib (libcgogn.a) au lieu de 4
* WITH_ASSIMP -> utilise Assimp (auto set par third party compil)
* WITH_ZINRI -> utilise Zinri (auto set par third party compil)
* WITH_QT -> minimize les dependence si pas besoin de Qt (VRJuggler)
* WITH_GLEWMX -> pour utiliser GLEWMX a la place de GELW (pour VRJuggler)
Les librairies sont generees dans lib/Release et lib/Debug
Les binaires sont generes dans bin/Release et bin/Debug
*
on peut ensuite compiler SCHNApps ainsi que les plugins fournis :
```
cd CGoGN/SCHNApps/build
cmake ..
make (-j x si vous avez x cores)
```
Et en Debug avec:
```
cd ../buildDebug
cmake ..
make (-j x si vous avez x cores)
```
Des exemples de donnes (fichiers trianbgz, off, etc..) sont accessible l'adresse suivante:
https://iggservis.u-strasbg.fr/Data/data.zip
SCHNApps/Plugins/CMakeLists.txt
View file @
d12298e1
...
...
@@ -11,6 +11,9 @@ ADD_SUBDIRECTORY(surface_selection)
ADD_SUBDIRECTORY
(
surface_deformation
)
ADD_SUBDIRECTORY
(
surface_modelisation
)
#ADD_SUBDIRECTORY(surface_tilings)
ADD_SUBDIRECTORY
(
surface_distance
)
ADD_SUBDIRECTORY
(
volume_import
)
#ADD_SUBDIRECTORY(volume_render)
ADD_SUBDIRECTORY
(
volumetric
)
SCHNApps/Plugins/surface_distance/CMakeLists.txt
0 → 100644
View file @
d12298e1
cmake_minimum_required
(
VERSION 2.8
)
SET
(
PLUGIN_NAME Surface_Distance
)
SET
(
PLUGIN_ROOT_DIR
${
SCHNApps_ROOT_DIR
}
/Plugins/surface_distance
)
INCLUDE_DIRECTORIES
(
${
PLUGIN_ROOT_DIR
}
/include
${
CMAKE_CURRENT_BINARY_DIR
}
)
file
(
GLOB_RECURSE
PLUGIN_FILES
${
PLUGIN_ROOT_DIR
}
/src/*.cpp
${
PLUGIN_ROOT_DIR
}
/include/*.h
${
PLUGIN_ROOT_DIR
}
/include/*.hpp
)
file
(
GLOB_RECURSE
PLUGIN_UI_FILES
${
PLUGIN_ROOT_DIR
}
/forms/*.ui
)
SET
(
PLUGIN_QOBJECT_FILES
${
PLUGIN_ROOT_DIR
}
/include/surface_distance.h
${
PLUGIN_ROOT_DIR
}
/include/dialog_computeDistance.h
)
include
(
${
SCHNApps_ROOT_DIR
}
/Plugins/plugins_cmake.txt
)
SCHNApps/Plugins/surface_distance/forms/dialog_computeDistance.ui
0 → 100644
View file @
d12298e1
<?xml version="1.0" encoding="UTF-8"?>
<ui
version=
"4.0"
>
<class>
Dialog_ComputeDistance
</class>
<widget
class=
"QDialog"
name=
"Dialog_ComputeDistance"
>
<property
name=
"geometry"
>
<rect>
<x>
0
</x>
<y>
0
</y>
<width>
607
</width>
<height>
359
</height>
</rect>
</property>
<property
name=
"windowTitle"
>
<string>
Compute Distance
</string>
</property>
<layout
class=
"QVBoxLayout"
name=
"verticalLayout_5"
>
<item>
<layout
class=
"QHBoxLayout"
name=
"horizontalLayout_8"
>
<item>
<layout
class=
"QVBoxLayout"
name=
"verticalLayout_3"
>
<item>
<widget
class=
"QListWidget"
name=
"list_maps_1"
/>
</item>
<item>
<layout
class=
"QHBoxLayout"
name=
"horizontalLayout_2"
>
<item>
<widget
class=
"QLabel"
name=
"label_2"
>
<property
name=
"text"
>
<string>
Position attribute :
</string>
</property>
</widget>
</item>
<item>
<widget
class=
"QComboBox"
name=
"combo_positionAttribute_1"
>
<property
name=
"sizePolicy"
>
<sizepolicy
hsizetype=
"Preferred"
vsizetype=
"Fixed"
>
<horstretch>
0
</horstretch>
<verstretch>
0
</verstretch>
</sizepolicy>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget
class=
"QGroupBox"
name=
"groupBox"
>
<property
name=
"title"
>
<string>
Distance attribute
</string>
</property>
<layout
class=
"QVBoxLayout"
name=
"verticalLayout"
>
<item>
<layout
class=
"QHBoxLayout"
name=
"horizontalLayout"
>
<item>
<widget
class=
"QLabel"
name=
"label_3"
>
<property
name=
"text"
>
<string>
Existing attribute :
</string>
</property>
</widget>
</item>
<item>
<widget
class=
"QComboBox"
name=
"combo_distanceAttribute_1"
>
<property
name=
"sizePolicy"
>
<sizepolicy
hsizetype=
"Expanding"
vsizetype=
"Fixed"
>
<horstretch>
0
</horstretch>
<verstretch>
0
</verstretch>
</sizepolicy>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout
class=
"QHBoxLayout"
name=
"horizontalLayout_5"
>
<item>
<widget
class=
"QLabel"
name=
"label"
>
<property
name=
"text"
>
<string>
New attribute :
</string>
</property>
</widget>
</item>
<item>
<widget
class=
"QLineEdit"
name=
"distanceAttributeName_1"
/>
</item>
</layout>
</item>
</layout>
</widget>
</item>
</layout>
</item>
<item>
<layout
class=
"QVBoxLayout"
name=
"verticalLayout_4"
>
<item>
<widget
class=
"QListWidget"
name=
"list_maps_2"
/>
</item>
<item>
<layout
class=
"QHBoxLayout"
name=
"horizontalLayout_4"
>
<item>
<widget
class=
"QLabel"
name=
"label_4"
>
<property
name=
"text"
>
<string>
Position attribute :
</string>
</property>
</widget>
</item>
<item>
<widget
class=
"QComboBox"
name=
"combo_positionAttribute_2"
>
<property
name=
"sizePolicy"
>
<sizepolicy
hsizetype=
"Preferred"
vsizetype=
"Fixed"
>
<horstretch>
0
</horstretch>
<verstretch>
0
</verstretch>
</sizepolicy>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget
class=
"QGroupBox"
name=
"groupBox_2"
>
<property
name=
"title"
>
<string>
Distance attribute
</string>
</property>
<layout
class=
"QVBoxLayout"
name=
"verticalLayout_2"
>
<item>
<layout
class=
"QHBoxLayout"
name=
"horizontalLayout_6"
>
<item>
<widget
class=
"QLabel"
name=
"label_5"
>