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
David Cazier
CGoGN
Commits
6d1a2ce6
Commit
6d1a2ce6
authored
Jul 16, 2015
by
Sylvain Thery
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'schnapps_update' into 'develop'
Schnapps update See merge request !2
parents
208dd6f9
fd256f83
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
381 additions
and
88 deletions
+381
-88
.gitignore
.gitignore
+2
-1
SCHNApps/Plugins/surface_import/src/surface_import.cpp
SCHNApps/Plugins/surface_import/src/surface_import.cpp
+5
-7
SCHNApps/Plugins/surface_selection/forms/surface_selection.ui
...Apps/Plugins/surface_selection/forms/surface_selection.ui
+80
-51
SCHNApps/Plugins/surface_selection/src/surface_selection.cpp
SCHNApps/Plugins/surface_selection/src/surface_selection.cpp
+10
-11
SCHNApps/Plugins/surface_selection/src/surface_selection_dockTab.cpp
...ugins/surface_selection/src/surface_selection_dockTab.cpp
+43
-0
SCHNApps/include/mapHandler.h
SCHNApps/include/mapHandler.h
+25
-6
SCHNApps/include/mapHandler.hpp
SCHNApps/include/mapHandler.hpp
+26
-1
SCHNApps/include/plugin.h
SCHNApps/include/plugin.h
+14
-2
SCHNApps/include/schnapps.h
SCHNApps/include/schnapps.h
+26
-1
SCHNApps/src/controlDock_mapTab.cpp
SCHNApps/src/controlDock_mapTab.cpp
+22
-0
SCHNApps/src/mapHandler.cpp
SCHNApps/src/mapHandler.cpp
+50
-0
SCHNApps/src/schnapps.cpp
SCHNApps/src/schnapps.cpp
+78
-8
No files found.
.gitignore
View file @
6d1a2ce6
...
@@ -2,4 +2,5 @@
...
@@ -2,4 +2,5 @@
CMakeLists.txt.user
CMakeLists.txt.user
bin/
bin/
ThirdParty/bin/
ThirdParty/bin/
SCHNApps/bin
SCHNApps/bin/
\ No newline at end of file
windows_dependencies/
SCHNApps/Plugins/surface_import/src/surface_import.cpp
View file @
6d1a2ce6
...
@@ -38,16 +38,14 @@ MapHandlerGen* Surface_Import_Plugin::importMeshFromFile(const QString& nameOfFi
...
@@ -38,16 +38,14 @@ MapHandlerGen* Surface_Import_Plugin::importMeshFromFile(const QString& nameOfFi
QFileInfo
fi
(
fileName
);
QFileInfo
fi
(
fileName
);
if
(
fi
.
exists
())
if
(
fi
.
exists
())
{
{
pythonRecording
(
"importMeshFromFile"
,
fi
.
baseName
(),
fileName
);
MapHandlerGen
*
mhg
=
m_schnapps
->
addMap
(
SCHNApps
::
forceASCII
(
fi
.
baseName
()),
2
);
MapHandlerGen
*
mhg
=
m_schnapps
->
addMap
(
fi
.
baseName
(),
2
);
if
(
mhg
)
if
(
mhg
)
{
{
MapHandler
<
PFP2
>*
mh
=
static_cast
<
MapHandler
<
PFP2
>*>
(
mhg
);
MapHandler
<
PFP2
>*
mh
=
static_cast
<
MapHandler
<
PFP2
>*>
(
mhg
);
PFP2
::
MAP
*
map
=
mh
->
getMap
();
PFP2
::
MAP
*
map
=
mh
->
getMap
();
std
::
vector
<
std
::
string
>
attrNames
;
std
::
vector
<
std
::
string
>
attrNames
;
Algo
::
Surface
::
Import
::
importMesh
<
PFP2
>
(
*
map
,
fileName
.
to
StdString
(),
attrNames
);
Algo
::
Surface
::
Import
::
importMesh
<
PFP2
>
(
*
map
,
SCHNApps
::
nice
StdString
(
fileName
),
attrNames
);
for
(
unsigned
int
orbit
=
VERTEX
;
orbit
<=
VOLUME
;
orbit
++
)
for
(
unsigned
int
orbit
=
VERTEX
;
orbit
<=
VOLUME
;
orbit
++
)
{
{
...
@@ -60,6 +58,7 @@ MapHandlerGen* Surface_Import_Plugin::importMeshFromFile(const QString& nameOfFi
...
@@ -60,6 +58,7 @@ MapHandlerGen* Surface_Import_Plugin::importMeshFromFile(const QString& nameOfFi
mhg
->
registerAttribute
(
orbit
,
QString
::
fromStdString
(
names
[
i
]),
QString
::
fromStdString
(
types
[
i
]));
mhg
->
registerAttribute
(
orbit
,
QString
::
fromStdString
(
names
[
i
]),
QString
::
fromStdString
(
types
[
i
]));
}
}
}
}
pythonRecording
(
"importMeshFromFile"
,
mhg
->
getName
(),
fileName
);
return
mhg
;
return
mhg
;
}
}
else
else
...
@@ -84,9 +83,7 @@ MapHandlerGen* Surface_Import_Plugin::importImageFromFile(const QString& nameOfF
...
@@ -84,9 +83,7 @@ MapHandlerGen* Surface_Import_Plugin::importImageFromFile(const QString& nameOfF
QFileInfo
fi
(
fileName
);
QFileInfo
fi
(
fileName
);
if
(
fi
.
exists
())
if
(
fi
.
exists
())
{
{
pythonRecording
(
"importImageFromFile"
,
fi
.
baseName
(),
fileName
);
MapHandlerGen
*
mhg
=
m_schnapps
->
addMap
(
SCHNApps
::
forceASCII
(
fi
.
baseName
()),
2
);
MapHandlerGen
*
mhg
=
m_schnapps
->
addMap
(
fi
.
baseName
(),
2
);
if
(
mhg
)
if
(
mhg
)
{
{
MapHandler
<
PFP2
>*
mh
=
static_cast
<
MapHandler
<
PFP2
>*>
(
mhg
);
MapHandler
<
PFP2
>*
mh
=
static_cast
<
MapHandler
<
PFP2
>*>
(
mhg
);
...
@@ -123,6 +120,7 @@ MapHandlerGen* Surface_Import_Plugin::importImageFromFile(const QString& nameOfF
...
@@ -123,6 +120,7 @@ MapHandlerGen* Surface_Import_Plugin::importImageFromFile(const QString& nameOfF
mh
->
registerAttribute
(
color
);
mh
->
registerAttribute
(
color
);
}
}
pythonRecording
(
"importImageFromFile"
,
mhg
->
getName
(),
fileName
);
return
mhg
;
return
mhg
;
}
}
else
else
...
...
SCHNApps/Plugins/surface_selection/forms/surface_selection.ui
View file @
6d1a2ce6
...
@@ -14,10 +14,30 @@
...
@@ -14,10 +14,30 @@
<string>
Form
</string>
<string>
Form
</string>
</property>
</property>
<layout
class=
"QGridLayout"
name=
"gridLayout"
>
<layout
class=
"QGridLayout"
name=
"gridLayout"
>
<item
row=
"5"
column=
"0"
colspan=
"2"
>
<item
row=
"9"
column=
"0"
colspan=
"2"
>
<widget
class=
"QPushButton"
name=
"button_clear"
>
<widget
class=
"QSlider"
name=
"slider_verticesScaleFactor"
>
<property
name=
"value"
>
<number>
50
</number>
</property>
<property
name=
"orientation"
>
<enum>
Qt::Horizontal
</enum>
</property>
<property
name=
"tickPosition"
>
<enum>
QSlider::NoTicks
</enum>
</property>
</widget>
</item>
<item
row=
"2"
column=
"0"
colspan=
"2"
>
<widget
class=
"Line"
name=
"line"
>
<property
name=
"orientation"
>
<enum>
Qt::Horizontal
</enum>
</property>
</widget>
</item>
<item
row=
"1"
column=
"0"
>
<widget
class=
"QLabel"
name=
"label"
>
<property
name=
"text"
>
<property
name=
"text"
>
<string>
Clear current selection
</string>
<string>
Normal :
</string>
</property>
</property>
</widget>
</widget>
</item>
</item>
...
@@ -30,10 +50,10 @@
...
@@ -30,10 +50,10 @@
</item>
</item>
</widget>
</widget>
</item>
</item>
<item
row=
"
1
"
column=
"0"
>
<item
row=
"
6
"
column=
"0"
colspan=
"2"
>
<widget
class=
"Q
Label"
name=
"label
"
>
<widget
class=
"Q
PushButton"
name=
"button_clear
"
>
<property
name=
"text"
>
<property
name=
"text"
>
<string>
Normal :
</string>
<string>
Clear current selection
</string>
</property>
</property>
</widget>
</widget>
</item>
</item>
...
@@ -62,40 +82,6 @@
...
@@ -62,40 +82,6 @@
</item>
</item>
</widget>
</widget>
</item>
</item>
<item
row=
"2"
column=
"0"
colspan=
"2"
>
<widget
class=
"Line"
name=
"line"
>
<property
name=
"orientation"
>
<enum>
Qt::Horizontal
</enum>
</property>
</widget>
</item>
<item
row=
"8"
column=
"0"
colspan=
"2"
>
<widget
class=
"QSlider"
name=
"slider_verticesScaleFactor"
>
<property
name=
"value"
>
<number>
50
</number>
</property>
<property
name=
"orientation"
>
<enum>
Qt::Horizontal
</enum>
</property>
<property
name=
"tickPosition"
>
<enum>
QSlider::NoTicks
</enum>
</property>
</widget>
</item>
<item
row=
"0"
column=
"0"
>
<widget
class=
"QLabel"
name=
"label_2"
>
<property
name=
"text"
>
<string>
Position :
</string>
</property>
</widget>
</item>
<item
row=
"4"
column=
"0"
colspan=
"2"
>
<widget
class=
"Line"
name=
"line_2"
>
<property
name=
"orientation"
>
<enum>
Qt::Horizontal
</enum>
</property>
</widget>
</item>
<item
row=
"0"
column=
"1"
>
<item
row=
"0"
column=
"1"
>
<widget
class=
"QComboBox"
name=
"combo_positionAttribute"
>
<widget
class=
"QComboBox"
name=
"combo_positionAttribute"
>
<property
name=
"sizePolicy"
>
<property
name=
"sizePolicy"
>
...
@@ -111,10 +97,10 @@
...
@@ -111,10 +97,10 @@
</item>
</item>
</widget>
</widget>
</item>
</item>
<item
row=
"
7
"
column=
"0"
colspan=
"2"
>
<item
row=
"
5
"
column=
"0"
colspan=
"2"
>
<widget
class=
"
QLabel
"
name=
"l
abel_4
"
>
<widget
class=
"
Line
"
name=
"l
ine_2
"
>
<property
name=
"
text
"
>
<property
name=
"
orientation
"
>
<
string>
Selected vertice size
</string
>
<
enum>
Qt::Horizontal
</enum
>
</property>
</property>
</widget>
</widget>
</item>
</item>
...
@@ -125,14 +111,35 @@
...
@@ -125,14 +111,35 @@
</property>
</property>
</widget>
</widget>
</item>
</item>
<item
row=
"9"
column=
"0"
colspan=
"2"
>
<item
row=
"0"
column=
"0"
>
<widget
class=
"QLabel"
name=
"label_2"
>
<property
name=
"text"
>
<string>
Position :
</string>
</property>
</widget>
</item>
<item
row=
"8"
column=
"0"
colspan=
"2"
>
<widget
class=
"QLabel"
name=
"label_4"
>
<property
name=
"text"
>
<string>
Selected vertice size
</string>
</property>
</widget>
</item>
<item
row=
"10"
column=
"0"
colspan=
"2"
>
<widget
class=
"QLabel"
name=
"label_5"
>
<widget
class=
"QLabel"
name=
"label_5"
>
<property
name=
"text"
>
<property
name=
"text"
>
<string>
Selected vertices color
</string>
<string>
Selected vertices color
</string>
</property>
</property>
</widget>
</widget>
</item>
</item>
<item
row=
"14"
column=
"1"
>
<item
row=
"7"
column=
"0"
colspan=
"2"
>
<widget
class=
"Line"
name=
"line_3"
>
<property
name=
"orientation"
>
<enum>
Qt::Horizontal
</enum>
</property>
</widget>
</item>
<item
row=
"15"
column=
"1"
>
<spacer
name=
"verticalSpacer"
>
<spacer
name=
"verticalSpacer"
>
<property
name=
"orientation"
>
<property
name=
"orientation"
>
<enum>
Qt::Vertical
</enum>
<enum>
Qt::Vertical
</enum>
...
@@ -145,13 +152,35 @@
...
@@ -145,13 +152,35 @@
</property>
</property>
</spacer>
</spacer>
</item>
</item>
<item
row=
"1
0
"
column=
"0"
colspan=
"2"
>
<item
row=
"1
1
"
column=
"0"
colspan=
"2"
>
<widget
class=
"ColorComboBox"
name=
"combo_color"
/>
<widget
class=
"ColorComboBox"
name=
"combo_color"
/>
</item>
</item>
<item
row=
"6"
column=
"0"
colspan=
"2"
>
<item
row=
"4"
column=
"1"
>
<widget
class=
"Line"
name=
"line_3"
>
<widget
class=
"QDoubleSpinBox"
name=
"spin_angle_radius"
>
<property
name=
"orientation"
>
<property
name=
"toolTip"
>
<enum>
Qt::Horizontal
</enum>
<string/>
</property>
<property
name=
"statusTip"
>
<string/>
</property>
<property
name=
"whatsThis"
>
<string/>
</property>
<property
name=
"readOnly"
>
<bool>
true
</bool>
</property>
<property
name=
"buttonSymbols"
>
<enum>
QAbstractSpinBox::NoButtons
</enum>
</property>
<property
name=
"maximum"
>
<double>
999999999.000000000000000
</double>
</property>
</widget>
</item>
<item
row=
"4"
column=
"0"
>
<widget
class=
"QLabel"
name=
"label_angle_radius"
>
<property
name=
"text"
>
<string/>
</property>
</property>
</widget>
</widget>
</item>
</item>
...
...
SCHNApps/Plugins/surface_selection/src/surface_selection.cpp
View file @
6d1a2ce6
...
@@ -24,7 +24,7 @@ Surface_Selection_Plugin::Surface_Selection_Plugin() :
...
@@ -24,7 +24,7 @@ Surface_Selection_Plugin::Surface_Selection_Plugin() :
m_selectedFaces_dirty
(
false
),
m_selectedFaces_dirty
(
false
),
m_selectionRadiusBase
(
1
),
m_selectionRadiusBase
(
1
),
m_selectionRadiusCoeff
(
1
),
m_selectionRadiusCoeff
(
1
),
m_normalAngleThreshold
(
10
)
m_normalAngleThreshold
(
float
(
10
*
M_PI
/
180
)
)
{}
{}
bool
Surface_Selection_Plugin
::
enable
()
bool
Surface_Selection_Plugin
::
enable
()
...
@@ -89,8 +89,11 @@ void Surface_Selection_Plugin::disable()
...
@@ -89,8 +89,11 @@ void Surface_Selection_Plugin::disable()
delete
m_selectionSphereVBO
;
delete
m_selectionSphereVBO
;
disconnect
(
m_schnapps
,
SIGNAL
(
selectedViewChanged
(
View
*
,
View
*
)),
this
,
SLOT
(
selectedViewChanged
(
View
*
,
View
*
)));
//disconnect(m_schnapps, SIGNAL(selectedViewChanged(View*, View*)), this, SLOT(selectedViewChanged(View*, View*)));
disconnect
(
m_schnapps
,
SIGNAL
(
mapRemoved
(
MapHandlerGen
*
)),
this
,
SLOT
(
mapRemoved
(
MapHandlerGen
*
)));
//disconnect(m_schnapps, SIGNAL(mapRemoved(MapHandlerGen*)), this, SLOT(mapRemoved(MapHandlerGen*)));
disconnect
(
m_schnapps
,
SIGNAL
(
selectedMapChanged
(
MapHandlerGen
*
,
MapHandlerGen
*
)),
this
,
SLOT
(
selectedMapChanged
(
MapHandlerGen
*
,
MapHandlerGen
*
)));
disconnect
(
m_schnapps
,
SIGNAL
(
selectedCellSelectorChanged
(
CellSelectorGen
*
)),
this
,
SLOT
(
updateSelectedCellsRendering
()));
}
}
void
Surface_Selection_Plugin
::
drawMap
(
View
*
view
,
MapHandlerGen
*
map
)
void
Surface_Selection_Plugin
::
drawMap
(
View
*
view
,
MapHandlerGen
*
map
)
...
@@ -115,13 +118,11 @@ void Surface_Selection_Plugin::drawMap(View* view, MapHandlerGen* map)
...
@@ -115,13 +118,11 @@ void Surface_Selection_Plugin::drawMap(View* view, MapHandlerGen* map)
{
{
if
(
m_selectedVertices_dirty
)
if
(
m_selectedVertices_dirty
)
updateSelectedCellsRendering
();
updateSelectedCellsRendering
();
m_pointSprite
->
setAttributePosition
(
m_selectedVerticesVBO
);
m_pointSprite
->
setAttributePosition
(
m_selectedVerticesVBO
);
const
QColor
&
col
=
p
.
color
;
const
QColor
&
col
=
p
.
color
;
m_pointSprite
->
setColor
(
Geom
::
Vec4f
(
col
.
redF
(),
col
.
greenF
(),
col
.
blueF
(),
0.0
f
));
m_pointSprite
->
setColor
(
Geom
::
Vec4f
(
col
.
redF
(),
col
.
greenF
(),
col
.
blueF
(),
0.0
f
));
m_pointSprite
->
setLightPosition
(
CGoGN
::
Geom
::
Vec3f
(
0.0
f
,
0.0
f
,
1.0
f
));
m_pointSprite
->
setLightPosition
(
CGoGN
::
Geom
::
Vec3f
(
0.0
f
,
0.0
f
,
1.0
f
));
m_pointSprite
->
setSize
(
p
.
basePSradius
*
p
.
verticesScaleFactor
);
m_pointSprite
->
setSize
(
p
.
basePSradius
*
p
.
verticesScaleFactor
);
m_pointSprite
->
enableVertexAttribs
();
m_pointSprite
->
enableVertexAttribs
();
glDrawArrays
(
GL_POINTS
,
0
,
selector
->
getNbSelectedCells
());
glDrawArrays
(
GL_POINTS
,
0
,
selector
->
getNbSelectedCells
());
m_pointSprite
->
disableVertexAttribs
();
m_pointSprite
->
disableVertexAttribs
();
...
@@ -132,11 +133,9 @@ void Surface_Selection_Plugin::drawMap(View* view, MapHandlerGen* map)
...
@@ -132,11 +133,9 @@ void Surface_Selection_Plugin::drawMap(View* view, MapHandlerGen* map)
std
::
vector
<
PFP2
::
VEC3
>
selectionPoint
;
std
::
vector
<
PFP2
::
VEC3
>
selectionPoint
;
selectionPoint
.
push_back
(
p
.
positionAttribute
[
m_selectingVertex
]);
selectionPoint
.
push_back
(
p
.
positionAttribute
[
m_selectingVertex
]);
m_selectionSphereVBO
->
updateData
(
selectionPoint
);
m_selectionSphereVBO
->
updateData
(
selectionPoint
);
m_pointSprite
->
setAttributePosition
(
m_selectionSphereVBO
);
m_pointSprite
->
setAttributePosition
(
m_selectionSphereVBO
);
m_pointSprite
->
setColor
(
CGoGN
::
Geom
::
Vec4f
(
0.0
f
,
0.0
f
,
1.0
f
,
0.5
f
));
m_pointSprite
->
setColor
(
CGoGN
::
Geom
::
Vec4f
(
0.0
f
,
0.0
f
,
1.0
f
,
0.5
f
));
m_pointSprite
->
setLightPosition
(
CGoGN
::
Geom
::
Vec3f
(
0.0
f
,
0.0
f
,
1.0
f
));
m_pointSprite
->
setLightPosition
(
CGoGN
::
Geom
::
Vec3f
(
0.0
f
,
0.0
f
,
1.0
f
));
switch
(
p
.
selectionMethod
)
switch
(
p
.
selectionMethod
)
{
{
case
NormalAngle
:
case
NormalAngle
:
...
@@ -147,7 +146,6 @@ void Surface_Selection_Plugin::drawMap(View* view, MapHandlerGen* map)
...
@@ -147,7 +146,6 @@ void Surface_Selection_Plugin::drawMap(View* view, MapHandlerGen* map)
m_pointSprite
->
setSize
(
m_selectionRadiusBase
*
m_selectionRadiusCoeff
);
m_pointSprite
->
setSize
(
m_selectionRadiusBase
*
m_selectionRadiusCoeff
);
break
;
break
;
}
}
m_pointSprite
->
enableVertexAttribs
();
m_pointSprite
->
enableVertexAttribs
();
glEnable
(
GL_BLEND
);
glEnable
(
GL_BLEND
);
glBlendFunc
(
GL_SRC_ALPHA
,
GL_ONE_MINUS_SRC_ALPHA
);
glBlendFunc
(
GL_SRC_ALPHA
,
GL_ONE_MINUS_SRC_ALPHA
);
...
@@ -502,14 +500,16 @@ void Surface_Selection_Plugin::wheelEvent(View* view, QWheelEvent* event)
...
@@ -502,14 +500,16 @@ void Surface_Selection_Plugin::wheelEvent(View* view, QWheelEvent* event)
else
else
m_selectionRadiusCoeff
*=
1.1
f
;
m_selectionRadiusCoeff
*=
1.1
f
;
view
->
updateGL
();
view
->
updateGL
();
m_dockTab
->
spin_angle_radius
->
setValue
(
m_selectionRadiusBase
*
m_selectionRadiusCoeff
);
break
;
break
;
}
}
case
NormalAngle
:
{
case
NormalAngle
:
{
if
(
event
->
delta
()
>
0
)
if
(
event
->
delta
()
>
0
)
m_normalAngleThreshold
*
=
0.9
f
;
m_normalAngleThreshold
-
=
CGoGN
::
PFP_SCHNAPPS
::
REAL
(
M_PI
/
180
)
;
else
else
m_normalAngleThreshold
*
=
1.1
f
;
m_normalAngleThreshold
+
=
CGoGN
::
PFP_SCHNAPPS
::
REAL
(
M_PI
/
180
)
;
// view->displayMessage(QString("Angle threshold : ") + m_normalAngleThreshold);
// view->displayMessage(QString("Angle threshold : ") + m_normalAngleThreshold);
m_dockTab
->
spin_angle_radius
->
setValue
(
m_normalAngleThreshold
/
M_PI
*
180
);
break
;
break
;
}
}
}
}
...
@@ -573,7 +573,6 @@ void Surface_Selection_Plugin::updateSelectedCellsRendering()
...
@@ -573,7 +573,6 @@ void Surface_Selection_Plugin::updateSelectedCellsRendering()
m_selectedEdgesDrawer
->
newList
(
GL_COMPILE
);
m_selectedEdgesDrawer
->
newList
(
GL_COMPILE
);
m_selectedEdgesDrawer
->
lineWidth
(
3.0
f
);
m_selectedEdgesDrawer
->
lineWidth
(
3.0
f
);
// m_selectedEdgesDrawer->color3f(1.0f, 0.0f, 0.0f);
m_selectedEdgesDrawer
->
color3f
(
p
.
color
.
redF
(),
p
.
color
.
greenF
(),
p
.
color
.
blueF
());
m_selectedEdgesDrawer
->
color3f
(
p
.
color
.
redF
(),
p
.
color
.
greenF
(),
p
.
color
.
blueF
());
m_selectedEdgesDrawer
->
begin
(
GL_LINES
);
m_selectedEdgesDrawer
->
begin
(
GL_LINES
);
for
(
std
::
vector
<
Edge
>::
const_iterator
e
=
selectedCells
.
begin
();
e
!=
selectedCells
.
end
();
++
e
)
for
(
std
::
vector
<
Edge
>::
const_iterator
e
=
selectedCells
.
begin
();
e
!=
selectedCells
.
end
();
++
e
)
...
...
SCHNApps/Plugins/surface_selection/src/surface_selection_dockTab.cpp
View file @
6d1a2ce6
...
@@ -43,6 +43,7 @@ void Surface_Selection_DockTab::positionAttributeChanged(int index)
...
@@ -43,6 +43,7 @@ void Surface_Selection_DockTab::positionAttributeChanged(int index)
{
{
MapHandler
<
PFP2
>*
mh
=
static_cast
<
MapHandler
<
PFP2
>*>
(
map
);
MapHandler
<
PFP2
>*
mh
=
static_cast
<
MapHandler
<
PFP2
>*>
(
map
);
m_plugin
->
h_parameterSet
[
map
].
positionAttribute
=
mh
->
getAttribute
<
PFP2
::
VEC3
,
VERTEX
>
(
combo_positionAttribute
->
currentText
());
m_plugin
->
h_parameterSet
[
map
].
positionAttribute
=
mh
->
getAttribute
<
PFP2
::
VEC3
,
VERTEX
>
(
combo_positionAttribute
->
currentText
());
m_plugin
->
updateSelectedCellsRendering
();
m_plugin
->
pythonRecording
(
"changePositionAttribute"
,
""
,
map
->
getName
(),
combo_positionAttribute
->
currentText
());
m_plugin
->
pythonRecording
(
"changePositionAttribute"
,
""
,
map
->
getName
(),
combo_positionAttribute
->
currentText
());
}
}
}
}
...
@@ -57,6 +58,7 @@ void Surface_Selection_DockTab::normalAttributeChanged(int index)
...
@@ -57,6 +58,7 @@ void Surface_Selection_DockTab::normalAttributeChanged(int index)
{
{
MapHandler
<
PFP2
>*
mh
=
static_cast
<
MapHandler
<
PFP2
>*>
(
map
);
MapHandler
<
PFP2
>*
mh
=
static_cast
<
MapHandler
<
PFP2
>*>
(
map
);
m_plugin
->
h_parameterSet
[
map
].
normalAttribute
=
mh
->
getAttribute
<
PFP2
::
VEC3
,
VERTEX
>
(
combo_normalAttribute
->
currentText
());
m_plugin
->
h_parameterSet
[
map
].
normalAttribute
=
mh
->
getAttribute
<
PFP2
::
VEC3
,
VERTEX
>
(
combo_normalAttribute
->
currentText
());
m_plugin
->
updateSelectedCellsRendering
();
m_plugin
->
pythonRecording
(
"changeNormalAttribute"
,
""
,
map
->
getName
(),
combo_normalAttribute
->
currentText
());
m_plugin
->
pythonRecording
(
"changeNormalAttribute"
,
""
,
map
->
getName
(),
combo_normalAttribute
->
currentText
());
}
}
}
}
...
@@ -72,6 +74,26 @@ void Surface_Selection_DockTab::selectionMethodChanged(int index)
...
@@ -72,6 +74,26 @@ void Surface_Selection_DockTab::selectionMethodChanged(int index)
m_plugin
->
h_parameterSet
[
map
].
selectionMethod
=
SelectionMethod
(
index
);
m_plugin
->
h_parameterSet
[
map
].
selectionMethod
=
SelectionMethod
(
index
);
m_plugin
->
pythonRecording
(
"changeSelectionMethod"
,
""
,
map
->
getName
(),
index
);
m_plugin
->
pythonRecording
(
"changeSelectionMethod"
,
""
,
map
->
getName
(),
index
);
}
}
switch
(
index
)
{
case
0
:
this
->
spin_angle_radius
->
setHidden
(
true
);
this
->
label_angle_radius
->
setText
(
QString
());
break
;
case
1
:
this
->
spin_angle_radius
->
setHidden
(
false
);
this
->
spin_angle_radius
->
setValue
(
m_plugin
->
m_selectionRadiusBase
*
m_plugin
->
m_selectionRadiusCoeff
);
this
->
label_angle_radius
->
setText
(
QString
(
"Radius:"
));
break
;
case
2
:
this
->
spin_angle_radius
->
setHidden
(
false
);
this
->
spin_angle_radius
->
setValue
(
m_plugin
->
m_normalAngleThreshold
/
M_PI
*
180
);
this
->
label_angle_radius
->
setText
(
QString
(
"Angle:"
));
break
;
default:
break
;
}
}
}
}
}
...
@@ -204,6 +226,27 @@ void Surface_Selection_DockTab::updateMapParameters()
...
@@ -204,6 +226,27 @@ void Surface_Selection_DockTab::updateMapParameters()
combo_color
->
setColor
(
p
.
color
);
combo_color
->
setColor
(
p
.
color
);
slider_verticesScaleFactor
->
setValue
(
int
(
50.0
*
p
.
verticesScaleFactor
));
slider_verticesScaleFactor
->
setValue
(
int
(
50.0
*
p
.
verticesScaleFactor
));
switch
(
p
.
selectionMethod
)
{
case
0
:
this
->
spin_angle_radius
->
setHidden
(
true
);
this
->
label_angle_radius
->
setText
(
QString
());
break
;
case
1
:
this
->
spin_angle_radius
->
setHidden
(
false
);
this
->
spin_angle_radius
->
setValue
(
m_plugin
->
m_selectionRadiusBase
*
m_plugin
->
m_selectionRadiusCoeff
);
this
->
label_angle_radius
->
setText
(
QString
(
"Radius:"
));
break
;
case
2
:
this
->
spin_angle_radius
->
setHidden
(
false
);
this
->
spin_angle_radius
->
setValue
(
m_plugin
->
m_normalAngleThreshold
/
M_PI
*
180
);
this
->
label_angle_radius
->
setText
(
QString
(
"Angle:"
));
break
;
default:
break
;
}
}
}
b_updatingUI
=
false
;
b_updatingUI
=
false
;
...
...
SCHNApps/include/mapHandler.h
View file @
6d1a2ce6
...
@@ -106,6 +106,12 @@ public slots:
...
@@ -106,6 +106,12 @@ public slots:
*/
*/
bool
isBBshown
()
const
;
bool
isBBshown
()
const
;
/**
* @brief [PYTHON] set color for drawing BB the bounding-box
* @param color color name (red,green,...) or color format #rrggbb
*/
void
setBBColor
(
const
QString
&
color
);
/**
/**
* @brief [PYTHON] choose the vertex attribute used to compute the bounding-box
* @brief [PYTHON] choose the vertex attribute used to compute the bounding-box
* @param name name of attribute
* @param name name of attribute
...
@@ -347,7 +353,23 @@ public slots:
...
@@ -347,7 +353,23 @@ public slots:
* @param sz scaling z factor
* @param sz scaling z factor
*/
*/
void
setScaling
(
float
sx
,
float
sy
,
float
sz
);
void
setScaling
(
float
sx
,
float
sy
,
float
sz
);
/**
* @brief [PYTHON] Save the frame into a string
* @return the storage string
*/
QString
frameToString
();
/**
* @brief [PYTHON] restore frame from string storage
* @param frame the string with frame info
*/
void
frameFromString
(
QString
frame
);
/**
* @brief reset the frame manipulator to its initial position
*/
void
frameReset
();
/*********************************************************
/*********************************************************
* SIGNALS
* SIGNALS
...
@@ -385,6 +407,7 @@ protected:
...
@@ -385,6 +407,7 @@ protected:
AttributeMultiVectorGen
*
m_bbVertexAttribute
;
AttributeMultiVectorGen
*
m_bbVertexAttribute
;
float
m_bbDiagSize
;
float
m_bbDiagSize
;
Utils
::
Drawer
*
m_bbDrawer
;
Utils
::
Drawer
*
m_bbDrawer
;
glm
::
vec3
m_bbColor
;
Algo
::
Render
::
GL2
::
MapRender
*
m_render
;
Algo
::
Render
::
GL2
::
MapRender
*
m_render
;
Algo
::
Render
::
GL2
::
TopoRender
*
m_topoRender
;
Algo
::
Render
::
GL2
::
TopoRender
*
m_topoRender
;
...
@@ -409,11 +432,7 @@ public:
...
@@ -409,11 +432,7 @@ public:
MapHandlerGen
(
name
,
s
,
map
)
MapHandlerGen
(
name
,
s
,
map
)
{}
{}
~
MapHandler
()
~
MapHandler
();
{
if
(
m_map
)
delete
m_map
;
}
inline
MAP
*
getMap
()
{
return
static_cast
<
MAP
*>
(
m_map
);
}
inline
MAP
*
getMap
()
{
return
static_cast
<
MAP
*>
(
m_map
);
}
...
...
SCHNApps/include/mapHandler.hpp
View file @
6d1a2ce6
...
@@ -9,6 +9,8 @@ namespace CGoGN
...
@@ -9,6 +9,8 @@ namespace CGoGN
namespace
SCHNApps
namespace
SCHNApps
{
{