Fixed SLA clippling plane & picking.
This commit is contained in:
parent
95eb98a103
commit
80afb6da78
@ -3527,12 +3527,12 @@ void GLCanvas3D::_picking_pass() const
|
|||||||
glsafe(::glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT));
|
glsafe(::glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT));
|
||||||
|
|
||||||
m_camera_clipping_plane = m_gizmos.get_sla_clipping_plane();
|
m_camera_clipping_plane = m_gizmos.get_sla_clipping_plane();
|
||||||
if (! m_use_VBOs) {
|
if (m_camera_clipping_plane.is_active()) {
|
||||||
::glClipPlane(GL_CLIP_PLANE0, (GLdouble*)m_camera_clipping_plane.get_data());
|
::glClipPlane(GL_CLIP_PLANE0, (GLdouble*)m_camera_clipping_plane.get_data());
|
||||||
::glEnable(GL_CLIP_PLANE0);
|
::glEnable(GL_CLIP_PLANE0);
|
||||||
}
|
}
|
||||||
_render_volumes_for_picking();
|
_render_volumes_for_picking();
|
||||||
if (! m_use_VBOs)
|
if (m_camera_clipping_plane.is_active())
|
||||||
::glDisable(GL_CLIP_PLANE0);
|
::glDisable(GL_CLIP_PLANE0);
|
||||||
|
|
||||||
m_gizmos.render_current_gizmo_for_picking_pass(m_selection);
|
m_gizmos.render_current_gizmo_for_picking_pass(m_selection);
|
||||||
|
@ -88,6 +88,8 @@ public:
|
|||||||
m_data[3] = offset;
|
m_data[3] = offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool is_active() const { return m_data[3] != DBL_MAX; }
|
||||||
|
|
||||||
static ClippingPlane ClipsNothing() { return ClippingPlane(Vec3d(0., 0., 1.), DBL_MAX); }
|
static ClippingPlane ClipsNothing() { return ClippingPlane(Vec3d(0., 0., 1.), DBL_MAX); }
|
||||||
|
|
||||||
const double* get_data() const { return m_data; }
|
const double* get_data() const { return m_data; }
|
||||||
|
@ -706,7 +706,7 @@ void GLGizmoSlaSupports::update_cache_entry_normal(unsigned int i) const
|
|||||||
|
|
||||||
ClippingPlane GLGizmoSlaSupports::get_sla_clipping_plane() const
|
ClippingPlane GLGizmoSlaSupports::get_sla_clipping_plane() const
|
||||||
{
|
{
|
||||||
if (!m_model_object)
|
if (!m_model_object || m_state == Off)
|
||||||
return ClippingPlane::ClipsNothing();
|
return ClippingPlane::ClipsNothing();
|
||||||
|
|
||||||
Eigen::Matrix<GLdouble, 4, 4, Eigen::DontAlign> modelview_matrix;
|
Eigen::Matrix<GLdouble, 4, 4, Eigen::DontAlign> modelview_matrix;
|
||||||
@ -939,7 +939,6 @@ std::string GLGizmoSlaSupports::on_get_name() const
|
|||||||
void GLGizmoSlaSupports::on_set_state()
|
void GLGizmoSlaSupports::on_set_state()
|
||||||
{
|
{
|
||||||
if (m_state == On && m_old_state != On) { // the gizmo was just turned on
|
if (m_state == On && m_old_state != On) { // the gizmo was just turned on
|
||||||
|
|
||||||
if (is_mesh_update_necessary())
|
if (is_mesh_update_necessary())
|
||||||
update_mesh();
|
update_mesh();
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user