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
Operations
Operations
Incidents
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
David Cazier
CGoGN
Commits
de2c656c
Commit
de2c656c
authored
Apr 13, 2015
by
Sylvain Thery
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
resolve pb of linewidth in GL3 (new shader)
parent
4f76a792
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
267 additions
and
126 deletions
+267
-126
CGoGN/include/Utils/drawer.h
CGoGN/include/Utils/drawer.h
+10
-3
CGoGN/include/Utils/frameManipulator.h
CGoGN/include/Utils/frameManipulator.h
+3
-1
CGoGN/src/Utils/drawer.cpp
CGoGN/src/Utils/drawer.cpp
+139
-64
CGoGN/src/Utils/frameManipulator.cpp
CGoGN/src/Utils/frameManipulator.cpp
+81
-45
SCHNApps/Plugins/surface_modelisation/src/surface_modelisation.cpp
...Plugins/surface_modelisation/src/surface_modelisation.cpp
+2
-1
SCHNApps/Plugins/surface_selection/src/surface_selection.cpp
SCHNApps/Plugins/surface_selection/src/surface_selection.cpp
+8
-3
SCHNApps/include/mapHandler.h
SCHNApps/include/mapHandler.h
+2
-5
SCHNApps/include/plugin_interaction.h
SCHNApps/include/plugin_interaction.h
+4
-0
SCHNApps/src/plugin_interaction.cpp
SCHNApps/src/plugin_interaction.cpp
+13
-0
SCHNApps/src/view.cpp
SCHNApps/src/view.cpp
+5
-4
No files found.
CGoGN/include/Utils/drawer.h
View file @
de2c656c
...
@@ -29,6 +29,7 @@
...
@@ -29,6 +29,7 @@
#include "Utils/gl_def.h"
#include "Utils/gl_def.h"
#include "Geometry/vector_gen.h"
#include "Geometry/vector_gen.h"
#include "Utils/Shaders/shaderColorPerVertex.h"
#include "Utils/Shaders/shaderColorPerVertex.h"
#include "Utils/Shaders/shaderBoldColorLines.h"
namespace
CGoGN
{
namespace
Utils
{
class
VBO
;
}
}
namespace
CGoGN
{
namespace
Utils
{
class
VBO
;
}
}
namespace
CGoGN
{
namespace
Utils
{
namespace
SVG
{
class
SVGOut
;
}
}
}
namespace
CGoGN
{
namespace
Utils
{
namespace
SVG
{
class
SVGOut
;
}
}
}
...
@@ -65,10 +66,12 @@ protected:
...
@@ -65,10 +66,12 @@ protected:
std
::
vector
<
Geom
::
Vec3f
>
m_dataPos
;
std
::
vector
<
Geom
::
Vec3f
>
m_dataPos
;
std
::
vector
<
Geom
::
Vec3f
>
m_dataCol
;
std
::
vector
<
Geom
::
Vec3f
>
m_dataCol
;
std
::
vector
<
PrimParam
>
m_begins
;
std
::
vector
<
PrimParam
>
m_begins
;
float
m_currentWidth
;
float
m_currentWidth
;
float
m_currentSize
;
float
m_currentSize
;
GLenum
m_compile
;
GLenum
m_compile
;
Utils
::
ShaderColorPerVertex
*
m_shader
;
Utils
::
ShaderColorPerVertex
*
m_shader
;
Utils
::
ShaderBoldColorLines
*
m_shader2
;
public:
public:
...
@@ -83,7 +86,11 @@ public:
...
@@ -83,7 +86,11 @@ public:
*/
*/
~
Drawer
();
~
Drawer
();
Utils
::
ShaderColorPerVertex
*
getShader
();
// Utils::ShaderColorPerVertex* getShader();
std
::
vector
<
Utils
::
GLSLShader
*>
getShaders
();
void
updateMatrices
(
const
glm
::
mat4
&
projection
,
const
glm
::
mat4
&
modelview
);
/**
/**
* init the data structure
* init the data structure
...
@@ -144,12 +151,12 @@ public:
...
@@ -144,12 +151,12 @@ public:
/**
/**
* call a set of sub-lists
* call a set of sub-lists
*/
*/
void
callSubLists
(
std
::
vector
<
int
>
indices
,
float
opacity
);
//
void callSubLists(std::vector<int> indices, float opacity);
/**
/**
* call a set of sub-lists
* call a set of sub-lists
*/
*/
void
callSubLists
(
int
first
,
int
nb
,
float
opacity
);
//
void callSubLists(int first, int nb, float opacity);
/**
/**
...
...
CGoGN/include/Utils/frameManipulator.h
View file @
de2c656c
...
@@ -29,6 +29,7 @@
...
@@ -29,6 +29,7 @@
#include "Utils/vbo_base.h"
#include "Utils/vbo_base.h"
#include "glm/glm.hpp"
#include "glm/glm.hpp"
#include "Utils/Shaders/shaderSimpleColor.h"
#include "Utils/Shaders/shaderSimpleColor.h"
#include "Utils/Shaders/shaderBoldLines.h"
#include "Utils/pickables.h"
#include "Utils/pickables.h"
#include "Utils/dll.h"
#include "Utils/dll.h"
...
@@ -71,12 +72,13 @@ protected:
...
@@ -71,12 +72,13 @@ protected:
/**
/**
* VBO for color
* VBO for color
*/
*/
Utils
::
VBO
*
m_vboCol
;
//
Utils::VBO* m_vboCol;
/**
/**
* Shader
* Shader
*/
*/
Utils
::
ShaderSimpleColor
*
m_shader
;
Utils
::
ShaderSimpleColor
*
m_shader
;
Utils
::
ShaderBoldLines
*
m_shaderBL
;
/**
/**
* the axis to be highlighted
* the axis to be highlighted
...
...
CGoGN/src/Utils/drawer.cpp
View file @
de2c656c
...
@@ -37,7 +37,9 @@ namespace CGoGN
...
@@ -37,7 +37,9 @@ namespace CGoGN
namespace
Utils
namespace
Utils
{
{
Drawer
::
Drawer
()
:
m_currentWidth
(
1.0
f
)
Drawer
::
Drawer
()
:
m_currentWidth
(
1.0
f
),
m_currentSize
(
1.0
f
)
{
{
m_vboPos
=
new
Utils
::
VBO
();
m_vboPos
=
new
Utils
::
VBO
();
m_vboPos
->
setDataSize
(
3
);
m_vboPos
->
setDataSize
(
3
);
...
@@ -46,12 +48,20 @@ Drawer::Drawer() : m_currentWidth(1.0f)
...
@@ -46,12 +48,20 @@ Drawer::Drawer() : m_currentWidth(1.0f)
m_vboCol
->
setDataSize
(
3
);
m_vboCol
->
setDataSize
(
3
);
m_shader
=
new
Utils
::
ShaderColorPerVertex
();
m_shader
=
new
Utils
::
ShaderColorPerVertex
();
m_shader
->
setAttributePosition
(
m_vboPos
);
m_shader
->
setAttributePosition
(
m_vboPos
);
m_shader
->
setAttributeColor
(
m_vboCol
);
m_shader
->
setAttributeColor
(
m_vboCol
);
Utils
::
GLSLShader
::
registerShader
(
NULL
,
m_shader
);
Utils
::
GLSLShader
::
registerShader
(
NULL
,
m_shader
);
if
(
GLSLShader
::
CURRENT_OGL_VERSION
>=
3
)
{
m_shader2
=
new
Utils
::
ShaderBoldColorLines
();
m_shader2
->
setAttributePosition
(
m_vboPos
);
m_shader2
->
setAttributeColor
(
m_vboCol
);
m_shader2
->
setNoClippingPlane
();
Utils
::
GLSLShader
::
registerShader
(
NULL
,
m_shader2
);
}
m_dataPos
.
reserve
(
128
);
m_dataPos
.
reserve
(
128
);
m_dataCol
.
reserve
(
128
);
m_dataCol
.
reserve
(
128
);
m_begins
.
reserve
(
16
);
m_begins
.
reserve
(
16
);
...
@@ -64,13 +74,32 @@ Drawer::~Drawer()
...
@@ -64,13 +74,32 @@ Drawer::~Drawer()
delete
m_vboPos
;
delete
m_vboPos
;
delete
m_vboCol
;
delete
m_vboCol
;
delete
m_shader
;
delete
m_shader
;
if
(
m_shader2
)
delete
m_shader2
;
}
//Utils::ShaderColorPerVertex* Drawer::getShader()
//{
// return m_shader;
//}
std
::
vector
<
Utils
::
GLSLShader
*>
Drawer
::
getShaders
()
{
std
::
vector
<
Utils
::
GLSLShader
*>
shaders
;
shaders
.
push_back
(
m_shader
);
if
(
m_shader2
)
shaders
.
push_back
(
m_shader2
);
return
shaders
;
}
}
Utils
::
ShaderColorPerVertex
*
Drawer
::
getShader
(
)
void
Drawer
::
updateMatrices
(
const
glm
::
mat4
&
projection
,
const
glm
::
mat4
&
modelview
)
{
{
return
m_shader
;
m_shader
->
updateMatrices
(
projection
,
modelview
);
if
(
m_shader2
)
m_shader2
->
updateMatrices
(
projection
,
modelview
);
}
}
void
Drawer
::
lineWidth
(
float
lw
)
void
Drawer
::
lineWidth
(
float
lw
)
{
{
m_currentWidth
=
lw
;
m_currentWidth
=
lw
;
...
@@ -84,18 +113,17 @@ void Drawer::pointSize(float ps)
...
@@ -84,18 +113,17 @@ void Drawer::pointSize(float ps)
int
Drawer
::
begin
(
GLenum
mode
)
int
Drawer
::
begin
(
GLenum
mode
)
{
{
int
res
=
int
(
m_begins
.
size
());
int
res
=
int
(
m_begins
.
size
());
if
(
mode
==
GL_POINTS
)
if
(
mode
==
GL_POINTS
)
m_begins
.
push_back
(
PrimParam
(
uint32
(
m_dataPos
.
size
()),
mode
,
m_currentSize
));
m_begins
.
push_back
(
PrimParam
(
uint32
(
m_dataPos
.
size
()),
mode
,
m_currentSize
));
else
else
m_begins
.
push_back
(
PrimParam
(
uint32
(
m_dataPos
.
size
()),
mode
,
m_currentWidth
));
m_begins
.
push_back
(
PrimParam
(
uint32
(
m_dataPos
.
size
()),
mode
,
m_currentWidth
));
return
res
;
return
res
;
}
}
void
Drawer
::
end
()
void
Drawer
::
end
()
{
{
if
(
m_begins
.
empty
())
return
;
m_begins
.
back
().
nb
=
uint32
(
m_dataPos
.
size
()
-
m_begins
.
back
().
begin
);
m_begins
.
back
().
nb
=
uint32
(
m_dataPos
.
size
()
-
m_begins
.
back
().
begin
);
}
}
...
@@ -180,18 +208,47 @@ void Drawer::callList(float opacity)
...
@@ -180,18 +208,47 @@ void Drawer::callList(float opacity)
if
(
m_begins
.
empty
())
if
(
m_begins
.
empty
())
return
;
return
;
m_shader
->
setOpacity
(
opacity
);
if
(
GLSLShader
::
CURRENT_OGL_VERSION
>=
3
)
{
m_shader
->
setOpacity
(
opacity
);
m_shader
->
enableVertexAttribs
();
for
(
std
::
vector
<
PrimParam
>::
iterator
pp
=
m_begins
.
begin
();
pp
!=
m_begins
.
end
();
++
pp
)
{
if
(
pp
->
mode
==
GL_POINTS
)
{
glPointSize
(
pp
->
width
);
glDrawArrays
(
GL_POINTS
,
pp
->
begin
,
pp
->
nb
);
}
}
m_shader
->
disableVertexAttribs
();
m_shader
->
enableVertexAttribs
();
m_shader2
->
setOpacity
(
opacity
);
for
(
std
::
vector
<
PrimParam
>::
iterator
pp
=
m_begins
.
begin
();
pp
!=
m_begins
.
end
();
++
pp
)
m_shader2
->
enableVertexAttribs
();
for
(
std
::
vector
<
PrimParam
>::
iterator
pp
=
m_begins
.
begin
();
pp
!=
m_begins
.
end
();
++
pp
)
{
if
(
pp
->
mode
!=
GL_POINTS
)
{
m_shader2
->
setLineWidth
(
pp
->
width
);
m_shader2
->
bind
();
glDrawArrays
(
pp
->
mode
,
pp
->
begin
,
pp
->
nb
);
}
}
m_shader2
->
disableVertexAttribs
();
}
else
{
{
if
(
pp
->
mode
==
GL_POINTS
)
m_shader
->
setOpacity
(
opacity
);
glPointSize
(
pp
->
width
);
m_shader
->
enableVertexAttribs
();
if
((
pp
->
mode
==
GL_LINES
)
||
(
pp
->
mode
==
GL_LINE_LOOP
)
||
(
pp
->
mode
==
GL_LINE_STRIP
))
for
(
std
::
vector
<
PrimParam
>::
iterator
pp
=
m_begins
.
begin
();
pp
!=
m_begins
.
end
();
++
pp
)
glLineWidth
(
pp
->
width
);
{
glDrawArrays
(
pp
->
mode
,
pp
->
begin
,
pp
->
nb
);
if
(
pp
->
mode
==
GL_POINTS
)
glPointSize
(
pp
->
width
);
if
((
pp
->
mode
==
GL_LINES
)
||
(
pp
->
mode
==
GL_LINE_LOOP
)
||
(
pp
->
mode
==
GL_LINE_STRIP
))
glLineWidth
(
pp
->
width
);
glDrawArrays
(
pp
->
mode
,
pp
->
begin
,
pp
->
nb
);
}
m_shader
->
disableVertexAttribs
();
}
}
m_shader
->
disableVertexAttribs
();
}
}
...
@@ -199,64 +256,82 @@ void Drawer::callSubList(int index, float opacity)
...
@@ -199,64 +256,82 @@ void Drawer::callSubList(int index, float opacity)
{
{
if
(
index
>=
int
(
m_begins
.
size
()))
if
(
index
>=
int
(
m_begins
.
size
()))
return
;
return
;
m_shader
->
setOpacity
(
opacity
);
m_shader
->
enableVertexAttribs
();
PrimParam
*
pp
=
&
(
m_begins
[
index
]);
PrimParam
*
pp
=
&
(
m_begins
[
index
]);
if
(
pp
->
mode
==
GL_POINTS
)
if
(
GLSLShader
::
CURRENT_OGL_VERSION
>=
3
)
glPointSize
(
pp
->
width
);
{
if
((
pp
->
mode
==
GL_LINES
)
||
(
pp
->
mode
==
GL_LINE_LOOP
)
||
(
pp
->
mode
==
GL_LINE_STRIP
))
if
(
pp
->
mode
==
GL_POINTS
)
glLineWidth
(
pp
->
width
);
glDrawArrays
(
pp
->
mode
,
pp
->
begin
,
pp
->
nb
);
m_shader
->
disableVertexAttribs
();
}
void
Drawer
::
callSubLists
(
int
first
,
int
nb
,
float
opacity
)
{
m_shader
->
setOpacity
(
opacity
);
m_shader
->
enableVertexAttribs
();
int
last
=
first
+
nb
;
for
(
int
i
=
first
;
i
<
last
;
++
i
)
if
(
i
<
int
(
m_begins
.
size
()))
{
{
PrimParam
*
pp
=
&
(
m_begins
[
i
]);
m_shader
->
setOpacity
(
opacity
);
m_shader
->
enableVertexAttribs
();
if
(
pp
->
mode
==
GL_POINTS
)
glPointSize
(
pp
->
width
);
glPointSize
(
pp
->
width
);
if
((
pp
->
mode
==
GL_LINES
)
||
(
pp
->
mode
==
GL_LINE_LOOP
)
||
(
pp
->
mode
==
GL_LINE_STRIP
))
glLineWidth
(
pp
->
width
);
glDrawArrays
(
pp
->
mode
,
pp
->
begin
,
pp
->
nb
);
glDrawArrays
(
pp
->
mode
,
pp
->
begin
,
pp
->
nb
);
m_shader
->
disableVertexAttribs
();
}
}
else
m_shader
->
disableVertexAttribs
();
}
void
Drawer
::
callSubLists
(
std
::
vector
<
int
>
indices
,
float
opacity
)
{
m_shader
->
setOpacity
(
opacity
);
m_shader
->
enableVertexAttribs
();
for
(
std
::
vector
<
int
>::
iterator
it
=
indices
.
begin
();
it
!=
indices
.
end
();
++
it
)
if
(
*
it
<
int
(
m_begins
.
size
()))
{
{
PrimParam
*
pp
=
&
(
m_begins
[
*
it
]);
m_shader2
->
setOpacity
(
opacity
);
m_shader2
->
enableVertexAttribs
();
if
(
pp
->
mode
==
GL_POINTS
)
m_shader2
->
setLineWidth
(
pp
->
width
);
glPointSize
(
pp
->
width
);
if
((
pp
->
mode
==
GL_LINES
)
||
(
pp
->
mode
==
GL_LINE_LOOP
)
||
(
pp
->
mode
==
GL_LINE_STRIP
))
glLineWidth
(
pp
->
width
);
glDrawArrays
(
pp
->
mode
,
pp
->
begin
,
pp
->
nb
);
glDrawArrays
(
pp
->
mode
,
pp
->
begin
,
pp
->
nb
);
m_shader2
->
disableVertexAttribs
();
}
}
}
m_shader
->
disableVertexAttribs
();
else
{
m_shader
->
setOpacity
(
opacity
);
m_shader
->
enableVertexAttribs
();
if
(
pp
->
mode
==
GL_POINTS
)
glPointSize
(
pp
->
width
);
if
((
pp
->
mode
==
GL_LINES
)
||
(
pp
->
mode
==
GL_LINE_LOOP
)
||
(
pp
->
mode
==
GL_LINE_STRIP
))
glLineWidth
(
pp
->
width
);
glDrawArrays
(
pp
->
mode
,
pp
->
begin
,
pp
->
nb
);
m_shader
->
disableVertexAttribs
();
}
}
}
//void Drawer::callSubLists(int first, int nb, float opacity)
//{
// m_shader->setOpacity(opacity);
// m_shader->enableVertexAttribs();
// int last = first+nb;
// for (int i = first; i< last; ++i)
// if (i < int(m_begins.size()))
// {
// PrimParam* pp = & (m_begins[i]);
// if (pp->mode == GL_POINTS)
// glPointSize(pp->width);
// if ((pp->mode == GL_LINES) || (pp->mode == GL_LINE_LOOP) || (pp->mode == GL_LINE_STRIP))
// glLineWidth(pp->width);
// glDrawArrays(pp->mode, pp->begin, pp->nb);
// }
// m_shader->disableVertexAttribs();
//}
//void Drawer::callSubLists(std::vector<int> indices, float opacity)
//{
// m_shader->setOpacity(opacity);
// m_shader->enableVertexAttribs();
// for (std::vector<int>::iterator it = indices.begin(); it != indices.end(); ++it)
// if (*it < int(m_begins.size()))
// {
// PrimParam* pp = & (m_begins[*it]);
// if (pp->mode == GL_POINTS)
// glPointSize(pp->width);
// if ((pp->mode == GL_LINES) || (pp->mode == GL_LINE_LOOP) || (pp->mode == GL_LINE_STRIP))
// glLineWidth(pp->width);
// glDrawArrays(pp->mode, pp->begin, pp->nb);
// }
// m_shader->disableVertexAttribs();
//}
void
Drawer
::
toSVG
(
Utils
::
SVG
::
SVGOut
&
svg
)
void
Drawer
::
toSVG
(
Utils
::
SVG
::
SVGOut
&
svg
)
{
{
...
...
CGoGN/src/Utils/frameManipulator.cpp
View file @
de2c656c
...
@@ -59,15 +59,18 @@ FrameManipulator::FrameManipulator():
...
@@ -59,15 +59,18 @@ FrameManipulator::FrameManipulator():
m_vboPos
=
new
VBO
();
m_vboPos
=
new
VBO
();
m_vboPos
->
setDataSize
(
3
);
m_vboPos
->
setDataSize
(
3
);
m_vboCol
=
new
VBO
();
//
m_vboCol = new VBO();
m_vboCol
->
setDataSize
(
3
);
//
m_vboCol->setDataSize(3);
m_shader
=
new
ShaderSimpleColor
();
m_shader
=
new
ShaderSimpleColor
();
m_shader
->
setAttributePosition
(
m_vboPos
);
m_shader
->
setAttributePosition
(
m_vboPos
);
GLSLShader
::
registerShader
(
NULL
,
m_shader
);
GLSLShader
::
registerShader
(
NULL
,
m_shader
);
m_shaderBL
=
new
ShaderBoldLines
();
m_shaderBL
->
setAttributePosition
(
m_vboPos
);
GLSLShader
::
registerShader
(
NULL
,
m_shaderBL
);
std
::
vector
<
Geom
::
Vec3f
>
points
;
std
::
vector
<
Geom
::
Vec3f
>
points
;
points
.
reserve
(
6
*
nb_segments
+
30
);
points
.
reserve
(
6
*
nb_segments
+
30
);
points
.
resize
(
6
*
nb_segments
+
6
);
points
.
resize
(
6
*
nb_segments
+
6
);
...
@@ -157,7 +160,7 @@ void FrameManipulator::draw()
...
@@ -157,7 +160,7 @@ void FrameManipulator::draw()
Utils
::
GLSLShader
::
applyTransfo
(
transfoRenderFrame
());
Utils
::
GLSLShader
::
applyTransfo
(
transfoRenderFrame
());
Utils
::
GLSLShader
::
updateCurrentMatrices
();
Utils
::
GLSLShader
::
updateCurrentMatrices
();
glPushAttrib
(
GL_LINE_BIT
);
//
glPushAttrib(GL_LINE_BIT);
m_shader
->
enableVertexAttribs
();
m_shader
->
enableVertexAttribs
();
if
(
!
m_locked_axis
[
Xr
])
if
(
!
m_locked_axis
[
Xr
])
...
@@ -190,11 +193,49 @@ void FrameManipulator::draw()
...
@@ -190,11 +193,49 @@ void FrameManipulator::draw()
glDrawArrays
(
GL_TRIANGLE_STRIP
,
4
*
nb_segments
+
4
,
2
*
nb_segments
+
2
);
glDrawArrays
(
GL_TRIANGLE_STRIP
,
4
*
nb_segments
+
4
,
2
*
nb_segments
+
2
);
}
}
if
((
!
m_locked_axis
[
CENTER
])
&&
(
m_highlighted
==
CENTER
))
if
(
!
m_locked_axis
[
Xt
])
{
if
(
m_highlighted
==
Xt
)
m_shader
->
setColor
(
Geom
::
Vec4f
(
1.0
f
,
1.0
f
,
0.0
f
,
0.0
f
));
else
m_shader
->
setColor
(
Geom
::
Vec4f
(
1.0
f
,
0.0
f
,
0.0
f
,
0.0
f
));
m_shader
->
bind
();
glDrawArrays
(
GL_TRIANGLE_FAN
,
6
*
nb_segments
+
14
,
6
);
}
if
(
!
m_locked_axis
[
Yt
])
{
{
glLineWidth
(
6.0
f
);
if
(
m_highlighted
==
Yt
)
m_shader
->
setColor
(
Geom
::
Vec4f
(
1.0
f
,
1.0
f
,
0.0
f
,
0.0
f
));
m_shader
->
setColor
(
Geom
::
Vec4f
(
1.0
f
,
1.0
f
,
0.0
f
,
0.0
f
));
else
m_shader
->
setColor
(
Geom
::
Vec4f
(
0.0
f
,
1.0
f
,
0.0
f
,
0.0
f
));
m_shader
->
bind
();
m_shader
->
bind
();
glDrawArrays
(
GL_TRIANGLE_FAN
,
6
*
nb_segments
+
22
,
6
);
}
if
(
!
m_locked_axis
[
Zt
])
{
if
(
m_highlighted
==
Zt
)
m_shader
->
setColor
(
Geom
::
Vec4f
(
1.0
f
,
1.0
f
,
0.0
f
,
0.0
f
));
else
m_shader
->
setColor
(
Geom
::
Vec4f
(
0.0
f
,
0.0
f
,
1.0
f
,
0.0
f
));
m_shader
->
bind
();
glDrawArrays
(
GL_TRIANGLE_FAN
,
6
*
nb_segments
+
30
,
6
);
}
m_shader
->
disableVertexAttribs
();
m_shaderBL
->
enableVertexAttribs
();
if
((
!
m_locked_axis
[
CENTER
])
&&
(
m_highlighted
==
CENTER
))
{
m_shaderBL
->
setLineWidth
(
6.0
f
);
m_shaderBL
->
setColor
(
Geom
::
Vec4f
(
1.0
f
,
1.0
f
,
0.0
f
,
0.0
f
));
m_shaderBL
->
bind
();
glDrawArrays
(
GL_LINES
,
6
*
nb_segments
+
6
,
6
);
glDrawArrays
(
GL_LINES
,
6
*
nb_segments
+
6
,
6
);
}
}
else
else
...
@@ -203,15 +244,15 @@ void FrameManipulator::draw()
...
@@ -203,15 +244,15 @@ void FrameManipulator::draw()
{
{
if
(
m_highlighted
==
Xs
)
if
(
m_highlighted
==
Xs
)
{
{
gl
LineWidth
(
6.0
f
);
m_shaderBL
->
set
LineWidth
(
6.0
f
);
m_shader
->
setColor
(
Geom
::
Vec4f
(
1.0
f
,
1.0
f
,
0.0
f
,
0.0
f
));
m_shader
BL
->
setColor
(
Geom
::
Vec4f
(
1.0
f
,
1.0
f
,
0.0
f
,
0.0
f
));
}
}
else
else
{
{
gl
LineWidth
(
3.0
f
);
m_shaderBL
->
set
LineWidth
(
3.0
f
);
m_shader
->
setColor
(
Geom
::
Vec4f
(
1.0
f
,
0.0
f
,
0.0
f
,
0.0
f
));
m_shader
BL
->
setColor
(
Geom
::
Vec4f
(
1.0
f
,
0.0
f
,
0.0
f
,
0.0
f
));
}
}
m_shader
->
bind
();
m_shader
BL
->
bind
();
glDrawArrays
(
GL_LINES
,
6
*
nb_segments
+
6
,
2
);
glDrawArrays
(
GL_LINES
,
6
*
nb_segments
+
6
,
2
);
}
}
...
@@ -219,15 +260,15 @@ void FrameManipulator::draw()
...
@@ -219,15 +260,15 @@ void FrameManipulator::draw()
{
{
if
(
m_highlighted
==
Ys
)
if
(
m_highlighted
==
Ys
)
{
{
gl
LineWidth
(
6.0
f
);
m_shaderBL
->
set
LineWidth
(
6.0
f
);
m_shader
->
setColor
(
Geom
::
Vec4f
(
1.0
f
,
1.0
f
,
0.0
f
,
0.0
f
));
m_shader
BL
->
setColor
(
Geom
::
Vec4f
(
1.0
f
,
1.0
f
,
0.0
f
,
0.0
f
));
}
}
else
else
{
{
gl
LineWidth
(
3.0
f
);
m_shaderBL
->
set
LineWidth
(
3.0
f
);
m_shader
->
setColor
(
Geom
::
Vec4f
(
0.0
f
,
0.7
f
,
0.0
f
,
0.0
f
));
m_shader
BL
->
setColor
(
Geom
::
Vec4f
(
0.0
f
,
0.7
f
,
0.0
f
,
0.0
f
));
}
}
m_shader
->
bind
();
m_shader
BL
->
bind
();
glDrawArrays
(
GL_LINES
,
6
*
nb_segments
+
8
,
2
);
glDrawArrays
(
GL_LINES
,
6
*
nb_segments
+
8
,
2
);
}
}
...
@@ -235,74 +276,69 @@ void FrameManipulator::draw()
...
@@ -235,74 +276,69 @@ void FrameManipulator::draw()
{
{
if
(
m_highlighted
==
Zs
)
if
(
m_highlighted
==
Zs
)
{
{
gl
LineWidth
(
6.0
f
);
m_shaderBL
->
set
LineWidth
(
6.0
f
);
m_shader
->
setColor
(
Geom
::
Vec4f
(
1.0
f
,
1.0
f
,
0.0
f
,
0.0
f
));
m_shader
BL
->
setColor
(
Geom
::
Vec4f
(
1.0
f
,
1.0
f
,
0.0
f
,
0.0
f
));
}
}
else
else
{
{
gl
LineWidth
(
3.0
f
);
m_shaderBL
->
set
LineWidth
(
3.0
f
);
m_shader
->
setColor
(
Geom
::
Vec4f
(
0.0
f
,
0.0
f
,
0.7
f
,
0.0
f
));
m_shader
BL
->
setColor
(
Geom
::
Vec4f
(
0.0
f
,
0.0
f
,
0.7
f
,
0.0
f
));
}
}
m_shader
->
bind
();
m_shader
BL
->
bind
();
glDrawArrays
(
GL_LINES
,
6
*
nb_segments
+
10
,
2
);
glDrawArrays
(
GL_LINES
,
6
*
nb_segments
+
10
,
2
);