From be72f858e4b84c35213accd013e95ee0876bb43d Mon Sep 17 00:00:00 2001 From: Marco Callieri Date: Thu, 20 Oct 2016 12:24:09 +0200 Subject: [PATCH] updated rubberband drawing mode (for meshlab measurement filter) --- wrap/gui/rubberband.cpp | 55 ++++++++++++++++++++++------------------- 1 file changed, 29 insertions(+), 26 deletions(-) diff --git a/wrap/gui/rubberband.cpp b/wrap/gui/rubberband.cpp index 4ba2001b..f08d0002 100644 --- a/wrap/gui/rubberband.cpp +++ b/wrap/gui/rubberband.cpp @@ -146,36 +146,39 @@ void Rubberband::RenderLine(QGLWidget* gla, Point3f AA, Point3f BB) glDisable(GL_LIGHTING); glDisable(GL_TEXTURE_2D); glDepthMask(false); - glLineWidth(2.5); - glPointSize(6.0); - glEnable(GL_BLEND); - glBlendFunc(GL_ONE_MINUS_DST_COLOR, GL_ONE_MINUS_SRC_COLOR); glEnable(GL_LINE_SMOOTH); glEnable(GL_POINT_SMOOTH); glColor(color); - glLineWidth(2.0); - glPointSize(5.0); - glBegin(GL_LINES); - glVertex(AA); - glVertex(BB); - glEnd(); - glBegin(GL_POINTS); - glVertex(AA); - glVertex(BB); - glEnd(); - glDepthFunc(GL_GREATER); - glLineWidth(1.0f); - glPointSize(2.0f); - glBegin(GL_LINES); - glVertex(AA); - glVertex(BB); - glEnd(); - glBegin(GL_POINTS); - glVertex(AA); - glVertex(BB); - glEnd(); - glDepthFunc(GL_LESS); + // IN FRONT OF SURFACE + glDepthFunc(GL_LESS); + glLineWidth(2.5); + glPointSize(6.0); + glBegin(GL_LINES); + glVertex(AA); + glVertex(BB); + glEnd(); + glBegin(GL_POINTS); + glVertex(AA); + glVertex(BB); + glEnd(); + + // BEHIND SURFACE + glDepthFunc(GL_GREATER); + glEnable(GL_BLEND); + glBlendFunc(GL_ONE_MINUS_DST_COLOR, GL_ONE_MINUS_SRC_COLOR); + glLineWidth(1.5f); + glPointSize(4.0f); + glBegin(GL_LINES); + glVertex(AA); + glVertex(BB); + glEnd(); + glBegin(GL_POINTS); + glVertex(AA); + glVertex(BB); + glEnd(); + + glDepthFunc(GL_LESS); glPopAttrib(); assert(!glGetError()); }