Tech ENABLE_RAYCAST_PICKING - Raytraced picking of Cut Gizmo

This commit is contained in:
enricoturri1966 2022-06-13 14:54:52 +02:00
parent 0cedf331b1
commit 0a7dae6df6
3 changed files with 20 additions and 8 deletions

View file

@ -269,13 +269,24 @@ void GLGizmoCut::on_render()
#endif // !ENABLE_GL_CORE_PROFILE
}
#if !ENABLE_RAYCAST_PICKING
void GLGizmoCut::on_render_for_picking()
#if ENABLE_RAYCAST_PICKING
void GLGizmoCut::on_register_raycasters_for_picking()
{
// the gizmo grabbers are rendered on top of the scene, so the raytraced picker should take it into account
m_parent.set_raycaster_gizmos_on_top(true);
}
void GLGizmoCut::on_unregister_raycasters_for_picking()
{
m_parent.set_raycaster_gizmos_on_top(false);
}
#else
void GLGizmoCut::on_render_for_picking()
{
glsafe(::glDisable(GL_DEPTH_TEST));
render_grabbers_for_picking(m_parent.get_selection().get_bounding_box());
}
#endif // !ENABLE_RAYCAST_PICKING
#endif // ENABLE_RAYCAST_PICKING
void GLGizmoCut::on_render_input_window(float x, float y, float bottom_limit)
{

View file

@ -68,9 +68,12 @@ protected:
virtual void on_start_dragging() override;
virtual void on_dragging(const UpdateData& data) override;
virtual void on_render() override;
#if !ENABLE_RAYCAST_PICKING
#if ENABLE_RAYCAST_PICKING
virtual void on_register_raycasters_for_picking() override;
virtual void on_unregister_raycasters_for_picking() override;
#else
virtual void on_render_for_picking() override;
#endif // !ENABLE_RAYCAST_PICKING
#endif // ENABLE_RAYCAST_PICKING
virtual void on_render_input_window(float x, float y, float bottom_limit) override;
private:

View file

@ -654,9 +654,7 @@ void GLGizmoScale3D::on_unregister_raycasters_for_picking()
{
m_parent.set_raycaster_gizmos_on_top(false);
}
#endif // ENABLE_RAYCAST_PICKING
#if !ENABLE_RAYCAST_PICKING
#else
void GLGizmoScale3D::on_render_for_picking()
{
glsafe(::glDisable(GL_DEPTH_TEST));