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
9584150d
Commit
9584150d
authored
Apr 21, 2013
by
Lionel Untereiner
Browse files
Merge cgogn.unistra.fr:~untereiner/CGoGN
parents
ce12a6a6
b5d8570a
Changes
32
Hide whitespace changes
Inline
Side-by-side
Apps/Examples/viewer.cpp
View file @
9584150d
...
...
@@ -31,6 +31,7 @@ Viewer::Viewer() :
m_drawFaces
(
true
),
m_drawNormals
(
false
),
m_drawTopo
(
false
),
m_drawBoundaryTopo
(
true
),
m_render
(
NULL
),
m_phongShader
(
NULL
),
m_flatShader
(
NULL
),
...
...
@@ -78,8 +79,6 @@ void Viewer::cb_initGL()
{
Utils
::
GLSLShader
::
setCurrentOGLVersion
(
2
)
;
setFocal
(
5.0
f
)
;
m_render
=
new
Algo
::
Render
::
GL2
::
MapRender
()
;
m_topoRender
=
new
Algo
::
Render
::
GL2
::
TopoRender
()
;
...
...
@@ -109,7 +108,7 @@ void Viewer::cb_initGL()
m_simpleColorShader
=
new
Utils
::
ShaderSimpleColor
()
;
m_simpleColorShader
->
setAttributePosition
(
m_positionVBO
)
;
Geom
::
Vec4f
c
(
0.
1
f
,
0.
1
f
,
0.
1
f
,
1.0
f
)
;
Geom
::
Vec4f
c
(
0.
0
f
,
0.
0
f
,
0.
0
f
,
1.0
f
)
;
m_simpleColorShader
->
setColor
(
c
)
;
m_pointSprite
=
new
Utils
::
PointSprite
()
;
...
...
@@ -231,7 +230,7 @@ void Viewer::importMesh(std::string& filename)
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_topoRender
->
updateData
<
PFP
>
(
myMap
,
position
,
0.85
f
,
0.85
f
,
m_drawBoundaryTopo
)
;
bb
=
Algo
::
Geometry
::
computeBoundingBox
<
PFP
>
(
myMap
,
position
)
;
normalBaseSize
=
bb
.
diagSize
()
/
100.0
f
;
...
...
@@ -294,6 +293,17 @@ void Viewer::slot_drawEdges(bool b)
void
Viewer
::
slot_drawFaces
(
bool
b
)
{
m_drawFaces
=
b
;
if
(
b
)
{
Geom
::
Vec4f
c
(
0.0
f
,
0.0
f
,
0.0
f
,
1.0
f
)
;
m_simpleColorShader
->
setColor
(
c
)
;
}
else
{
Geom
::
Vec4f
c
(
0.9
f
,
0.9
f
,
0.1
f
,
1.0
f
)
;
m_simpleColorShader
->
setColor
(
c
)
;
}
updateGL
()
;
}
...
...
Apps/Examples/viewer.h
View file @
9584150d
...
...
@@ -24,7 +24,8 @@
#include
<iostream>
#include
"Utils/Qt/qtSimple.h"
//#include "Utils/Qt/qtSimple.h"
#include
"Utils/Qt/qtQGLV.h"
#include
"ui_viewer.h"
#include
"Utils/Qt/qtui.h"
...
...
@@ -65,7 +66,8 @@ struct PFP: public PFP_STANDARD
typedef
PFP
::
MAP
MAP
;
typedef
PFP
::
VEC3
VEC3
;
class
Viewer
:
public
Utils
::
QT
::
SimpleQT
//class Viewer : public Utils::QT::SimpleQT
class
Viewer
:
public
Utils
::
QT
::
SimpleQGLV
{
Q_OBJECT
...
...
@@ -96,6 +98,7 @@ public:
bool
m_drawFaces
;
bool
m_drawNormals
;
bool
m_drawTopo
;
bool
m_drawBoundaryTopo
;
VertexAttribute
<
VEC3
>
position
;
VertexAttribute
<
VEC3
>
normal
;
...
...
Apps/Tuto/tuto_oper2.cpp
View file @
9584150d
...
...
@@ -357,8 +357,10 @@ void MyQT::cb_Open()
void
MyQT
::
cb_Save
()
{
std
::
string
filename
=
selectFileSave
(
"Export SVG file "
,
"."
,
"(*.off)"
);
Algo
::
Surface
::
Export
::
exportOFF
<
PFP
>
(
myMap
,
position
,
filename
.
c_str
());
std
::
string
filename
=
selectFileSave
(
"Export Map file "
,
"."
,
"(*.map)"
);
//Algo::Surface::Export::exportOFF<PFP>(myMap,position,filename.c_str());
if
(
!
myMap
.
saveMapBin
(
filename
))
std
::
cout
<<
"could not save file : "
<<
filename
<<
std
::
endl
;
}
void
MyQT
::
importMesh
(
std
::
string
&
filename
)
...
...
Apps/Tuto/tuto_oper3.cpp
View file @
9584150d
...
...
@@ -259,9 +259,20 @@ void MyQT::createMap(int n)
position
=
myMap
.
getAttribute
<
VEC3
,
VERTEX
>
(
"position"
);
if
(
!
position
.
isValid
())
position
=
myMap
.
addAttribute
<
VEC3
,
VERTEX
>
(
"position"
);
Algo
::
Volume
::
Modelisation
::
Primitive3D
<
PFP
>
prim
(
myMap
,
position
);
prim
.
hexaGrid_topo
(
n
,
n
,
n
);
prim
.
embedHexaGrid
(
1.0
f
,
1.0
f
,
1.0
f
);
// Algo::Volume::Modelisation::Primitive3D<PFP> prim(myMap, position);
// prim.hexaGrid_topo(n,n,n);
// prim.embedHexaGrid(1.0f,1.0f,1.0f);
// Algo::Surface::Modelisation::Polyhedron<PFP> poly(myMap, position);
// poly.cylinder_topo(6,1,true,true);
// poly.embedCylinder(6.0,6.0,5.0);
// myMap.closeMap();
Dart
d
=
Algo
::
Surface
::
Modelisation
::
embedPrism
<
PFP
>
(
myMap
,
position
,
5
,
true
,
6.0
,
6.0
,
5.0
);
Dart
d2
=
Algo
::
Surface
::
Modelisation
::
embedPyramid
<
PFP
>
(
myMap
,
position
,
4
,
true
,
6.0
,
5.0
);
myMap
.
sewVolumes
(
myMap
.
phi2
(
d
),
d2
);
position
[
myMap
.
phi_1
(
myMap
.
phi2
(
d2
))]
+=
VEC3
(
9.0
,
-
5.0
,
-
2.5
);
myMap
.
check
();
...
...
@@ -565,8 +576,8 @@ void MyQT::cb_keyPress(int keycode)
updateGL
();
break
;
case
'W'
:
m_ex1
=
0.9
f
;
m_ex2
=
0.9
f
;
m_ex1
=
0.9
5
f
;
m_ex2
=
0.9
5
f
;
m_render_topo
->
updateData
<
PFP
>
(
myMap
,
position
,
m_ex1
,
m_ex2
,
m_ex3
/*, nb*/
);
updateGL
();
break
;
...
...
SCHNApps/Plugins/renderTopoSurface/include/renderTopoSurface.h
View file @
9584150d
...
...
@@ -64,7 +64,7 @@ public:
virtual
void
keyPress
(
View
*
view
,
QKeyEvent
*
event
)
{}
virtual
void
keyRelease
(
View
*
view
,
QKeyEvent
*
event
)
{}
virtual
void
mousePress
(
View
*
view
,
QMouseEvent
*
event
)
{}
virtual
void
mousePress
(
View
*
view
,
QMouseEvent
*
event
)
;
virtual
void
mouseRelease
(
View
*
view
,
QMouseEvent
*
event
)
{}
virtual
void
mouseMove
(
View
*
view
,
QMouseEvent
*
event
)
{}
virtual
void
wheelEvent
(
View
*
view
,
QWheelEvent
*
event
)
{}
...
...
@@ -100,6 +100,9 @@ public slots:
void
attributeModified
(
unsigned
int
orbit
,
QString
nameAttr
);
void
connectivityModified
();
signals:
void
dartSelected
(
Dart
d
);
};
}
// namespace SCHNApps
...
...
SCHNApps/Plugins/renderTopoSurface/src/renderTopoSurface.cpp
View file @
9584150d
...
...
@@ -86,6 +86,22 @@ void RenderTopoSurfacePlugin::redraw(View* view)
}
}
void
RenderTopoSurfacePlugin
::
mousePress
(
View
*
view
,
QMouseEvent
*
event
)
{
// if (Shift())
// {
// ParameterSet* params = h_viewParams[view];
// m_renderTopo->updateData<PFP>(myMap, position, m_coeff_topo_explod[0], m_coeff_topo_explod[1], m_coeff_topo_explod[2], *m_selNoBoundary) ;
// Dart d = m_renderTopo->picking<PFP>(myMap, x, y, *m_selNoBoundary);
// if (d != Dart::nil())
// {
// emit(dartSelected(d);
// }
// }
}
void
RenderTopoSurfacePlugin
::
viewLinked
(
View
*
view
,
Plugin
*
plugin
)
{
if
(
plugin
==
this
)
...
...
include/Algo/DecimationVolumes/approximator.h
View file @
9584150d
...
...
@@ -37,7 +37,7 @@ namespace Algo
namespace
Volume
{
namespace
Decimation
Volumes
namespace
Decimation
{
enum
ApproximatorType
...
...
@@ -144,9 +144,9 @@ public:
};
}
// namespace Decimation
Volumes
}
// namespace Decimation
}
}
// namespace Volume
}
// namespace Algo
...
...
include/Algo/DecimationVolumes/decimator.h
View file @
9584150d
...
...
@@ -39,7 +39,7 @@ namespace Algo
namespace
Volume
{
namespace
Decimation
Volumes
namespace
Decimation
{
template
<
typename
PFP
>
...
...
@@ -51,9 +51,9 @@ void decimate(
unsigned
int
percentWantedVertices
);
}
//namespace Decimation
Volumes
}
//namespace Decimation
}
}
//namesapce Volume
}
//namespace Algo
...
...
include/Algo/DecimationVolumes/decimator.hpp
View file @
9584150d
...
...
@@ -31,7 +31,7 @@ namespace Algo
namespace
Volume
{
namespace
Decimation
Volumes
namespace
Decimation
{
template
<
typename
PFP
>
...
...
@@ -56,10 +56,10 @@ void decimate(typename PFP::MAP& map, SelectorType s, ApproximatorType a,
switch
(
s
)
{
case
S_MapOrder
:
selector
=
new
Algo
::
Decimation
Volumes
::
EdgeSelector_MapOrder
<
PFP
>
(
map
,
position
,
approximators
)
;
selector
=
new
Algo
::
Volume
::
Decimation
::
EdgeSelector_MapOrder
<
PFP
>
(
map
,
position
,
approximators
)
;
break
;
case
S_Random
:
selector
=
new
Algo
::
Decimation
Volumes
::
EdgeSelector_Random
<
PFP
>
(
map
,
position
,
approximators
)
;
selector
=
new
Algo
::
Volume
::
Decimation
::
EdgeSelector_Random
<
PFP
>
(
map
,
position
,
approximators
)
;
break
;
default:
CGoGNout
<<
"not yet implemented"
<<
CGoGNendl
;
...
...
@@ -122,9 +122,9 @@ void decimate(typename PFP::MAP& map, SelectorType s, ApproximatorType a,
delete
(
*
it
)
;
}
}
//namespace Decimation
Volumes
}
//namespace Decimation
}
}
//namespace Volume
}
//namespace Algo
...
...
include/Algo/DecimationVolumes/edgeSelector.h
View file @
9584150d
...
...
@@ -15,7 +15,7 @@ namespace Algo
namespace
Volume
{
namespace
Decimation
Volumes
namespace
Decimation
{
/*
...
...
@@ -186,9 +186,9 @@ public:
}
//end namespace Decimation
Volumes
}
//end namespace Decimation
}
}
//namespace Volume
}
//end namespace Algo
...
...
include/Algo/DecimationVolumes/edgeSelector.hpp
View file @
9584150d
...
...
@@ -35,7 +35,7 @@ namespace Algo
namespace
Volume
{
namespace
Decimation
Volumes
namespace
Decimation
{
/************************************************************************************
* MAP ORDER *
...
...
@@ -323,7 +323,7 @@ void EdgeSelector_SG98<PFP>::computeEdgeInfo(Dart d, EdgeInfo& einfo)
// einfo.valid = true ;
}
}
//end namespace Decimation
Volumique
}
}
//end namespace Decimation
}
//namespace Volume
}
//end namespace Algo
}
//end namespace CGoGN
include/Algo/DecimationVolumes/geometryApproximator.h
View file @
9584150d
...
...
@@ -36,7 +36,7 @@ namespace Algo
namespace
Volume
{
namespace
Decimation
Volumes
namespace
Decimation
{
template
<
typename
PFP
>
...
...
@@ -78,9 +78,9 @@ public:
}
;
}
//namespace Decimation
Volumes
}
//namespace Decimation
}
}
//namespace Volume
}
//namespace Algo
...
...
include/Algo/DecimationVolumes/geometryApproximator.hpp
View file @
9584150d
...
...
@@ -34,7 +34,7 @@ namespace Algo
namespace
Volume
{
namespace
Decimation
Volumes
namespace
Decimation
{
/************************************************************************************
...
...
@@ -122,9 +122,9 @@ void Approximator_HalfCollapse<PFP>::approximate(Dart d)
// }
}
}
//end namespace Decimation
Volumes
}
//end namespace Decimation
}
}
//namespace Volume
}
//end namespace Algo
...
...
include/Algo/DecimationVolumes/operator.h
View file @
9584150d
...
...
@@ -37,7 +37,7 @@ namespace Algo
namespace
Volume
{
namespace
Decimation
Volumes
namespace
Decimation
{
enum
OperatorType
...
...
@@ -179,9 +179,9 @@ public:
};
}
//end namespace Decimation
Volumes
}
//end namespace Decimation
}
}
//namespace Volume
}
//end namespace Algo
...
...
include/Algo/DecimationVolumes/operator.hpp
View file @
9584150d
...
...
@@ -31,7 +31,7 @@ namespace Algo
namespace
Volume
{
namespace
Decimation
Volumes
namespace
Decimation
{
/************************************************************************************
...
...
@@ -161,9 +161,9 @@ void OperatorList<PFP>::refine(VertexAttribute<typename PFP::VEC3>& position)
}
}
//end namespace Decimation
Volumes
}
//end namespace Decimation
}
}
//namespace Volume
}
//end namespace Algo
...
...
include/Algo/DecimationVolumes/selector.h
View file @
9584150d
...
...
@@ -13,7 +13,7 @@ namespace Algo
namespace
Volume
{
namespace
Decimation
Volumes
namespace
Decimation
{
enum
SelectorType
...
...
@@ -62,9 +62,9 @@ public:
virtual
void
updateWithoutCollapse
()
=
0
;
};
}
//end namespace Decimation
Volumes
}
//end namespace Decimation
}
}
//namespace Volume
}
//end namespace Algo
...
...
include/Algo/ImplicitHierarchicalMesh/ihm.h
View file @
9584150d
...
...
@@ -60,7 +60,21 @@ public:
static
const
unsigned
int
DIMENSION
=
2
;
void
init
()
;
//!
/*!
*
*/
void
update_topo_shortcuts
();
void
initImplicitProperties
()
;
/**
* clear the map
* @param remove attrib remove attribute (not only clear the content)
*/
void
clear
(
bool
removeAttrib
);
/***************************************************
* ATTRIBUTES MANAGEMENT *
...
...
include/Algo/ImplicitHierarchicalMesh/ihm.hpp
View file @
9584150d
...
...
@@ -66,6 +66,17 @@ AttributeHandler_IHM<T, ORBIT> ImplicitHierarchicalMap::getAttribute(const std::
return
AttributeHandler_IHM
<
T
,
ORBIT
>
(
this
,
h
.
getDataVector
())
;
}
inline
void
ImplicitHierarchicalMap
::
update_topo_shortcuts
()
{
Map2
::
update_topo_shortcuts
();
m_dartLevel
=
Map2
::
getAttribute
<
unsigned
int
,
DART
>
(
"dartLevel"
)
;
m_edgeId
=
Map2
::
getAttribute
<
unsigned
int
,
DART
>
(
"edgeId"
)
;
//AttributeContainer& cont = m_attribs[DART] ;
//m_nextLevelCell = cont.getDataVector<unsigned int>(cont.getAttributeIndex("nextLevelCell")) ;
}
/***************************************************
* MAP TRAVERSAL *
***************************************************/
...
...
@@ -278,7 +289,6 @@ inline unsigned int ImplicitHierarchicalMap::getCurrentLevel()
inline
void
ImplicitHierarchicalMap
::
setCurrentLevel
(
unsigned
int
l
)
{
assert
(
l
>=
0
||
!
"Trying to set current level to a negative value"
)
;
m_curLevel
=
l
;
}
...
...
include/Algo/ImplicitHierarchicalMesh/ihm3.hpp
View file @
9584150d
...
...
@@ -80,7 +80,7 @@ inline void ImplicitHierarchicalMap3::update_topo_shortcuts()
/***************************************************
*
MAP TRAVERSAL
*
* MAP TRAVERSAL *
***************************************************/
inline
Dart
ImplicitHierarchicalMap3
::
newDart
()
...
...
@@ -453,7 +453,6 @@ inline unsigned int ImplicitHierarchicalMap3::getCurrentLevel()
inline
void
ImplicitHierarchicalMap3
::
setCurrentLevel
(
unsigned
int
l
)
{
assert
(
l
>=
0
||
!
"Trying to set current level to a negative value"
)
;
m_curLevel
=
l
;
}
...
...
include/Algo/Import/importMesh.hpp
View file @
9584150d
...
...
@@ -111,11 +111,15 @@ bool importMesh(typename PFP::MAP& map, MeshTablesSurface<PFP>& mts)
if
(
good_dart
!=
NIL
)
{
if
((
d
!=
map
.
phi2
(
d
))
&&
(
good_dart
!
=
map
.
phi2
(
good_dart
))
)
if
(
good_dart
=
=
map
.
phi2
(
good_dart
))
{
map
.
sewFaces
(
d
,
good_dart
,
false
);
m
.
unmarkOrbit
<
EDGE
>
(
d
);
}
else
{
++
nbBoundaryEdges
;
}
}
else
{
...
...
Prev
1
2
Next
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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