Do not use OpenGL directly, but only using Qt5 OpenGL classes

This commit is contained in:
Laurent Rineau 2017-11-28 17:58:12 +01:00
parent 670cf2bc24
commit 6ec4c12031
15 changed files with 96 additions and 175 deletions

View File

@ -11,10 +11,9 @@ include(${CGAL_USE_FILE})
find_package(Qt5 QUIET COMPONENTS Xml Script OpenGL)
find_package(OpenGL)
find_package(QGLViewer)
if ( CGAL_FOUND AND CGAL_Qt5_FOUND AND Qt5_FOUND AND OPENGL_FOUND AND QGLVIEWER_FOUND )
if ( CGAL_FOUND AND CGAL_Qt5_FOUND AND Qt5_FOUND AND QGLVIEWER_FOUND )
include_directories (${QGLVIEWER_INCLUDE_DIR})
@ -36,6 +35,6 @@ if ( CGAL_FOUND AND CGAL_Qt5_FOUND AND Qt5_FOUND AND OPENGL_FOUND AND QGLVIEWER_
else()
message(STATUS "NOTICE: This demo requires CGAL, the QGLViewer, OpenGL and Qt5, and will not be compiled.")
message(STATUS "NOTICE: This demo requires CGAL, the QGLViewer, and Qt5, and will not be compiled.")
endif()

View File

@ -860,10 +860,10 @@ void Viewer::init()
compile_shaders();
compute_elements();
initialize_buffers();
::glEnable(GL_BLEND);
glEnable(GL_BLEND);
::glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);
::glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_POINT_SMOOTH);
glEnable(GL_LINE_SMOOTH);

View File

@ -304,7 +304,6 @@ if( NOT CGAL_MACROS_FILE_INCLUDED )
endif()
if (${component} STREQUAL "Qt5")
find_package(OpenGL QUIET)
find_package(Qt5 COMPONENTS OpenGL Gui Core Script ScriptTools QUIET)
endif()
@ -341,7 +340,6 @@ if( NOT CGAL_MACROS_FILE_INCLUDED )
if (${component} STREQUAL "Qt5")
set(CGAL_${component}_FOUND TRUE)
find_package(OpenGL QUIET)
find_package(Qt5 COMPONENTS OpenGL Gui Core Script ScriptTools QUIET)
endif()
####message( STATUS "External library ${vlib} after find")

View File

@ -10,7 +10,6 @@
# .. code-block:: cmake
#
# find_package(Qt5 QUIET COMPONENTS OpenGL Svg)
# find_package(OpenGL QUIET)
#
# and defines the variable :variable:`CGAL_Qt5_FOUND` and the function
# :command:`CGAL_setup_CGAL_Qt5_dependencies`.
@ -25,9 +24,7 @@ set(CGAL_SetupCGAL_Qt5Dependencies_included TRUE)
# Used Modules
# ^^^^^^^^^^^^
# - :module:`Qt5Config`
# - :module:`FindOpenGL`
find_package(Qt5 QUIET COMPONENTS OpenGL Svg)
find_package(OpenGL QUIET)
set(CGAL_Qt5_MISSING_DEPS "")
if(NOT Qt5OpenGL_FOUND)
@ -39,9 +36,6 @@ endif()
if(NOT Qt5_FOUND)
set(CGAL_Qt5_MISSING_DEPS "${CGAL_Qt5_MISSING_DEPS} Qt5")
endif()
if(NOT OPENGL_FOUND)
set(CGAL_Qt5_MISSING_DEPS "${CGAL_Qt5_MISSING_DEPS} OpenGL")
endif()
#.rst:
@ -71,9 +65,6 @@ if(NOT CGAL_Qt5_MISSING_DEPS)
endif()
#get_property(QT_UIC_EXECUTABLE TARGET Qt5::uic PROPERTY LOCATION)
#message( STATUS "OpenGL include: ${OPENGL_INCLUDE_DIR}" )
#message( STATUS "OpenGL libraries: ${OPENGL_LIBRARIES}" )
#message( STATUS "OpenGL definitions: ${OPENGL_DEFINITIONS}" )
#message( STATUS "Qt5Core include: ${Qt5Core_INCLUDE_DIRS}" )
#message( STATUS "Qt5 libraries: ${Qt5Core_LIBRARIES} ${Qt5Gui_LIBRARIES} ${Qt5Svg_LIBRARIES} ${Qt5OpenGL_LIBRARIES}" )
#message( STATUS "Qt5Core definitions: ${Qt5Core_DEFINITIONS}" )
@ -105,11 +96,10 @@ function(CGAL_setup_CGAL_Qt5_dependencies target)
if($ENV{CGAL_FAKE_PUBLIC_RELEASE})
target_compile_definitions( ${target} ${keyword} CGAL_FAKE_PUBLIC_RELEASE=1 )
endif()
target_include_directories( ${target} SYSTEM ${keyword} ${OPENGL_INCLUDE_DIR})
target_link_libraries( ${target} ${keyword} CGAL::CGAL)
if(CGAL_HEADER_ONLY)
target_link_libraries( ${target} ${keyword} CGAL::Qt5_moc_and_resources)
endif()
target_link_libraries( ${target} ${keyword} Qt5::OpenGL Qt5::Svg ${OPENGL_LIBRARIES})
target_link_libraries( ${target} ${keyword} Qt5::OpenGL Qt5::Svg)
endfunction()

View File

@ -1,31 +0,0 @@
if ( NOT FIND_OPENGL_WRAPPER )
set ( FIND_OPENGL_WRAPPER 1 )
set(SAVED_CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} )
set(CMAKE_MODULE_PATH ${ORIG_CMAKE_MODULE_PATH} )
find_package(OpenGL)
if ( OPENGL_FOUND AND CGAL_APPLE_LEOPARD )
if ( BUILD_SHARED_LIBS )
uniquely_add_flags( CMAKE_SHARED_LINKER_FLAGS
"-Wl,-dylib_file,/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib"
)
else()
uniquely_add_flags( CMAKE_MODULE_LINKER_FLAGS
"-Wl,-dylib_file,/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib"
)
endif()
endif()
set(CMAKE_MODULE_PATH ${SAVED_CMAKE_MODULE_PATH} )
endif()

View File

@ -40,13 +40,12 @@ include(${CGAL_USE_FILE})
find_package(Qt5 QUIET COMPONENTS Xml Script OpenGL Svg)
find_package(OpenGL)
find_package(QGLViewer)
if ( NOT (CGAL_FOUND AND CGAL_Qt5_FOUND AND Qt5_FOUND AND
OPENGL_FOUND AND QGLVIEWER_FOUND) )
QGLVIEWER_FOUND) )
MESSAGE(STATUS "NOTICE: This demo requires CGAL, QGLViewer, OpenGL "
MESSAGE(STATUS "NOTICE: This demo requires CGAL, QGLViewer, "
"and Qt5, and will not be compiled.")
else()

View File

@ -709,14 +709,14 @@ void Viewer::draw()
color.setRgbF(0.2f, 0.2f, 0.7f);
rendering_program_p_l.bind();
rendering_program_p_l.setAttributeValue(colorLocation,color);
::glLineWidth(size_edges);
glLineWidth(size_edges);
glDrawArrays(GL_LINES, 0, static_cast<GLsizei>(pos_lines.size()/3));
rendering_program_p_l.release();
vao[2].release();
}
if(vertices)
{
::glPointSize(size_points);
glPointSize(size_points);
vao[3].bind();
attrib_buffers(this);
color.setRgbF(.2f,.2f,.6f);
@ -750,23 +750,23 @@ void Viewer::init()
setKeyDescription(Qt::Key_PageUp, "Decrease light (all colors, use shift/alt/ctrl for one rgb component)");
// Light default parameters
::glLineWidth(size_edges);
::glPointSize(size_points);
::glEnable(GL_POLYGON_OFFSET_FILL);
::glPolygonOffset(1.0f,1.0f);
::glClearColor(1.0f,1.0f,1.0f,0.0f);
::glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);
glLineWidth(size_edges);
glPointSize(size_points);
glEnable(GL_POLYGON_OFFSET_FILL);
glPolygonOffset(1.0f,1.0f);
glClearColor(1.0f,1.0f,1.0f,0.0f);
glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);
::glEnable(GL_LIGHTING);
glEnable(GL_LIGHTING);
::glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE);
glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE);
::glShadeModel(GL_FLAT);
::glDisable(GL_BLEND);
::glDisable(GL_LINE_SMOOTH);
::glDisable(GL_POLYGON_SMOOTH_HINT);
::glBlendFunc(GL_ONE, GL_ZERO);
::glHint(GL_LINE_SMOOTH_HINT, GL_FASTEST);
glShadeModel(GL_FLAT);
glDisable(GL_BLEND);
glDisable(GL_LINE_SMOOTH);
glDisable(GL_POLYGON_SMOOTH_HINT);
glBlendFunc(GL_ONE, GL_ZERO);
glHint(GL_LINE_SMOOTH_HINT, GL_FASTEST);
compile_shaders();
}

View File

@ -21,9 +21,6 @@ if(Qt5_FOUND)
add_definitions(-DQT_NO_KEYWORDS)
endif(Qt5_FOUND)
# Find OpenGL
find_package(OpenGL)
# Find CImg
find_path(CIMG_INCLUDE_DIR
NAMES CImg.h
@ -37,7 +34,7 @@ else()
"Try setting the environment variable CIMG_INC_DIR to point to the path of the directory containing CImg.h.")
endif()
if(CGAL_FOUND AND CGAL_Qt5_FOUND AND Qt5_FOUND AND OPENGL_FOUND)
if(CGAL_FOUND AND CGAL_Qt5_FOUND AND Qt5_FOUND)
set(
SRCS
@ -96,7 +93,7 @@ if(CGAL_FOUND AND CGAL_Qt5_FOUND AND Qt5_FOUND AND OPENGL_FOUND)
include(${CGAL_MODULES_DIR}/CGAL_add_test.cmake)
cgal_add_compilation_test(Otr2_demo)
else (CGAL_FOUND AND CGAL_Qt5_FOUND AND Qt5_FOUND AND OPENGL_FOUND )
else (CGAL_FOUND AND CGAL_Qt5_FOUND AND Qt5_FOUND )
set(OTR2_MISSING_DEPS "")
@ -112,10 +109,6 @@ else (CGAL_FOUND AND CGAL_Qt5_FOUND AND Qt5_FOUND AND OPENGL_FOUND )
set(OTR2_MISSING_DEPS "Qt5.4, ${OTR2_MISSING_DEPS}")
endif()
if(NOT OPENGL_FOUND)
set(OTR2_MISSING_DEPS "OpenGL, ${OTR2_MISSING_DEPS}")
endif()
message(STATUS "NOTICE: This demo requires ${OTR2_MISSING_DEPS}and will not be compiled.")
endif (CGAL_FOUND AND CGAL_Qt5_FOUND AND Qt5_FOUND AND OPENGL_FOUND)
endif (CGAL_FOUND AND CGAL_Qt5_FOUND AND Qt5_FOUND)

View File

@ -17,16 +17,13 @@ include( ${CGAL_USE_FILE} )
# Find Qt5 itself
find_package(Qt5 QUIET COMPONENTS Xml OpenGL Help Core)
# Find OpenGL
find_package(OpenGL)
# Find QGLViewer
if(Qt5_FOUND)
add_definitions(-DQT_NO_KEYWORDS)
find_package(QGLViewer)
endif(Qt5_FOUND)
if (CGAL_FOUND AND CGAL_Qt5_FOUND AND OPENGL_FOUND AND Qt5_FOUND AND QGLVIEWER_FOUND AND TARGET Qt5::qcollectiongenerator)
if (CGAL_FOUND AND CGAL_Qt5_FOUND AND Qt5_FOUND AND QGLVIEWER_FOUND AND TARGET Qt5::qcollectiongenerator)
include_directories( ${QGLVIEWER_INCLUDE_DIR} )
@ -86,10 +83,6 @@ else ()
set(PERIODIC_TRIANGULATION_MISSING_DEPS "Qt5, ${PERIODIC_TRIANGULATION_MISSING_DEPS}")
endif()
if(NOT OPENGL_FOUND)
set(PERIODIC_TRIANGULATION_MISSING_DEPS "OpenGL, ${PERIODIC_TRIANGULATION_MISSING_DEPS}")
endif()
if(NOT QGLVIEWER_FOUND)
set(PERIODIC_TRIANGULATION_MISSING_DEPS "QGLViewer, ${PERIODIC_TRIANGULATION_MISSING_DEPS}")
endif()

View File

@ -830,7 +830,7 @@ void Scene::draw() {
rendering_program.bind();
glPointSize(5);
::glEnable(GL_POINT_SMOOTH);
glEnable(GL_POINT_SMOOTH);
rendering_program.setUniformValue(colorLocation[0], color);
glDrawArrays(GL_POINTS, 0, static_cast<GLsizei>(pos_points.size()/3));
@ -844,7 +844,7 @@ void Scene::draw() {
rendering_program.bind();
glPointSize(5);
::glEnable(GL_POINT_SMOOTH);
glEnable(GL_POINT_SMOOTH);
rendering_program.setUniformValue(colorLocation[0], color);
glDrawArrays(GL_POINTS, 0, 1);
rendering_program.release();

View File

@ -23,13 +23,11 @@ include(${CGAL_USE_FILE})
find_package(Qt5 QUIET COMPONENTS Xml Script Help OpenGL Svg)
find_package(OpenGL)
if(Qt5_FOUND)
find_package(QGLViewer)
endif(Qt5_FOUND)
if ( CGAL_FOUND AND CGAL_Qt5_FOUND AND Qt5_FOUND AND OPENGL_FOUND AND QGLVIEWER_FOUND AND TARGET Qt5::qcollectiongenerator )
if ( CGAL_FOUND AND CGAL_Qt5_FOUND AND Qt5_FOUND AND QGLVIEWER_FOUND AND TARGET Qt5::qcollectiongenerator )
include_directories (${QGLVIEWER_INCLUDE_DIR})
@ -66,7 +64,7 @@ if ( CGAL_FOUND AND CGAL_Qt5_FOUND AND Qt5_FOUND AND OPENGL_FOUND AND QGLVIEWER_
include(${CGAL_MODULES_DIR}/CGAL_add_test.cmake)
cgal_add_compilation_test(Periodic_Lloyd_3)
else( CGAL_FOUND AND CGAL_Qt5_FOUND AND Qt5_FOUND AND OPENGL_FOUND AND QGLVIEWER_FOUND AND QT_QCOLLECTIONGENERATOR_EXECUTABLE )
else( CGAL_FOUND AND CGAL_Qt5_FOUND AND Qt5_FOUND AND QGLVIEWER_FOUND AND QT_QCOLLECTIONGENERATOR_EXECUTABLE )
set(PERIODIC_LLOYD_MISSING_DEPS "")
@ -78,10 +76,6 @@ else( CGAL_FOUND AND CGAL_Qt5_FOUND AND Qt5_FOUND AND OPENGL_FOUND AND QGLVIEWER
set(PERIODIC_LLOYD_MISSING_DEPS "Qt5, ${PERIODIC_LLOYD_MISSING_DEPS}")
endif()
if(NOT OPENGL_FOUND)
set(PERIODIC_LLOYD_MISSING_DEPS "OpenGL, ${PERIODIC_LLOYD_MISSING_DEPS}")
endif()
if(NOT QGLVIEWER_FOUND)
set(PERIODIC_LLOYD_MISSING_DEPS "QGLViewer, ${PERIODIC_LLOYD_MISSING_DEPS}")
endif()

View File

@ -32,18 +32,18 @@ Viewer::draw()
initialize_buffers();
QColor color;
//the points
::glEnable(GL_BLEND);
::glEnable(GL_POINT_SMOOTH);
::glHint(GL_POINT_SMOOTH_HINT, GL_NICEST);
::glEnable(GL_LINE_SMOOTH);
::glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);
::glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
::glPointSize(5);
glEnable(GL_BLEND);
glEnable(GL_POINT_SMOOTH);
glHint(GL_POINT_SMOOTH_HINT, GL_NICEST);
glEnable(GL_LINE_SMOOTH);
glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glPointSize(5);
::glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);
::glColor3f(0.2f, 0.2f, 1.f);
::glEnable(GL_POLYGON_OFFSET_FILL);
::glPolygonOffset(3.0f,-3.0f);
glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);
glColor3f(0.2f, 0.2f, 1.f);
glEnable(GL_POLYGON_OFFSET_FILL);
glPolygonOffset(3.0f,-3.0f);
attrib_buffers(this);
@ -56,10 +56,10 @@ Viewer::draw()
vao[0].release();
//The Lines
::glLineWidth(1.);
::glPolygonMode(GL_FRONT_AND_BACK,GL_LINE);
::glColor3ub(0,0,0);
::glDisable(GL_POLYGON_OFFSET_FILL);
glLineWidth(1.);
glPolygonMode(GL_FRONT_AND_BACK,GL_LINE);
glColor3ub(0,0,0);
glDisable(GL_POLYGON_OFFSET_FILL);
vao[1].bind();
color.setRgbF(0.27f, 0.51f, 0.7f);
@ -173,7 +173,7 @@ void Viewer::initialize_buffers()
void Viewer::compute_elements()
{
//::glColor3f(1.0f, 0.72f, 0.06f);
//glColor3f(1.0f, 0.72f, 0.06f);
pos_points.resize(0);
pos_lines.resize(0);
pos_8lines.resize(0);
@ -188,7 +188,7 @@ void Viewer::compute_elements()
pos_points.push_back(p.x()); pos_points.push_back(p.y()); pos_points.push_back(p.z());
}
//::glColor3f(0.27f, 0.51f, 0.7f);
//glColor3f(0.27f, 0.51f, 0.7f);
for (Periodic_triangle_iterator ptit
= scene->periodic_triangulation.periodic_triangles_begin(
P3DT3::UNIQUE);

View File

@ -23,15 +23,12 @@ include( ${CGAL_USE_FILE} )
# Find Qt5 itself
find_package(Qt5 QUIET COMPONENTS Xml Script OpenGL)
# Find OpenGL
find_package(OpenGL)
# Find QGLViewer
if(Qt5_FOUND)
find_package(QGLViewer )
endif(Qt5_FOUND)
if(CGAL_Qt5_FOUND AND Qt5_FOUND AND OPENGL_FOUND AND QGLVIEWER_FOUND)
if(CGAL_Qt5_FOUND AND Qt5_FOUND AND QGLVIEWER_FOUND)
include_directories ( ${QGLVIEWER_INCLUDE_DIR} )
@ -60,7 +57,7 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND AND OPENGL_FOUND AND QGLVIEWER_FOUND)
include(${CGAL_MODULES_DIR}/CGAL_add_test.cmake)
cgal_add_compilation_test(PCA_demo)
else (CGAL_Qt5_FOUND AND Qt5_FOUND AND OPENGL_FOUND AND QGLVIEWER_FOUND)
else (CGAL_Qt5_FOUND AND Qt5_FOUND AND QGLVIEWER_FOUND)
set(PCA_MISSING_DEPS "")
@ -72,14 +69,10 @@ else (CGAL_Qt5_FOUND AND Qt5_FOUND AND OPENGL_FOUND AND QGLVIEWER_FOUND)
set(PCA_MISSING_DEPS "Qt5, ${PCA_MISSING_DEPS}")
endif()
if(NOT OPENGL_FOUND)
set(PCA_MISSING_DEPS "OpenGL, ${PCA_MISSING_DEPS}")
endif()
if(NOT QGLVIEWER_FOUND)
set(PCA_MISSING_DEPS "QGLViewer, ${PCA_MISSING_DEPS}")
endif()
message(STATUS "NOTICE: This demo requires ${PCA_MISSING_DEPS} and will not be compiled.")
endif (CGAL_Qt5_FOUND AND Qt5_FOUND AND OPENGL_FOUND AND QGLVIEWER_FOUND)
endif (CGAL_Qt5_FOUND AND Qt5_FOUND AND QGLVIEWER_FOUND)

View File

@ -24,8 +24,6 @@ include(${CGAL_USE_FILE})
find_package(Qt5 QUIET COMPONENTS OpenGL)
find_package(OpenGL)
if(Qt5_FOUND)
add_definitions(-DQT_NO_KEYWORDS)
find_package(QGLViewer)
@ -49,7 +47,7 @@ else( ACTIVATE_CONCURRENT_TRIANGULATION_3 )
endif( LINK_WITH_TBB )
endif()
if ( CGAL_FOUND AND CGAL_Qt5_FOUND AND Qt5_FOUND AND OPENGL_FOUND AND QGLVIEWER_FOUND )
if ( CGAL_FOUND AND CGAL_Qt5_FOUND AND Qt5_FOUND AND QGLVIEWER_FOUND )
include_directories (${QGLVIEWER_INCLUDE_DIR})
include_directories (BEFORE ../../include ./ )
@ -71,7 +69,6 @@ if ( CGAL_FOUND AND CGAL_Qt5_FOUND AND Qt5_FOUND AND OPENGL_FOUND AND QGLVIEWER_
target_link_libraries( T3_demo PRIVATE ${CGAL_LIBRARIES} ${CGAL_3RD_PARTY_LIBRARIES})
target_link_libraries( T3_demo PRIVATE Qt5::OpenGL ${QGLVIEWER_LIBRARIES})
target_link_libraries( T3_demo PRIVATE ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY})
if(TBB_FOUND)
CGAL_target_use_TBB(T3_demo)
endif()
@ -82,7 +79,7 @@ if ( CGAL_FOUND AND CGAL_Qt5_FOUND AND Qt5_FOUND AND OPENGL_FOUND AND QGLVIEWER_
include(${CGAL_MODULES_DIR}/CGAL_add_test.cmake)
cgal_add_compilation_test(T3_demo)
else( CGAL_FOUND AND Qt5_FOUND AND OPENGL_FOUND AND QGLVIEWER_FOUND )
else( CGAL_FOUND AND Qt5_FOUND AND QGLVIEWER_FOUND )
set(TRIANGULATION_3_MISSING_DEPS "")
@ -94,10 +91,6 @@ else( CGAL_FOUND AND Qt5_FOUND AND OPENGL_FOUND AND QGLVIEWER_FOUND )
set(TRIANGULATION_3_MISSING_DEPS "Qt5, ${TRIANGULATION_3_MISSING_DEPS}")
endif()
if(NOT OPENGL_FOUND)
set(TRIANGULATION_3_MISSING_DEPS "OpenGL, ${TRIANGULATION_3_MISSING_DEPS}")
endif()
if(NOT QGLVIEWER_FOUND)
set(TRIANGULATION_3_MISSING_DEPS "QGLViewer, ${TRIANGULATION_3_MISSING_DEPS}")
endif()
@ -105,4 +98,4 @@ else( CGAL_FOUND AND Qt5_FOUND AND OPENGL_FOUND AND QGLVIEWER_FOUND )
message(STATUS "NOTICE: This demo requires ${TRIANGULATION_3_MISSING_DEPS}and will not be compiled.")
endif( CGAL_FOUND AND CGAL_Qt5_FOUND AND Qt5_FOUND AND OPENGL_FOUND AND QGLVIEWER_FOUND )
endif( CGAL_FOUND AND CGAL_Qt5_FOUND AND Qt5_FOUND AND QGLVIEWER_FOUND )

View File

@ -58,23 +58,23 @@ void Viewer::init()
GLfloat specular_color[4] = { 0.8f, 0.8f, 0.8f, 1.0 };
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, specular_color);
// Set Smooth Shading
::glShadeModel(GL_SMOOTH);
glShadeModel(GL_SMOOTH);
// depth buffer setup
::glClearDepth(1.0f);
::glEnable(GL_DEPTH_TEST);
::glDepthFunc(GL_LEQUAL);
::glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
glClearDepth(1.0f);
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LEQUAL);
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
// enable semi-transparent culling planes
::glEnable(GL_BLEND);
::glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
// anti-aliasing, i.e. reduce jaggedness (if the OpenGL driver permits that)
::glEnable(GL_POINT_SMOOTH);
::glHint(GL_POINT_SMOOTH_HINT, GL_NICEST);
::glEnable(GL_LINE_SMOOTH);
::glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);
glEnable(GL_POINT_SMOOTH);
glHint(GL_POINT_SMOOTH_HINT, GL_NICEST);
glEnable(GL_LINE_SMOOTH);
glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);
/* Add mouse and key description */
setKeyDescription( Qt::CTRL + Qt::Key_G, tr("Generate points") );
@ -1234,7 +1234,7 @@ void Viewer::draw()
// Insert point mode
if( m_curMode == INSERT_PT) {
// Show prompt messages
::glColor3d(0,0,0);
glColor3d(0,0,0);
drawText( width()-200, 20, tr("Shift+Left: Insert a point"), fontPrompt );
drawText( width()-200, 40, tr("Hold Left: Move the point"), fontPrompt );
drawText( width()-200, 60, tr("Return: Insert to DT"), fontPrompt );
@ -1258,7 +1258,7 @@ void Viewer::draw()
}
else if( m_curMode == SELECT) {
// Show prompt messages
::glColor3d(0,0,0);
glColor3d(0,0,0);
drawText( width()-200, 20, tr("Shift+Left: Select"), fontPrompt );
drawText( width()-200, 40, tr("Ctrl+Left: Add selection"),
QFont("Arial", 14) );
@ -1274,7 +1274,7 @@ void Viewer::draw()
}
else if( m_curMode == MOVE ) {
// Show prompt messages
::glColor3d(0,0,0);
glColor3d(0,0,0);
drawText( width()-200, 20, tr("Left Click: Select"), fontPrompt );
if(m_isMoving)
drawText( width()-200, 40, tr("Shift+Wheel: Resize trackball"), fontPrompt );
@ -1288,7 +1288,7 @@ void Viewer::draw()
}
else if( m_curMode == FINDNB ) {
// Show prompt messages
::glColor3d(0,0,0);
glColor3d(0,0,0);
drawText( width()-200, 20, tr("Shift+Left: Place query point"), fontPrompt );
drawText( width()-200, 40, tr("Shift+Wheel: Resize trackball"), fontPrompt );
rendering_program.bind();
@ -1307,7 +1307,7 @@ void Viewer::draw()
}
else if(m_curMode == EMPTYSPH){
// Show prompt messages
::glColor3d(0,0,0);
glColor3d(0,0,0);
drawText( width()-200, 20, tr("Shift+Left: Place query point"), fontPrompt );
drawText( width()-200, 40, tr("Press S: Show/Hide trackball"), fontPrompt );
drawText( width()-200, 60, tr("Shift+Wheel: Resize trackball"), fontPrompt );
@ -1337,7 +1337,7 @@ void Viewer::draw()
switch( m_curStep ) {
case NEWPT:
// Show prompt messages
::glColor3d(0,0,0);
glColor3d(0,0,0);
drawText( 10, 20, tr("Highlight the next-to-insert point"), fontPrompt );
// Highlight the next-to-insert point
rendering_program.bind();
@ -1351,7 +1351,7 @@ void Viewer::draw()
break;
case CELL: // show the tetrahedron that contains the point
// Show prompt messages
::glColor3d(0,0,0);
glColor3d(0,0,0);
drawText( 10, 20, tr("Show the tetrahedron containing the point"), fontPrompt );
drawText( 10, 40, tr("(Only finite facets are drawn)"), fontPrompt );
// Highlight the next-to-insert vertex
@ -1373,7 +1373,7 @@ void Viewer::draw()
break;
case CONFLICT: // show the conflict region
// Show prompt messages
::glColor3d(0,0,0);
glColor3d(0,0,0);
drawText( 10, 20, tr("Show the conflict region"), fontPrompt );
// Highlight the next-to-insert vertex
rendering_program.bind();
@ -1432,7 +1432,7 @@ void Viewer::draw()
if( m_curMode == INSERT_PT) {
// Show prompt messages
::glColor3d(0,0,0);
glColor3d(0,0,0);
drawText( width()-200, 20, tr("Shift+Left: Insert a point"), fontPrompt );
drawText( width()-200, 40, tr("Hold Left: Move the point"), fontPrompt );
drawText( width()-200, 60, tr("Return: Insert to DT"), fontPrompt );
@ -1457,7 +1457,7 @@ void Viewer::draw()
}
else if( m_curMode == SELECT) {
// Show prompt messages
::glColor3d(0,0,0);
glColor3d(0,0,0);
drawText( width()-200, 20, tr("Shift+Left: Select"), fontPrompt );
drawText( width()-200, 40, tr("Ctrl+Left: Add selection"),
QFont("Arial", 14) );
@ -1473,7 +1473,7 @@ void Viewer::draw()
}
else if( m_curMode == MOVE ) {
// Show prompt messages
::glColor3d(0,0,0);
glColor3d(0,0,0);
drawText( width()-200, 20, tr("Left Click: Select"), fontPrompt );
if(m_isMoving)
drawText( width()-200, 40, tr("Shift+Wheel: Resize trackball"), fontPrompt );
@ -1487,7 +1487,7 @@ void Viewer::draw()
}
else if( m_curMode == FINDNB ) {
// Show prompt messages
::glColor3d(0,0,0);
glColor3d(0,0,0);
drawText( width()-200, 20, tr("Shift+Left: Place query point"), fontPrompt );
drawText( width()-200, 40, tr("Shift+Wheel: Resize trackball"), fontPrompt );
rendering_program_spheres.bind();
@ -1507,7 +1507,7 @@ void Viewer::draw()
}
else if(m_curMode == EMPTYSPH){
// Show prompt messages
::glColor3d(0,0,0);
glColor3d(0,0,0);
drawText( width()-200, 20, tr("Shift+Left: Place query point"), fontPrompt );
drawText( width()-200, 40, tr("Press S: Show/Hide trackball"), fontPrompt );
drawText( width()-200, 60, tr("Shift+Wheel: Resize trackball"), fontPrompt );
@ -1539,7 +1539,7 @@ void Viewer::draw()
switch( m_curStep ) {
case NEWPT:
// Show prompt messages
::glColor3d(0,0,0);
glColor3d(0,0,0);
drawText( 10, 20, tr("Highlight the next-to-insert point"), fontPrompt );
// Highlight the next-to-insert point
rendering_program_spheres.bind();
@ -1552,7 +1552,7 @@ void Viewer::draw()
break;
case CELL: // show the tetrahedron that contains the point
// Show prompt messages
::glColor3d(0,0,0);
glColor3d(0,0,0);
drawText( 10, 20, tr("Show the tetrahedron containing the point"), fontPrompt );
drawText( 10, 40, tr("(Only finite facets are drawn)"), fontPrompt );
// Highlight the next-to-insert vertex
@ -1573,7 +1573,7 @@ void Viewer::draw()
break;
case CONFLICT: // show the conflict region
// Show prompt messages
::glColor3d(0,0,0);
glColor3d(0,0,0);
drawText( 10, 20, tr("Show the conflict region"), fontPrompt );
// Highlight the next-to-insert vertex
rendering_program_spheres.bind();
@ -1610,7 +1610,7 @@ void Viewer::draw()
}
if( m_curMode == INSERT_V ) {
// Show prompt messages
::glColor3d(0,0,0);
glColor3d(0,0,0);
drawText( width()-200, 20, tr("Shift+Left: Insert a vertex"), fontPrompt );
drawText( width()-200, 40, tr("Shift+Wheel: Resize trackball"), fontPrompt );
@ -1680,35 +1680,35 @@ void Viewer::drawWithNames()
for(int i=0; i<m_pScene->m_vhArray.size(); ++i) {
// push a name for each point onto the name stack
// note: it can NOT be used between glBegin and glEnd
::glPushName( i );
glPushName( i );
// draw the point
::glBegin(GL_POINTS);
glBegin(GL_POINTS);
Point_3& p = m_pScene->m_vhArray.at(i)->point();
::glVertex3f(p.x(), p.y(), p.z());
::glEnd();
glVertex3f(p.x(), p.y(), p.z());
glEnd();
// pop one name off the top of the name stack
::glPopName();
glPopName();
}//end-for-points
// push a name for the newly inserted point
if( m_curMode == INSERT_PT && m_hasNewPt ) {
::glPushName( ::GLuint(-1) );
::glBegin(GL_POINTS);
::glVertex3f(m_newPt.x(), m_newPt.y(), m_newPt.z());
::glEnd();
::glPopName();
glPushName( GLuint(-1) );
glBegin(GL_POINTS);
glVertex3f(m_newPt.x(), m_newPt.y(), m_newPt.z());
glEnd();
glPopName();
}//end-if-newPt
}
void Viewer::endSelection(const QPoint& /*point*/)
{
// flush GL buffers
::glFlush();
glFlush();
// reset GL_RENDER mode (was GL_SELECT) and get the number of selected points
size_t nSel = ::glRenderMode(GL_RENDER);
size_t nSel = glRenderMode(GL_RENDER);
/* No selection */
if( nSel <= 0 ) {
@ -1722,7 +1722,7 @@ void Viewer::endSelection(const QPoint& /*point*/)
/* Check whether the new point is clicked on */
else if( m_curMode == INSERT_PT ) {
if( m_hasNewPt && (selectBuffer())[3] == ::GLuint(-1) )
if( m_hasNewPt && (selectBuffer())[3] == GLuint(-1) )
m_isMoving = true;
}//end-if-inspt