From 3865f6a9db58cf66f9392984263510ed0291ed99 Mon Sep 17 00:00:00 2001 From: papush! Date: Tue, 10 Mar 2020 23:45:03 +0100 Subject: [PATCH] archivage initial --- Makefile | 766 +++++++++++++++++++++++++++++++++++++++++++ main.cpp | 11 + mainwindow.cpp | 318 ++++++++++++++++++ mainwindow.h | 59 ++++ mainwindow.ui | 120 +++++++ meshviewerwidget.cpp | 383 ++++++++++++++++++++++ meshviewerwidget.h | 87 +++++ starterLight.pro | 53 +++ 8 files changed, 1797 insertions(+) create mode 100644 Makefile create mode 100644 main.cpp create mode 100644 mainwindow.cpp create mode 100644 mainwindow.h create mode 100644 mainwindow.ui create mode 100644 meshviewerwidget.cpp create mode 100644 meshviewerwidget.h create mode 100644 starterLight.pro diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..00420fe --- /dev/null +++ b/Makefile @@ -0,0 +1,766 @@ +############################################################################# +# Makefile for building: starterLight +# Generated by qmake (3.1) (Qt 5.13.2) +# Project: starterLight.pro +# Template: app +# Command: /usr/lib/qt5/bin/qmake -o Makefile starterLight.pro +############################################################################# + +MAKEFILE = Makefile + +EQ = = + +####### Compiler, tools and options + +CC = gcc +CXX = g++ +DEFINES = -DQT_DEPRECATED_WARNINGS -DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB +CFLAGS = -pipe -O2 -Wall -W -D_REENTRANT -fPIC $(DEFINES) +CXXFLAGS = -pipe -O2 -Wall -W -D_REENTRANT -fPIC $(DEFINES) +INCPATH = -I. -I../OpenMesh/inc -I /usr/include/qt5 -I /usr/include/qt5/QtOpenGL -I /usr/include/qt5/QtWidgets -I /usr/include/qt5/QtGui -I /usr/include/qt5/QtCore -I. -I /usr/include/libdrm -I. -I/usr/lib/qt5/mkspecs/linux-g++ +QMAKE = /usr/lib/qt5/bin/qmake +DEL_FILE = rm -f +CHK_DIR_EXISTS= test -d +MKDIR = mkdir -p +COPY = cp -f +COPY_FILE = cp -f +COPY_DIR = cp -f -R +INSTALL_FILE = install -m 644 -p +INSTALL_PROGRAM = install -m 755 -p +INSTALL_DIR = cp -f -R +QINSTALL = /usr/lib/qt5/bin/qmake -install qinstall +QINSTALL_PROGRAM = /usr/lib/qt5/bin/qmake -install qinstall -exe +DEL_FILE = rm -f +SYMLINK = ln -f -s +DEL_DIR = rmdir +MOVE = mv -f +TAR = tar -cf +COMPRESS = gzip -9f +DISTNAME = starterLight1.0.0 +DISTDIR = /home/papush/m1/mgm/tp2/starterLight/.tmp/starterLight1.0.0 +LINK = g++ +LFLAGS = -Wl,-O1 -Wl,-rpath,/usr/lib +LIBS = $(SUBLIBS) -lglut -lGLU -L/home/papush/m1/mgm/tp2/starterLight/../OpenMesh/liblinux/ -lOpenMeshCore /usr/lib/libQt5OpenGL.so /usr/lib/libQt5Widgets.so /usr/lib/libQt5Gui.so /usr/lib/libQt5Core.so -lGL -lpthread +AR = ar cqs +RANLIB = +SED = sed +STRIP = strip + +####### Output directory + +OBJECTS_DIR = ./ + +####### Files + +SOURCES = main.cpp \ + mainwindow.cpp \ + meshviewerwidget.cpp moc_mainwindow.cpp \ + moc_meshviewerwidget.cpp +OBJECTS = main.o \ + mainwindow.o \ + meshviewerwidget.o \ + moc_mainwindow.o \ + moc_meshviewerwidget.o +DIST = /usr/lib/qt5/mkspecs/features/spec_pre.prf \ + /usr/lib/qt5/mkspecs/common/unix.conf \ + /usr/lib/qt5/mkspecs/common/linux.conf \ + /usr/lib/qt5/mkspecs/common/sanitize.conf \ + /usr/lib/qt5/mkspecs/common/gcc-base.conf \ + /usr/lib/qt5/mkspecs/common/gcc-base-unix.conf \ + /usr/lib/qt5/mkspecs/common/g++-base.conf \ + /usr/lib/qt5/mkspecs/common/g++-unix.conf \ + /usr/lib/qt5/mkspecs/qconfig.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3danimation.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3danimation_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3dcore.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3dcore_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3dextras.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3dextras_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3dinput.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3dinput_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3dlogic.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3dlogic_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3dquick.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3dquick_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3dquickanimation.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3dquickanimation_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3dquickextras.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3dquickextras_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3dquickinput.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3dquickinput_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3dquickrender.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3dquickrender_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3dquickscene2d.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3dquickscene2d_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3drender.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3drender_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_concurrent.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_core.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_core_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_dbus.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_dbus_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_gui.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_gui_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_network.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_network_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_opengl.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_opengl_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_openglextensions.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_packetprotocol_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_printsupport.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_qml.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_qml_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_qmldebug_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_qmldevtools_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_qmltest.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_qmltest_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_quick.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_quick_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_quickparticles_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_quickshapes_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_quickwidgets.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_quickwidgets_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_sql.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_sql_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_testlib.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_testlib_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_widgets.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_xml.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib/qt5/mkspecs/features/qt_functions.prf \ + /usr/lib/qt5/mkspecs/features/qt_config.prf \ + /usr/lib/qt5/mkspecs/linux-g++/qmake.conf \ + /usr/lib/qt5/mkspecs/features/spec_post.prf \ + .qmake.stash \ + /usr/lib/qt5/mkspecs/features/exclusive_builds.prf \ + /usr/lib/qt5/mkspecs/features/toolchain.prf \ + /usr/lib/qt5/mkspecs/features/default_pre.prf \ + /usr/lib/qt5/mkspecs/features/resolve_config.prf \ + /usr/lib/qt5/mkspecs/features/default_post.prf \ + /usr/lib/qt5/mkspecs/features/warn_on.prf \ + /usr/lib/qt5/mkspecs/features/qt.prf \ + /usr/lib/qt5/mkspecs/features/resources.prf \ + /usr/lib/qt5/mkspecs/features/moc.prf \ + /usr/lib/qt5/mkspecs/features/unix/opengl.prf \ + /usr/lib/qt5/mkspecs/features/uic.prf \ + /usr/lib/qt5/mkspecs/features/unix/thread.prf \ + /usr/lib/qt5/mkspecs/features/qmake_use.prf \ + /usr/lib/qt5/mkspecs/features/file_copies.prf \ + /usr/lib/qt5/mkspecs/features/testcase_targets.prf \ + /usr/lib/qt5/mkspecs/features/exceptions.prf \ + /usr/lib/qt5/mkspecs/features/yacc.prf \ + /usr/lib/qt5/mkspecs/features/lex.prf \ + starterLight.pro mainwindow.h \ + meshviewerwidget.h main.cpp \ + mainwindow.cpp \ + meshviewerwidget.cpp +QMAKE_TARGET = starterLight +DESTDIR = +TARGET = starterLight + + +first: all +####### Build rules + +starterLight: ui_mainwindow.h $(OBJECTS) + $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS) + +Makefile: starterLight.pro /usr/lib/qt5/mkspecs/linux-g++/qmake.conf /usr/lib/qt5/mkspecs/features/spec_pre.prf \ + /usr/lib/qt5/mkspecs/common/unix.conf \ + /usr/lib/qt5/mkspecs/common/linux.conf \ + /usr/lib/qt5/mkspecs/common/sanitize.conf \ + /usr/lib/qt5/mkspecs/common/gcc-base.conf \ + /usr/lib/qt5/mkspecs/common/gcc-base-unix.conf \ + /usr/lib/qt5/mkspecs/common/g++-base.conf \ + /usr/lib/qt5/mkspecs/common/g++-unix.conf \ + /usr/lib/qt5/mkspecs/qconfig.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3danimation.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3danimation_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3dcore.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3dcore_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3dextras.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3dextras_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3dinput.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3dinput_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3dlogic.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3dlogic_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3dquick.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3dquick_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3dquickanimation.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3dquickanimation_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3dquickextras.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3dquickextras_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3dquickinput.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3dquickinput_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3dquickrender.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3dquickrender_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3dquickscene2d.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3dquickscene2d_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3drender.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_3drender_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_concurrent.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_core.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_core_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_dbus.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_dbus_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_gui.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_gui_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_network.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_network_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_opengl.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_opengl_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_openglextensions.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_packetprotocol_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_printsupport.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_qml.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_qml_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_qmldebug_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_qmldevtools_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_qmltest.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_qmltest_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_quick.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_quick_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_quickparticles_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_quickshapes_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_quickwidgets.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_quickwidgets_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_sql.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_sql_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_testlib.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_testlib_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_widgets.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_xml.pri \ + /usr/lib/qt5/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib/qt5/mkspecs/features/qt_functions.prf \ + /usr/lib/qt5/mkspecs/features/qt_config.prf \ + /usr/lib/qt5/mkspecs/linux-g++/qmake.conf \ + /usr/lib/qt5/mkspecs/features/spec_post.prf \ + .qmake.stash \ + /usr/lib/qt5/mkspecs/features/exclusive_builds.prf \ + /usr/lib/qt5/mkspecs/features/toolchain.prf \ + /usr/lib/qt5/mkspecs/features/default_pre.prf \ + /usr/lib/qt5/mkspecs/features/resolve_config.prf \ + /usr/lib/qt5/mkspecs/features/default_post.prf \ + /usr/lib/qt5/mkspecs/features/warn_on.prf \ + /usr/lib/qt5/mkspecs/features/qt.prf \ + /usr/lib/qt5/mkspecs/features/resources.prf \ + /usr/lib/qt5/mkspecs/features/moc.prf \ + /usr/lib/qt5/mkspecs/features/unix/opengl.prf \ + /usr/lib/qt5/mkspecs/features/uic.prf \ + /usr/lib/qt5/mkspecs/features/unix/thread.prf \ + /usr/lib/qt5/mkspecs/features/qmake_use.prf \ + /usr/lib/qt5/mkspecs/features/file_copies.prf \ + /usr/lib/qt5/mkspecs/features/testcase_targets.prf \ + /usr/lib/qt5/mkspecs/features/exceptions.prf \ + /usr/lib/qt5/mkspecs/features/yacc.prf \ + /usr/lib/qt5/mkspecs/features/lex.prf \ + starterLight.pro + $(QMAKE) -o Makefile starterLight.pro +/usr/lib/qt5/mkspecs/features/spec_pre.prf: +/usr/lib/qt5/mkspecs/common/unix.conf: +/usr/lib/qt5/mkspecs/common/linux.conf: +/usr/lib/qt5/mkspecs/common/sanitize.conf: +/usr/lib/qt5/mkspecs/common/gcc-base.conf: +/usr/lib/qt5/mkspecs/common/gcc-base-unix.conf: +/usr/lib/qt5/mkspecs/common/g++-base.conf: +/usr/lib/qt5/mkspecs/common/g++-unix.conf: +/usr/lib/qt5/mkspecs/qconfig.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_3danimation.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_3danimation_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_3dcore.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_3dcore_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_3dextras.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_3dextras_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_3dinput.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_3dinput_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_3dlogic.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_3dlogic_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_3dquick.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_3dquick_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_3dquickanimation.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_3dquickanimation_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_3dquickextras.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_3dquickextras_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_3dquickinput.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_3dquickinput_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_3dquickrender.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_3dquickrender_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_3dquickscene2d.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_3dquickscene2d_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_3drender.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_3drender_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_concurrent.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_concurrent_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_core.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_core_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_dbus.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_dbus_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_edid_support_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_egl_support_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_fb_support_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_glx_support_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_gui.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_gui_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_input_support_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_kms_support_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_network.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_network_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_opengl.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_opengl_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_openglextensions.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_packetprotocol_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_printsupport.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_printsupport_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_qml.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_qml_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_qmldebug_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_qmldevtools_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_qmltest.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_qmltest_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_quick.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_quick_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_quickparticles_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_quickshapes_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_quickwidgets.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_quickwidgets_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_service_support_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_sql.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_sql_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_testlib.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_testlib_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_theme_support_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_widgets.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_widgets_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_xml.pri: +/usr/lib/qt5/mkspecs/modules/qt_lib_xml_private.pri: +/usr/lib/qt5/mkspecs/features/qt_functions.prf: +/usr/lib/qt5/mkspecs/features/qt_config.prf: +/usr/lib/qt5/mkspecs/linux-g++/qmake.conf: +/usr/lib/qt5/mkspecs/features/spec_post.prf: +.qmake.stash: +/usr/lib/qt5/mkspecs/features/exclusive_builds.prf: +/usr/lib/qt5/mkspecs/features/toolchain.prf: +/usr/lib/qt5/mkspecs/features/default_pre.prf: +/usr/lib/qt5/mkspecs/features/resolve_config.prf: +/usr/lib/qt5/mkspecs/features/default_post.prf: +/usr/lib/qt5/mkspecs/features/warn_on.prf: +/usr/lib/qt5/mkspecs/features/qt.prf: +/usr/lib/qt5/mkspecs/features/resources.prf: +/usr/lib/qt5/mkspecs/features/moc.prf: +/usr/lib/qt5/mkspecs/features/unix/opengl.prf: +/usr/lib/qt5/mkspecs/features/uic.prf: +/usr/lib/qt5/mkspecs/features/unix/thread.prf: +/usr/lib/qt5/mkspecs/features/qmake_use.prf: +/usr/lib/qt5/mkspecs/features/file_copies.prf: +/usr/lib/qt5/mkspecs/features/testcase_targets.prf: +/usr/lib/qt5/mkspecs/features/exceptions.prf: +/usr/lib/qt5/mkspecs/features/yacc.prf: +/usr/lib/qt5/mkspecs/features/lex.prf: +starterLight.pro: +qmake: FORCE + @$(QMAKE) -o Makefile starterLight.pro + +qmake_all: FORCE + + +all: Makefile starterLight + +dist: distdir FORCE + (cd `dirname $(DISTDIR)` && $(TAR) $(DISTNAME).tar $(DISTNAME) && $(COMPRESS) $(DISTNAME).tar) && $(MOVE) `dirname $(DISTDIR)`/$(DISTNAME).tar.gz . && $(DEL_FILE) -r $(DISTDIR) + +distdir: FORCE + @test -d $(DISTDIR) || mkdir -p $(DISTDIR) + $(COPY_FILE) --parents $(DIST) $(DISTDIR)/ + $(COPY_FILE) --parents /usr/lib/qt5/mkspecs/features/data/dummy.cpp $(DISTDIR)/ + $(COPY_FILE) --parents mainwindow.h meshviewerwidget.h $(DISTDIR)/ + $(COPY_FILE) --parents main.cpp mainwindow.cpp meshviewerwidget.cpp $(DISTDIR)/ + $(COPY_FILE) --parents mainwindow.ui $(DISTDIR)/ + + +clean: compiler_clean + -$(DEL_FILE) $(OBJECTS) + -$(DEL_FILE) *~ core *.core + + +distclean: clean + -$(DEL_FILE) $(TARGET) + -$(DEL_FILE) .qmake.stash + -$(DEL_FILE) Makefile + + +####### Sub-libraries + +mocclean: compiler_moc_header_clean compiler_moc_objc_header_clean compiler_moc_source_clean + +mocables: compiler_moc_header_make_all compiler_moc_objc_header_make_all compiler_moc_source_make_all + +check: first + +benchmark: first + +compiler_rcc_make_all: +compiler_rcc_clean: +compiler_moc_predefs_make_all: moc_predefs.h +compiler_moc_predefs_clean: + -$(DEL_FILE) moc_predefs.h +moc_predefs.h: /usr/lib/qt5/mkspecs/features/data/dummy.cpp + g++ -pipe -O2 -Wall -W -dM -E -o moc_predefs.h /usr/lib/qt5/mkspecs/features/data/dummy.cpp + +compiler_moc_header_make_all: moc_mainwindow.cpp moc_meshviewerwidget.cpp +compiler_moc_header_clean: + -$(DEL_FILE) moc_mainwindow.cpp moc_meshviewerwidget.cpp +moc_mainwindow.cpp: mainwindow.h \ + ../OpenMesh/inc/OpenMesh/Core/IO/MeshIO.hh \ + ../OpenMesh/inc/OpenMesh/Core/System/config.h \ + ../OpenMesh/inc/OpenMesh/Core/System/compiler.hh \ + ../OpenMesh/inc/OpenMesh/Core/System/OpenMeshDLLMacros.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/SR_store.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/SR_types.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/SR_rbo.hh \ + ../OpenMesh/inc/OpenMesh/Core/System/omstream.hh \ + ../OpenMesh/inc/OpenMesh/Core/System/mostream.hh \ + ../OpenMesh/inc/OpenMesh/Core/Utils/GenProg.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/SR_binary.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/SR_binary_spec.hh \ + ../OpenMesh/inc/OpenMesh/Tools/Utils/NumLimitsT.hh \ + ../OpenMesh/inc/OpenMesh/Tools/Utils/Config.hh \ + ../OpenMesh/inc/OpenMesh/Core/Geometry/VectorT.hh \ + ../OpenMesh/inc/OpenMesh/Core/Geometry/Vector11T.hh \ + ../OpenMesh/inc/OpenMesh/Core/Geometry/VectorT_inc.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/Status.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/SR_binary_vector_of_fundamentals.inl \ + ../OpenMesh/inc/OpenMesh/Core/IO/SR_binary_vector_of_string.inl \ + ../OpenMesh/inc/OpenMesh/Core/IO/SR_binary_vector_of_bool.inl \ + ../OpenMesh/inc/OpenMesh/Core/IO/StoreRestore.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/IOManager.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/Options.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/reader/BaseReader.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/importer/BaseImporter.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/BaseKernel.hh \ + ../OpenMesh/inc/OpenMesh/Core/Utils/PropertyContainer.hh \ + ../OpenMesh/inc/OpenMesh/Core/Utils/Property.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/Handles.hh \ + ../OpenMesh/inc/OpenMesh/Core/Utils/BaseProperty.hh \ + ../OpenMesh/inc/OpenMesh/Core/Utils/SingletonT.hh \ + ../OpenMesh/inc/OpenMesh/Core/Utils/SingletonT.cc \ + ../OpenMesh/inc/OpenMesh/Core/IO/writer/BaseWriter.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/exporter/BaseExporter.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/importer/ImporterT.hh \ + ../OpenMesh/inc/OpenMesh/Core/Utils/vector_cast.hh \ + ../OpenMesh/inc/OpenMesh/Core/Utils/vector_traits.hh \ + ../OpenMesh/inc/OpenMesh/Core/Utils/color_cast.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/Attributes.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/exporter/ExporterT.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/IOInstances.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/reader/OBJReader.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/reader/OFFReader.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/reader/PLYReader.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/reader/STLReader.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/reader/OMReader.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/OMFormat.hh \ + ../OpenMesh/inc/OpenMesh/Core/Utils/Endian.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/OMFormatT.cc \ + ../OpenMesh/inc/OpenMesh/Core/IO/writer/OBJWriter.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/writer/OFFWriter.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/writer/STLWriter.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/writer/OMWriter.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/BinaryHelper.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/writer/PLYWriter.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/TriMesh_ArrayKernelT.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/TriConnectivity.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/PolyConnectivity.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/ArrayKernel.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/ArrayItems.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/ArrayKernelT.cc \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/IteratorsT.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/CirculatorsT.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/Traits.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/FinalMeshItemsT.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/AttribKernelT.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/TriMeshT.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/PolyMeshT.hh \ + ../OpenMesh/inc/OpenMesh/Core/Geometry/MathDefs.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/PolyMeshT.cc \ + ../OpenMesh/inc/OpenMesh/Core/Geometry/LoopSchemeMaskT.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/TriMeshT.cc \ + moc_predefs.h \ + /usr/lib/qt5/bin/moc + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/papush/m1/mgm/tp2/starterLight/moc_predefs.h -I/usr/lib/qt5/mkspecs/linux-g++ -I/home/papush/m1/mgm/tp2/starterLight -I/home/papush/m1/mgm/tp2/OpenMesh/inc -I/usr/include/qt5 -I/usr/include/qt5/QtOpenGL -I/usr/include/qt5/QtWidgets -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtCore -I/usr/include/c++/9.2.0 -I/usr/include/c++/9.2.0/x86_64-unknown-linux-gnu -I/usr/include/c++/9.2.0/backward -I/usr/lib/gcc/x86_64-unknown-linux-gnu/9.2.0/include -I/usr/local/include -I/usr/lib/gcc/x86_64-unknown-linux-gnu/9.2.0/include-fixed -I/usr/include mainwindow.h -o moc_mainwindow.cpp + +moc_meshviewerwidget.cpp: meshviewerwidget.h \ + ../OpenMesh/inc/OpenMesh/Core/Geometry/VectorT.hh \ + ../OpenMesh/inc/OpenMesh/Core/Geometry/Vector11T.hh \ + ../OpenMesh/inc/OpenMesh/Core/System/config.h \ + ../OpenMesh/inc/OpenMesh/Core/System/compiler.hh \ + ../OpenMesh/inc/OpenMesh/Core/System/OpenMeshDLLMacros.hh \ + ../OpenMesh/inc/OpenMesh/Core/Geometry/VectorT_inc.hh \ + moc_predefs.h \ + /usr/lib/qt5/bin/moc + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/papush/m1/mgm/tp2/starterLight/moc_predefs.h -I/usr/lib/qt5/mkspecs/linux-g++ -I/home/papush/m1/mgm/tp2/starterLight -I/home/papush/m1/mgm/tp2/OpenMesh/inc -I/usr/include/qt5 -I/usr/include/qt5/QtOpenGL -I/usr/include/qt5/QtWidgets -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtCore -I/usr/include/c++/9.2.0 -I/usr/include/c++/9.2.0/x86_64-unknown-linux-gnu -I/usr/include/c++/9.2.0/backward -I/usr/lib/gcc/x86_64-unknown-linux-gnu/9.2.0/include -I/usr/local/include -I/usr/lib/gcc/x86_64-unknown-linux-gnu/9.2.0/include-fixed -I/usr/include meshviewerwidget.h -o moc_meshviewerwidget.cpp + +compiler_moc_objc_header_make_all: +compiler_moc_objc_header_clean: +compiler_moc_source_make_all: +compiler_moc_source_clean: +compiler_uic_make_all: ui_mainwindow.h +compiler_uic_clean: + -$(DEL_FILE) ui_mainwindow.h +ui_mainwindow.h: mainwindow.ui \ + /usr/lib/qt5/bin/uic \ + meshviewerwidget.h \ + ../OpenMesh/inc/OpenMesh/Core/Geometry/VectorT.hh \ + ../OpenMesh/inc/OpenMesh/Core/Geometry/Vector11T.hh \ + ../OpenMesh/inc/OpenMesh/Core/System/config.h \ + ../OpenMesh/inc/OpenMesh/Core/System/compiler.hh \ + ../OpenMesh/inc/OpenMesh/Core/System/OpenMeshDLLMacros.hh \ + ../OpenMesh/inc/OpenMesh/Core/Geometry/VectorT_inc.hh + /usr/lib/qt5/bin/uic mainwindow.ui -o ui_mainwindow.h + +compiler_yacc_decl_make_all: +compiler_yacc_decl_clean: +compiler_yacc_impl_make_all: +compiler_yacc_impl_clean: +compiler_lex_make_all: +compiler_lex_clean: +compiler_clean: compiler_moc_predefs_clean compiler_moc_header_clean compiler_uic_clean + +####### Compile + +main.o: main.cpp mainwindow.h \ + ../OpenMesh/inc/OpenMesh/Core/IO/MeshIO.hh \ + ../OpenMesh/inc/OpenMesh/Core/System/config.h \ + ../OpenMesh/inc/OpenMesh/Core/System/compiler.hh \ + ../OpenMesh/inc/OpenMesh/Core/System/OpenMeshDLLMacros.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/SR_store.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/SR_types.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/SR_rbo.hh \ + ../OpenMesh/inc/OpenMesh/Core/System/omstream.hh \ + ../OpenMesh/inc/OpenMesh/Core/System/mostream.hh \ + ../OpenMesh/inc/OpenMesh/Core/Utils/GenProg.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/SR_binary.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/SR_binary_spec.hh \ + ../OpenMesh/inc/OpenMesh/Tools/Utils/NumLimitsT.hh \ + ../OpenMesh/inc/OpenMesh/Tools/Utils/Config.hh \ + ../OpenMesh/inc/OpenMesh/Core/Geometry/VectorT.hh \ + ../OpenMesh/inc/OpenMesh/Core/Geometry/Vector11T.hh \ + ../OpenMesh/inc/OpenMesh/Core/Geometry/VectorT_inc.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/Status.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/SR_binary_vector_of_fundamentals.inl \ + ../OpenMesh/inc/OpenMesh/Core/IO/SR_binary_vector_of_string.inl \ + ../OpenMesh/inc/OpenMesh/Core/IO/SR_binary_vector_of_bool.inl \ + ../OpenMesh/inc/OpenMesh/Core/IO/StoreRestore.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/IOManager.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/Options.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/reader/BaseReader.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/importer/BaseImporter.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/BaseKernel.hh \ + ../OpenMesh/inc/OpenMesh/Core/Utils/PropertyContainer.hh \ + ../OpenMesh/inc/OpenMesh/Core/Utils/Property.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/Handles.hh \ + ../OpenMesh/inc/OpenMesh/Core/Utils/BaseProperty.hh \ + ../OpenMesh/inc/OpenMesh/Core/Utils/SingletonT.hh \ + ../OpenMesh/inc/OpenMesh/Core/Utils/SingletonT.cc \ + ../OpenMesh/inc/OpenMesh/Core/IO/writer/BaseWriter.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/exporter/BaseExporter.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/importer/ImporterT.hh \ + ../OpenMesh/inc/OpenMesh/Core/Utils/vector_cast.hh \ + ../OpenMesh/inc/OpenMesh/Core/Utils/vector_traits.hh \ + ../OpenMesh/inc/OpenMesh/Core/Utils/color_cast.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/Attributes.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/exporter/ExporterT.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/IOInstances.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/reader/OBJReader.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/reader/OFFReader.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/reader/PLYReader.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/reader/STLReader.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/reader/OMReader.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/OMFormat.hh \ + ../OpenMesh/inc/OpenMesh/Core/Utils/Endian.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/OMFormatT.cc \ + ../OpenMesh/inc/OpenMesh/Core/IO/writer/OBJWriter.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/writer/OFFWriter.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/writer/STLWriter.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/writer/OMWriter.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/BinaryHelper.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/writer/PLYWriter.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/TriMesh_ArrayKernelT.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/TriConnectivity.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/PolyConnectivity.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/ArrayKernel.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/ArrayItems.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/ArrayKernelT.cc \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/IteratorsT.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/CirculatorsT.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/Traits.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/FinalMeshItemsT.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/AttribKernelT.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/TriMeshT.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/PolyMeshT.hh \ + ../OpenMesh/inc/OpenMesh/Core/Geometry/MathDefs.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/PolyMeshT.cc \ + ../OpenMesh/inc/OpenMesh/Core/Geometry/LoopSchemeMaskT.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/TriMeshT.cc + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o main.cpp + +mainwindow.o: mainwindow.cpp mainwindow.h \ + ../OpenMesh/inc/OpenMesh/Core/IO/MeshIO.hh \ + ../OpenMesh/inc/OpenMesh/Core/System/config.h \ + ../OpenMesh/inc/OpenMesh/Core/System/compiler.hh \ + ../OpenMesh/inc/OpenMesh/Core/System/OpenMeshDLLMacros.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/SR_store.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/SR_types.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/SR_rbo.hh \ + ../OpenMesh/inc/OpenMesh/Core/System/omstream.hh \ + ../OpenMesh/inc/OpenMesh/Core/System/mostream.hh \ + ../OpenMesh/inc/OpenMesh/Core/Utils/GenProg.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/SR_binary.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/SR_binary_spec.hh \ + ../OpenMesh/inc/OpenMesh/Tools/Utils/NumLimitsT.hh \ + ../OpenMesh/inc/OpenMesh/Tools/Utils/Config.hh \ + ../OpenMesh/inc/OpenMesh/Core/Geometry/VectorT.hh \ + ../OpenMesh/inc/OpenMesh/Core/Geometry/Vector11T.hh \ + ../OpenMesh/inc/OpenMesh/Core/Geometry/VectorT_inc.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/Status.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/SR_binary_vector_of_fundamentals.inl \ + ../OpenMesh/inc/OpenMesh/Core/IO/SR_binary_vector_of_string.inl \ + ../OpenMesh/inc/OpenMesh/Core/IO/SR_binary_vector_of_bool.inl \ + ../OpenMesh/inc/OpenMesh/Core/IO/StoreRestore.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/IOManager.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/Options.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/reader/BaseReader.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/importer/BaseImporter.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/BaseKernel.hh \ + ../OpenMesh/inc/OpenMesh/Core/Utils/PropertyContainer.hh \ + ../OpenMesh/inc/OpenMesh/Core/Utils/Property.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/Handles.hh \ + ../OpenMesh/inc/OpenMesh/Core/Utils/BaseProperty.hh \ + ../OpenMesh/inc/OpenMesh/Core/Utils/SingletonT.hh \ + ../OpenMesh/inc/OpenMesh/Core/Utils/SingletonT.cc \ + ../OpenMesh/inc/OpenMesh/Core/IO/writer/BaseWriter.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/exporter/BaseExporter.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/importer/ImporterT.hh \ + ../OpenMesh/inc/OpenMesh/Core/Utils/vector_cast.hh \ + ../OpenMesh/inc/OpenMesh/Core/Utils/vector_traits.hh \ + ../OpenMesh/inc/OpenMesh/Core/Utils/color_cast.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/Attributes.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/exporter/ExporterT.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/IOInstances.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/reader/OBJReader.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/reader/OFFReader.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/reader/PLYReader.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/reader/STLReader.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/reader/OMReader.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/OMFormat.hh \ + ../OpenMesh/inc/OpenMesh/Core/Utils/Endian.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/OMFormatT.cc \ + ../OpenMesh/inc/OpenMesh/Core/IO/writer/OBJWriter.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/writer/OFFWriter.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/writer/STLWriter.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/writer/OMWriter.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/BinaryHelper.hh \ + ../OpenMesh/inc/OpenMesh/Core/IO/writer/PLYWriter.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/TriMesh_ArrayKernelT.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/TriConnectivity.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/PolyConnectivity.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/ArrayKernel.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/ArrayItems.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/ArrayKernelT.cc \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/IteratorsT.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/CirculatorsT.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/Traits.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/FinalMeshItemsT.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/AttribKernelT.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/TriMeshT.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/PolyMeshT.hh \ + ../OpenMesh/inc/OpenMesh/Core/Geometry/MathDefs.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/PolyMeshT.cc \ + ../OpenMesh/inc/OpenMesh/Core/Geometry/LoopSchemeMaskT.hh \ + ../OpenMesh/inc/OpenMesh/Core/Mesh/TriMeshT.cc \ + ui_mainwindow.h \ + meshviewerwidget.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o mainwindow.o mainwindow.cpp + +meshviewerwidget.o: meshviewerwidget.cpp meshviewerwidget.h \ + ../OpenMesh/inc/OpenMesh/Core/Geometry/VectorT.hh \ + ../OpenMesh/inc/OpenMesh/Core/Geometry/Vector11T.hh \ + ../OpenMesh/inc/OpenMesh/Core/System/config.h \ + ../OpenMesh/inc/OpenMesh/Core/System/compiler.hh \ + ../OpenMesh/inc/OpenMesh/Core/System/OpenMeshDLLMacros.hh \ + ../OpenMesh/inc/OpenMesh/Core/Geometry/VectorT_inc.hh + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o meshviewerwidget.o meshviewerwidget.cpp + +moc_mainwindow.o: moc_mainwindow.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_mainwindow.o moc_mainwindow.cpp + +moc_meshviewerwidget.o: moc_meshviewerwidget.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_meshviewerwidget.o moc_meshviewerwidget.cpp + +####### Install + +install: FORCE + +uninstall: FORCE + +FORCE: + diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..b48f94e --- /dev/null +++ b/main.cpp @@ -0,0 +1,11 @@ +#include "mainwindow.h" +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + MainWindow w; + w.show(); + + return a.exec(); +} diff --git a/mainwindow.cpp b/mainwindow.cpp new file mode 100644 index 0000000..99f6cfc --- /dev/null +++ b/mainwindow.cpp @@ -0,0 +1,318 @@ +#include "mainwindow.h" +#include "ui_mainwindow.h" +#include +#include +#include +#include + +void MainWindow::showParts(MyMesh* _mesh) +{ + using namespace std; + map trace; + for (auto v_it = _mesh->vertices_begin(); v_it != _mesh->vertices_end(); ++v_it) { + trace[v_it->idx()] = false; + } + queue remaining; + + vector colors { + MyMesh::Color(0, 0, 255), + MyMesh::Color(0, 255, 0), + MyMesh::Color(0, 255, 255), + MyMesh::Color(255, 0, 0), + MyMesh::Color(255, 0, 255), + MyMesh::Color(255, 255, 0) + }; + + size_t i = 0; + for (auto it : trace) { + if (it.second) continue; + remaining.push(_mesh->vertex_handle(it.first)); + trace[it.first] = true; + while (!remaining.empty()) { + VertexHandle vh = remaining.front(); + remaining.pop(); + for (auto vf_it = _mesh->vf_iter(vh); vf_it.is_valid(); ++vf_it) { + _mesh->set_color(*vf_it, colors[i % colors.size()]); + } + for (auto vv_it = _mesh->vv_iter(vh); vv_it.is_valid(); ++vv_it) { + if (trace[vv_it->idx()]) continue; + remaining.push(*vv_it); + trace[vv_it->idx()] = true; + } + } + i++; + } +} + + +/* **** début de la partie boutons et IHM **** */ +void MainWindow::on_pushButton_clicked() +{ + // on réinitialise l'affichage + resetAllColorsAndThickness(&mesh); + + /* **** à compléter ! (avec la fonction showParts) **** */ + showParts(&mesh); + + // on affiche le nouveau maillage + displayMesh(&mesh); +} + + +void MainWindow::on_pushButton_chargement_clicked() +{ + // fenêtre de sélection des fichiers + // QString fileName = QFileDialog::getOpenFileName(this, tr("Open Mesh"), "", tr("Mesh Files (*.obj)")); + + // // chargement du fichier .obj dans la variable globale "mesh" + // OpenMesh::IO::read_mesh(mesh, fileName.toUtf8().constData()); + OpenMesh::IO::read_mesh(mesh, "../meshFiles/cc.obj"); + + // initialisation des couleurs et épaisseurs (sommets et arêtes) du mesh + resetAllColorsAndThickness(&mesh); + + // on affiche le maillage + displayMesh(&mesh); +} +/* **** fin de la partie boutons et IHM **** */ + + + +/* **** fonctions supplémentaires **** */ +// permet d'initialiser les couleurs et les épaisseurs des élements du maillage +void MainWindow::resetAllColorsAndThickness(MyMesh* _mesh) +{ + for (MyMesh::VertexIter curVert = _mesh->vertices_begin(); curVert != _mesh->vertices_end(); curVert++) + { + _mesh->data(*curVert).thickness = 1; + _mesh->set_color(*curVert, MyMesh::Color(0, 0, 0)); + } + + for (MyMesh::FaceIter curFace = _mesh->faces_begin(); curFace != _mesh->faces_end(); curFace++) + { + _mesh->set_color(*curFace, MyMesh::Color(150, 150, 150)); + } + + for (MyMesh::EdgeIter curEdge = _mesh->edges_begin(); curEdge != _mesh->edges_end(); curEdge++) + { + _mesh->data(*curEdge).thickness = 1; + _mesh->set_color(*curEdge, MyMesh::Color(0, 0, 0)); + } +} + +// charge un objet MyMesh dans l'environnement OpenGL +void MainWindow::displayMesh(MyMesh* _mesh, DisplayMode mode) +{ + GLuint* triIndiceArray = new GLuint[_mesh->n_faces() * 3]; + GLfloat* triCols = new GLfloat[_mesh->n_faces() * 3 * 3]; + GLfloat* triVerts = new GLfloat[_mesh->n_faces() * 3 * 3]; + + int i = 0; + + if(mode == DisplayMode::TemperatureMap) + { + QVector values; + for (MyMesh::VertexIter curVert = _mesh->vertices_begin(); curVert != _mesh->vertices_end(); curVert++) + values.append(fabs(_mesh->data(*curVert).value)); + std::sort(values.begin(), values.end()); + + float range = values.at(values.size()*0.8); + + MyMesh::ConstFaceIter fIt(_mesh->faces_begin()), fEnd(_mesh->faces_end()); + MyMesh::ConstFaceVertexIter fvIt; + + for (; fIt!=fEnd; ++fIt) + { + fvIt = _mesh->cfv_iter(*fIt); + if(_mesh->data(*fvIt).value > 0){triCols[3*i+0] = 255; triCols[3*i+1] = 255 - std::min((_mesh->data(*fvIt).value/range) * 255.0, 255.0); triCols[3*i+2] = 255 - std::min((_mesh->data(*fvIt).value/range) * 255.0, 255.0);} + else{triCols[3*i+2] = 255; triCols[3*i+1] = 255 - std::min((-_mesh->data(*fvIt).value/range) * 255.0, 255.0); triCols[3*i+0] = 255 - std::min((-_mesh->data(*fvIt).value/range) * 255.0, 255.0);} + triVerts[3*i+0] = _mesh->point(*fvIt)[0]; triVerts[3*i+1] = _mesh->point(*fvIt)[1]; triVerts[3*i+2] = _mesh->point(*fvIt)[2]; + triIndiceArray[i] = i; + + i++; ++fvIt; + if(_mesh->data(*fvIt).value > 0){triCols[3*i+0] = 255; triCols[3*i+1] = 255 - std::min((_mesh->data(*fvIt).value/range) * 255.0, 255.0); triCols[3*i+2] = 255 - std::min((_mesh->data(*fvIt).value/range) * 255.0, 255.0);} + else{triCols[3*i+2] = 255; triCols[3*i+1] = 255 - std::min((-_mesh->data(*fvIt).value/range) * 255.0, 255.0); triCols[3*i+0] = 255 - std::min((-_mesh->data(*fvIt).value/range) * 255.0, 255.0);} + triVerts[3*i+0] = _mesh->point(*fvIt)[0]; triVerts[3*i+1] = _mesh->point(*fvIt)[1]; triVerts[3*i+2] = _mesh->point(*fvIt)[2]; + triIndiceArray[i] = i; + + i++; ++fvIt; + if(_mesh->data(*fvIt).value > 0){triCols[3*i+0] = 255; triCols[3*i+1] = 255 - std::min((_mesh->data(*fvIt).value/range) * 255.0, 255.0); triCols[3*i+2] = 255 - std::min((_mesh->data(*fvIt).value/range) * 255.0, 255.0);} + else{triCols[3*i+2] = 255; triCols[3*i+1] = 255 - std::min((-_mesh->data(*fvIt).value/range) * 255.0, 255.0); triCols[3*i+0] = 255 - std::min((-_mesh->data(*fvIt).value/range) * 255.0, 255.0);} + triVerts[3*i+0] = _mesh->point(*fvIt)[0]; triVerts[3*i+1] = _mesh->point(*fvIt)[1]; triVerts[3*i+2] = _mesh->point(*fvIt)[2]; + triIndiceArray[i] = i; + + i++; + } + } + + if(mode == DisplayMode::Normal) + { + MyMesh::ConstFaceIter fIt(_mesh->faces_begin()), fEnd(_mesh->faces_end()); + MyMesh::ConstFaceVertexIter fvIt; + for (; fIt!=fEnd; ++fIt) + { + fvIt = _mesh->cfv_iter(*fIt); + triCols[3*i+0] = _mesh->color(*fIt)[0]; triCols[3*i+1] = _mesh->color(*fIt)[1]; triCols[3*i+2] = _mesh->color(*fIt)[2]; + triVerts[3*i+0] = _mesh->point(*fvIt)[0]; triVerts[3*i+1] = _mesh->point(*fvIt)[1]; triVerts[3*i+2] = _mesh->point(*fvIt)[2]; + triIndiceArray[i] = i; + + i++; ++fvIt; + triCols[3*i+0] = _mesh->color(*fIt)[0]; triCols[3*i+1] = _mesh->color(*fIt)[1]; triCols[3*i+2] = _mesh->color(*fIt)[2]; + triVerts[3*i+0] = _mesh->point(*fvIt)[0]; triVerts[3*i+1] = _mesh->point(*fvIt)[1]; triVerts[3*i+2] = _mesh->point(*fvIt)[2]; + triIndiceArray[i] = i; + + i++; ++fvIt; + triCols[3*i+0] = _mesh->color(*fIt)[0]; triCols[3*i+1] = _mesh->color(*fIt)[1]; triCols[3*i+2] = _mesh->color(*fIt)[2]; + triVerts[3*i+0] = _mesh->point(*fvIt)[0]; triVerts[3*i+1] = _mesh->point(*fvIt)[1]; triVerts[3*i+2] = _mesh->point(*fvIt)[2]; + triIndiceArray[i] = i; + + i++; + } + } + + if(mode == DisplayMode::ColorShading) + { + MyMesh::ConstFaceIter fIt(_mesh->faces_begin()), fEnd(_mesh->faces_end()); + MyMesh::ConstFaceVertexIter fvIt; + for (; fIt!=fEnd; ++fIt) + { + fvIt = _mesh->cfv_iter(*fIt); + triCols[3*i+0] = _mesh->data(*fvIt).faceShadingColor[0]; triCols[3*i+1] = _mesh->data(*fvIt).faceShadingColor[1]; triCols[3*i+2] = _mesh->data(*fvIt).faceShadingColor[2]; + triVerts[3*i+0] = _mesh->point(*fvIt)[0]; triVerts[3*i+1] = _mesh->point(*fvIt)[1]; triVerts[3*i+2] = _mesh->point(*fvIt)[2]; + triIndiceArray[i] = i; + + i++; ++fvIt; + triCols[3*i+0] = _mesh->data(*fvIt).faceShadingColor[0]; triCols[3*i+1] = _mesh->data(*fvIt).faceShadingColor[1]; triCols[3*i+2] = _mesh->data(*fvIt).faceShadingColor[2]; + triVerts[3*i+0] = _mesh->point(*fvIt)[0]; triVerts[3*i+1] = _mesh->point(*fvIt)[1]; triVerts[3*i+2] = _mesh->point(*fvIt)[2]; + triIndiceArray[i] = i; + + i++; ++fvIt; + triCols[3*i+0] = _mesh->data(*fvIt).faceShadingColor[0]; triCols[3*i+1] = _mesh->data(*fvIt).faceShadingColor[1]; triCols[3*i+2] = _mesh->data(*fvIt).faceShadingColor[2]; + triVerts[3*i+0] = _mesh->point(*fvIt)[0]; triVerts[3*i+1] = _mesh->point(*fvIt)[1]; triVerts[3*i+2] = _mesh->point(*fvIt)[2]; + triIndiceArray[i] = i; + + i++; + } + } + + + ui->displayWidget->loadMesh(triVerts, triCols, _mesh->n_faces() * 3 * 3, triIndiceArray, _mesh->n_faces() * 3); + + delete[] triIndiceArray; + delete[] triCols; + delete[] triVerts; + + GLuint* linesIndiceArray = new GLuint[_mesh->n_edges() * 2]; + GLfloat* linesCols = new GLfloat[_mesh->n_edges() * 2 * 3]; + GLfloat* linesVerts = new GLfloat[_mesh->n_edges() * 2 * 3]; + + i = 0; + QHash > edgesIDbyThickness; + for (MyMesh::EdgeIter eit = _mesh->edges_begin(); eit != _mesh->edges_end(); ++eit) + { + float t = _mesh->data(*eit).thickness; + if(t > 0) + { + if(!edgesIDbyThickness.contains(t)) + edgesIDbyThickness[t] = QList(); + edgesIDbyThickness[t].append((*eit).idx()); + } + } + QHashIterator > it(edgesIDbyThickness); + QList > edgeSizes; + while (it.hasNext()) + { + it.next(); + + for(int e = 0; e < it.value().size(); e++) + { + int eidx = it.value().at(e); + + MyMesh::VertexHandle vh1 = _mesh->to_vertex_handle(_mesh->halfedge_handle(_mesh->edge_handle(eidx), 0)); + linesVerts[3*i+0] = _mesh->point(vh1)[0]; + linesVerts[3*i+1] = _mesh->point(vh1)[1]; + linesVerts[3*i+2] = _mesh->point(vh1)[2]; + linesCols[3*i+0] = _mesh->color(_mesh->edge_handle(eidx))[0]; + linesCols[3*i+1] = _mesh->color(_mesh->edge_handle(eidx))[1]; + linesCols[3*i+2] = _mesh->color(_mesh->edge_handle(eidx))[2]; + linesIndiceArray[i] = i; + i++; + + MyMesh::VertexHandle vh2 = _mesh->from_vertex_handle(_mesh->halfedge_handle(_mesh->edge_handle(eidx), 0)); + linesVerts[3*i+0] = _mesh->point(vh2)[0]; + linesVerts[3*i+1] = _mesh->point(vh2)[1]; + linesVerts[3*i+2] = _mesh->point(vh2)[2]; + linesCols[3*i+0] = _mesh->color(_mesh->edge_handle(eidx))[0]; + linesCols[3*i+1] = _mesh->color(_mesh->edge_handle(eidx))[1]; + linesCols[3*i+2] = _mesh->color(_mesh->edge_handle(eidx))[2]; + linesIndiceArray[i] = i; + i++; + } + edgeSizes.append(qMakePair(it.key(), it.value().size())); + } + + ui->displayWidget->loadLines(linesVerts, linesCols, i * 3, linesIndiceArray, i, edgeSizes); + + delete[] linesIndiceArray; + delete[] linesCols; + delete[] linesVerts; + + GLuint* pointsIndiceArray = new GLuint[_mesh->n_vertices()]; + GLfloat* pointsCols = new GLfloat[_mesh->n_vertices() * 3]; + GLfloat* pointsVerts = new GLfloat[_mesh->n_vertices() * 3]; + + i = 0; + QHash > vertsIDbyThickness; + for (MyMesh::VertexIter vit = _mesh->vertices_begin(); vit != _mesh->vertices_end(); ++vit) + { + float t = _mesh->data(*vit).thickness; + if(t > 0) + { + if(!vertsIDbyThickness.contains(t)) + vertsIDbyThickness[t] = QList(); + vertsIDbyThickness[t].append((*vit).idx()); + } + } + QHashIterator > vitt(vertsIDbyThickness); + QList > vertsSizes; + + while (vitt.hasNext()) + { + vitt.next(); + + for(int v = 0; v < vitt.value().size(); v++) + { + int vidx = vitt.value().at(v); + + pointsVerts[3*i+0] = _mesh->point(_mesh->vertex_handle(vidx))[0]; + pointsVerts[3*i+1] = _mesh->point(_mesh->vertex_handle(vidx))[1]; + pointsVerts[3*i+2] = _mesh->point(_mesh->vertex_handle(vidx))[2]; + pointsCols[3*i+0] = _mesh->color(_mesh->vertex_handle(vidx))[0]; + pointsCols[3*i+1] = _mesh->color(_mesh->vertex_handle(vidx))[1]; + pointsCols[3*i+2] = _mesh->color(_mesh->vertex_handle(vidx))[2]; + pointsIndiceArray[i] = i; + i++; + } + vertsSizes.append(qMakePair(vitt.key(), vitt.value().size())); + } + + ui->displayWidget->loadPoints(pointsVerts, pointsCols, i * 3, pointsIndiceArray, i, vertsSizes); + + delete[] pointsIndiceArray; + delete[] pointsCols; + delete[] pointsVerts; +} + + +MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) +{ + ui->setupUi(this); +} + +MainWindow::~MainWindow() +{ + delete ui; +} + + + diff --git a/mainwindow.h b/mainwindow.h new file mode 100644 index 0000000..a39af2d --- /dev/null +++ b/mainwindow.h @@ -0,0 +1,59 @@ +#ifndef MAINWINDOW_H +#define MAINWINDOW_H + +#include +#include +#include +#include + +namespace Ui { +class MainWindow; +} + +using namespace OpenMesh; +using namespace OpenMesh::Attributes; + +struct MyTraits : public OpenMesh::DefaultTraits +{ + // use vertex normals and vertex colors + VertexAttributes( OpenMesh::Attributes::Normal | OpenMesh::Attributes::Color ); + // store the previous halfedge + HalfedgeAttributes( OpenMesh::Attributes::PrevHalfedge ); + // use face normals face colors + FaceAttributes( OpenMesh::Attributes::Normal | OpenMesh::Attributes::Color ); + EdgeAttributes( OpenMesh::Attributes::Color ); + // vertex thickness + VertexTraits{float thickness; float value; Color faceShadingColor;}; + // edge thickness + EdgeTraits{float thickness;}; +}; +typedef OpenMesh::TriMesh_ArrayKernelT MyMesh; + + +enum DisplayMode {Normal, TemperatureMap, ColorShading}; + +class MainWindow : public QMainWindow +{ + Q_OBJECT + +public: + + explicit MainWindow(QWidget *parent = 0); + ~MainWindow(); + + // la fonction à compléter + void showParts(MyMesh* _mesh); + + void displayMesh(MyMesh *_mesh, DisplayMode mode = DisplayMode::Normal); + void resetAllColorsAndThickness(MyMesh* _mesh); + +private slots: + void on_pushButton_chargement_clicked(); + void on_pushButton_clicked(); + +private: + MyMesh mesh; + Ui::MainWindow *ui; +}; + +#endif // MAINWINDOW_H diff --git a/mainwindow.ui b/mainwindow.ui new file mode 100644 index 0000000..26f4c04 --- /dev/null +++ b/mainwindow.ui @@ -0,0 +1,120 @@ + + + MainWindow + + + + 0 + 0 + 632 + 408 + + + + MainWindow + + + + + + + + 150 + 0 + + + + + 150 + 0 + + + + + 4 + + + 3 + + + 3 + + + 3 + + + 3 + + + + + + 200 + 0 + + + + Charger OBJ + + + + + + + Composantes Connexes + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + + + + + 0 + 0 + 632 + 22 + + + + + + TopToolBarArea + + + false + + + + + + + + MeshViewerWidget + QWidget +
meshviewerwidget.h
+ 1 +
+
+ + +
diff --git a/meshviewerwidget.cpp b/meshviewerwidget.cpp new file mode 100644 index 0000000..0aa928d --- /dev/null +++ b/meshviewerwidget.cpp @@ -0,0 +1,383 @@ +#include "meshviewerwidget.h" + +MeshViewerWidget::MeshViewerWidget(QWidget*_parent) : QGLWidget(_parent) +{ + triToDraw = 0; + linesToDraw = 0; + pointsToDraw = 0; + + setMouseTracking(true); + setFocus(); +} + +MeshViewerWidget::MeshViewerWidget( QGLFormat& _fmt, QWidget* _parent ) : QGLWidget( _fmt, _parent ) +{ + setMouseTracking(true); + setFocus(); +} + +void MeshViewerWidget::initializeGL() +{ + glClearColor(1.0, 1.0, 1.0, 1.0); + glEnable( GL_DEPTH_TEST ); + + glLoadIdentity(); + + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + glGetDoublev(GL_MODELVIEW_MATRIX, modelview_matrix_); + set_scene_pos(Vec3f(0.0, 0.0, 0.0), 1.0); + + glEnable( GL_MULTISAMPLE ); +} + +void MeshViewerWidget::translate( const OpenMesh::Vec3f& _trans ) +{ + glLoadIdentity(); + glTranslated( _trans[0], _trans[1], _trans[2] ); + glMultMatrixd( modelview_matrix_ ); + glGetDoublev( GL_MODELVIEW_MATRIX, modelview_matrix_); +} + +void MeshViewerWidget::resizeGL( int _w, int _h ) +{ + update_projection_matrix(); + glViewport(0, 0, _w, _h); + updateGL(); +} + +void MeshViewerWidget::reloadPOV() +{ + glLoadIdentity(); + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + glGetDoublev(GL_MODELVIEW_MATRIX, modelview_matrix_); + set_scene_pos(Vec3f(0.0, 0.0, 0.0), 1.0); + updateGL(); +} + +void MeshViewerWidget::loadMesh(GLfloat* verts, GLfloat* colors, int nVerts, GLuint* triangles, int nTriangles) +{ + GLfloat* vertsColsArray = new GLfloat[nVerts * 2]; + + for(int i = 0; i < nVerts; i = i + 3) + { + int j = 2 * i; + vertsColsArray[j] = colors[i] / 255.0; + vertsColsArray[j+1] = colors[i+1] / 255.0; + vertsColsArray[j+2] = colors[i+2] / 255.0; + + vertsColsArray[j+3] = verts[i]; + vertsColsArray[j+4] = verts[i+1]; + vertsColsArray[j+5] = verts[i+2]; + } + + glGenBuffers( 2, TriDataBuffers ); + + glBindBuffer(GL_ARRAY_BUFFER, TriDataBuffers[0]); + glBufferData(GL_ARRAY_BUFFER, nVerts * 2 * sizeof(GLfloat), vertsColsArray, GL_STATIC_DRAW); + + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, TriDataBuffers[1]); + glBufferData(GL_ELEMENT_ARRAY_BUFFER, nTriangles * sizeof(GLuint), triangles, GL_STATIC_DRAW); + + triToDraw = nTriangles; + + init = true; + + delete[] vertsColsArray; + + updateGL(); +} + +void MeshViewerWidget::loadLines(GLfloat* verts, GLfloat* colors, int nVerts, GLuint* lines, int nLines, QList > es) +{ + GLfloat* linesColsArray = new GLfloat[nVerts * 2]; + + for(int i = 0; i < nVerts; i = i + 3) + { + int j = 2 * i; + linesColsArray[j] = colors[i] / 255.0; + linesColsArray[j+1] = colors[i+1] / 255.0; + linesColsArray[j+2] = colors[i+2] / 255.0; + + linesColsArray[j+3] = verts[i]; + linesColsArray[j+4] = verts[i+1]; + linesColsArray[j+5] = verts[i+2]; + } + + glGenBuffers( 2, LinesDataBuffers ); + + + glBindBuffer(GL_ARRAY_BUFFER, LinesDataBuffers[0]); + glBufferData(GL_ARRAY_BUFFER, nVerts * 2 * sizeof(GLfloat), linesColsArray, GL_STATIC_DRAW); + + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, LinesDataBuffers[1]); + glBufferData(GL_ELEMENT_ARRAY_BUFFER, nLines * sizeof(GLuint), lines, GL_STATIC_DRAW); + + linesToDraw = nLines; + + edgeSizes = es; + + delete[] linesColsArray; + + updateGL(); +} + +void MeshViewerWidget::loadPoints(GLfloat* verts, GLfloat* colors, int nVerts, GLuint* points, int nPoints, QList > vs) +{ + GLfloat* pointsColsArray = new GLfloat[nVerts * 2]; + + for(int i = 0; i < nVerts; i = i + 3) + { + int j = 2 * i; + pointsColsArray[j] = colors[i] / 255.0; + pointsColsArray[j+1] = colors[i+1] / 255.0; + pointsColsArray[j+2] = colors[i+2] / 255.0; + + pointsColsArray[j+3] = verts[i]; + pointsColsArray[j+4] = verts[i+1]; + pointsColsArray[j+5] = verts[i+2]; + } + + glGenBuffers( 2, PointsDataBuffers ); + + + glBindBuffer(GL_ARRAY_BUFFER, PointsDataBuffers[0]); + glBufferData(GL_ARRAY_BUFFER, nVerts * 2 * sizeof(GLfloat), pointsColsArray, GL_STATIC_DRAW); + + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, PointsDataBuffers[1]); + glBufferData(GL_ELEMENT_ARRAY_BUFFER, nPoints * sizeof(GLuint), points, GL_STATIC_DRAW); + + pointsToDraw = nPoints; + + vertsSizes = vs; + + delete[] pointsColsArray; + + updateGL(); +} + + +void MeshViewerWidget::paintGL() +{ + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + glMatrixMode( GL_PROJECTION ); + glLoadMatrixd( projection_matrix_ ); + glMatrixMode( GL_MODELVIEW ); + glLoadMatrixd( modelview_matrix_ ); + + if(triToDraw != 0) + { + glPolygonOffset(1.0, 2); + + // on charge le buffer 0 : une liste de vertex [r, g, b, x, y, z] (6 float) + glBindBuffer(GL_ARRAY_BUFFER, TriDataBuffers[0]); + + // on charge la partie [r, g, b] + glColorPointer( 3, GL_FLOAT, 6 * sizeof(float), 0 ); + // on charge la partie [x, y, z] + glVertexPointer( 3, GL_FLOAT, 6 * sizeof(float), ((float*)NULL + (3)) ); + + + // on charge le buffer 1 : une liste d'ID [v0, v1, v2] (3 int) + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, TriDataBuffers[1]); + + glEnableClientState( GL_VERTEX_ARRAY ); + + // affiche les faces en GL_COLOR_ARRAY + glEnableClientState( GL_COLOR_ARRAY ); + glPolygonMode( GL_FRONT_AND_BACK, GL_FILL ); + + glEnable(GL_POLYGON_OFFSET_FILL); + glDrawElements(GL_TRIANGLES, triToDraw, GL_UNSIGNED_INT, 0); + glDisable(GL_POLYGON_OFFSET_FILL); + + glDisableClientState( GL_COLOR_ARRAY ); + glDisableClientState( GL_VERTEX_ARRAY ); + } + + + if(linesToDraw != 0) + { + // on charge le buffer 0 : une liste de vertex [r, g, b, x, y, z] (6 float) + glBindBuffer(GL_ARRAY_BUFFER, LinesDataBuffers[0]); + + // on charge la partie [r, g, b] + glColorPointer( 3, GL_FLOAT, 6 * sizeof(float), 0 ); + // on charge la partie [x, y, z] + glVertexPointer( 3, GL_FLOAT, 6 * sizeof(float), ((float*)NULL + (3)) ); + + // on charge le buffer 1 : une liste d'ID [v0, v1] (2 int) + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, LinesDataBuffers[1]); + + glEnableClientState( GL_VERTEX_ARRAY ); + glEnableClientState( GL_COLOR_ARRAY ); + + int cur = 0; + for(int i = 0; i < edgeSizes.count(); i++) + { + glLineWidth(edgeSizes.at(i).first); + glDrawElements(GL_LINES, edgeSizes.at(i).second*2, GL_UNSIGNED_INT, (GLvoid*)(sizeof(GLfloat) * cur)); + cur = cur + edgeSizes.at(i).second*2; + } + + glDisableClientState( GL_COLOR_ARRAY ); + glDisableClientState( GL_VERTEX_ARRAY ); + } + + if(pointsToDraw != 0) + { + // on charge le buffer 0 : une liste de vertex [r, g, b, x, y, z] (6 float) + glBindBuffer(GL_ARRAY_BUFFER, PointsDataBuffers[0]); + + // on charge la partie [r, g, b] + glColorPointer( 3, GL_FLOAT, 6 * sizeof(float), 0 ); + // on charge la partie [x, y, z] + glVertexPointer( 3, GL_FLOAT, 6 * sizeof(float), ((float*)NULL + (3)) ); + + // on charge le buffer 1 : une liste d'ID [v0] (1 int) + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, PointsDataBuffers[1]); + + glEnableClientState( GL_VERTEX_ARRAY ); + glEnableClientState( GL_COLOR_ARRAY ); + + int cur = 0; + for(int i = 0; i < vertsSizes.count(); i++) + { + glPointSize(vertsSizes.at(i).first); + glDrawElements(GL_POINTS, vertsSizes.at(i).second, GL_UNSIGNED_INT, (GLvoid*)(sizeof(GLfloat) * cur)); + cur = cur + vertsSizes.at(i).second; + } + + glDisableClientState( GL_COLOR_ARRAY ); + glDisableClientState( GL_VERTEX_ARRAY ); + } +} + + +void MeshViewerWidget::set_scene_pos( const OpenMesh::Vec3f& _cog, float _radius ) +{ + center_ = _cog; + radius_ = _radius; + update_projection_matrix(); + view_all(); +} + +void MeshViewerWidget::update_projection_matrix() +{ + glMatrixMode( GL_PROJECTION ); + glLoadIdentity(); + gluPerspective(45.0, (GLfloat) width() / (GLfloat) height(), 0.01*radius_, 100.0*radius_); + glGetDoublev( GL_PROJECTION_MATRIX, projection_matrix_); + glMatrixMode( GL_MODELVIEW ); +} + +void MeshViewerWidget::view_all() +{ + translate( Vec3f( -(modelview_matrix_[0]*center_[0] + modelview_matrix_[4]*center_[1] + modelview_matrix_[8]*center_[2] + modelview_matrix_[12]), -(modelview_matrix_[1]*center_[0] + modelview_matrix_[5]*center_[1] + modelview_matrix_[9]*center_[2] + modelview_matrix_[13]), -(modelview_matrix_[2]*center_[0] + modelview_matrix_[6]*center_[1] + modelview_matrix_[10]*center_[2] + modelview_matrix_[14] + 3.0*radius_) ) ); +} + +void MeshViewerWidget::mousePressEvent( QMouseEvent* _event ) +{ + last_point_ok_ = map_to_sphere( last_point_2D_=_event->pos(), last_point_3D_ ); +} + +void MeshViewerWidget::mouseMoveEvent( QMouseEvent* _event ) +{ + QPoint newPoint2D = _event->pos(); + + Vec3f newPoint3D; + bool newPoint_hitSphere = map_to_sphere( newPoint2D, newPoint3D ); + + float dx = newPoint2D.x() - last_point_2D_.x(); + float dy = newPoint2D.y() - last_point_2D_.y(); + + float w = width(); + float h = height(); + + if ( (_event->buttons() == (Qt::LeftButton+Qt::MidButton)) || (_event->buttons() == Qt::LeftButton && _event->modifiers() == Qt::ControlModifier)) + { + float value_y = radius_ * dy * 3.0 / h; + translate(Vec3f(0.0, 0.0, value_y)); + } + else if ( (_event->buttons() == Qt::MidButton) || (_event->buttons() == Qt::LeftButton && _event->modifiers() == Qt::AltModifier) ) + { + float z = - (modelview_matrix_[ 2]*center_[0] + modelview_matrix_[ 6]*center_[1] + modelview_matrix_[10]*center_[2] + modelview_matrix_[14]) / (modelview_matrix_[ 3]*center_[0] + modelview_matrix_[ 7]*center_[1] + modelview_matrix_[11]*center_[2] + modelview_matrix_[15]); + float aspect = w / h; + float near_plane = 0.01 * radius_; + float top = tan(45.0f/2.0f*M_PI/180.0f) * near_plane; + float right = aspect*top; + translate(Vec3f( 2.0*dx/w*right/near_plane*z, -2.0*dy/h*top/near_plane*z, 0.0f)); + } + else if (_event->buttons() == Qt::LeftButton) + { + if (last_point_ok_) + { + if ((newPoint_hitSphere = map_to_sphere(newPoint2D, newPoint3D))) + { + Vec3f axis = last_point_3D_ % newPoint3D; + if (axis.sqrnorm() < 1e-7) + axis = Vec3f(1, 0, 0); + else + axis.normalize(); + Vec3f d = last_point_3D_ - newPoint3D; + float t = 0.5 * d.norm() / TRACKBALL_RADIUS; + if (t < -1.0) + t = -1.0; + else if (t > 1.0) + t = 1.0; + float phi = 2.0 * asin(t); + float angle = phi * 180.0 / M_PI; + rotate(axis, angle); + } + } + + } + last_point_2D_ = newPoint2D; + last_point_3D_ = newPoint3D; + last_point_ok_ = newPoint_hitSphere; + updateGL(); +} + +void MeshViewerWidget::mouseReleaseEvent( QMouseEvent* /* _event */ ) +{ + last_point_ok_ = false; +} + +void MeshViewerWidget::wheelEvent(QWheelEvent* _event) +{ + float d = -(float)_event->delta() / 120.0 * 0.2 * radius_; + translate(Vec3f(0.0, 0.0, d)); + updateGL(); + _event->accept(); +} + +bool MeshViewerWidget::map_to_sphere( const QPoint& _v2D, OpenMesh::Vec3f& _v3D ) +{ + double x = (2.0*_v2D.x() - width())/width(); + double y = -(2.0*_v2D.y() - height())/height(); + double xval = x; + double yval = y; + double x2y2 = xval*xval + yval*yval; + + const double rsqr = TRACKBALL_RADIUS*TRACKBALL_RADIUS; + _v3D[0] = xval; + _v3D[1] = yval; + if (x2y2 < 0.5*rsqr) + _v3D[2] = sqrt(rsqr - x2y2); + else + _v3D[2] = 0.5*rsqr/sqrt(x2y2); + + return true; +} + +void MeshViewerWidget::rotate( const OpenMesh::Vec3f& _axis, float _angle ) +{ + Vec3f t( modelview_matrix_[0]*center_[0] + modelview_matrix_[4]*center_[1] + modelview_matrix_[8]*center_[2] + modelview_matrix_[12], modelview_matrix_[1]*center_[0] + modelview_matrix_[5]*center_[1] + modelview_matrix_[9]*center_[2] + modelview_matrix_[13], modelview_matrix_[2]*center_[0] + modelview_matrix_[6]*center_[1] + modelview_matrix_[10]*center_[2] + modelview_matrix_[14] ); + glLoadIdentity(); + glTranslatef(t[0], t[1], t[2]); + glRotated( _angle, _axis[0], _axis[1], _axis[2]); + glTranslatef(-t[0], -t[1], -t[2]); + glMultMatrixd(modelview_matrix_); + glGetDoublev(GL_MODELVIEW_MATRIX, modelview_matrix_); +} diff --git a/meshviewerwidget.h b/meshviewerwidget.h new file mode 100644 index 0000000..9552c03 --- /dev/null +++ b/meshviewerwidget.h @@ -0,0 +1,87 @@ +#ifndef MESHVIEWERWIDGET_H +#define MESHVIEWERWIDGET_H + +#define GL_GLEXT_PROTOTYPES +#include +#include +#include "QMouseEvent" +#include + +#ifdef __APPLE__ + #include + #include + #include +#else + #include + #include + #include + #include + #include +#endif + + + +using namespace OpenMesh; + +const double TRACKBALL_RADIUS = 0.6; + +class MeshViewerWidget : public QGLWidget +{ + Q_OBJECT +public: + MeshViewerWidget(QWidget* _parent=0); + MeshViewerWidget(QGLFormat& _fmt, QWidget* _parent ); + + // events GL + void initializeGL(); + void resizeGL(int _w, int _h); + void paintGL(); + + // gestion de la vue et de la trackball + void update_projection_matrix(); + void view_all(); + void set_scene_pos( const OpenMesh::Vec3f& _cog, float _radius ); + bool map_to_sphere(const QPoint& _point, OpenMesh::Vec3f& _result); + void translate( const OpenMesh::Vec3f& _trans ); + void rotate( const OpenMesh::Vec3f& _axis, float _angle ); + + void reloadPOV(); + void loadMesh(GLfloat* verts, GLfloat* colors, int nVerts, GLuint* triangles, int nTriangles); + void loadLines(GLfloat* verts, GLfloat* colors, int nVerts, GLuint* lines, int nLines, QList > es); + void loadPoints(GLfloat* verts, GLfloat* colors, int nVerts, GLuint* points, int nPoints, QList > vs); + + // buffer pour les VBO + GLuint TriDataBuffers[2]; + // Nombre de triangles du mesh (pour le call du draw) + int triToDraw; + + GLuint LinesDataBuffers[2]; + int linesToDraw; + QList > edgeSizes; + + GLuint PointsDataBuffers[2]; + int pointsToDraw; + QList > vertsSizes; + + // pour savoir si les buffer sont init + bool init; + + // variables de gestion de la vue et de la trackball + OpenMesh::Vec3f center_; + float radius_; + + GLdouble projection_matrix_[16], modelview_matrix_[16]; + + QPoint last_point_2D_; + OpenMesh::Vec3f last_point_3D_; + bool last_point_ok_; +protected: + + // Qt mouse events + virtual void mousePressEvent( QMouseEvent* ); + virtual void mouseReleaseEvent( QMouseEvent* ); + virtual void mouseMoveEvent( QMouseEvent* ); + virtual void wheelEvent( QWheelEvent* ); +}; + +#endif // MESHVIEWERWIDGET_H diff --git a/starterLight.pro b/starterLight.pro new file mode 100644 index 0000000..9c60b29 --- /dev/null +++ b/starterLight.pro @@ -0,0 +1,53 @@ +#------------------------------------------------- +# +# Project created by QtCreator 2018-10-02T16:25:45 +# +#------------------------------------------------- + +QT += core gui +QT += opengl + +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets + +TARGET = starterLight +TEMPLATE = app + +# The following define makes your compiler emit warnings if you use +# any feature of Qt which has been marked as deprecated (the exact warnings +# depend on your compiler). Please consult the documentation of the +# deprecated API in order to know how to port your code away from it. +DEFINES += QT_DEPRECATED_WARNINGS + +# You can also make your code fail to compile if you use deprecated APIs. +# In order to do so, uncomment the following line. +# You can also select to disable deprecated APIs only up to a certain version of Qt. +#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 + + +unix:!macx { + LIBS += -lglut -lGLU + LIBS += -L$$PWD/../OpenMesh/liblinux/ -lOpenMeshCore + + INCLUDEPATH += $$PWD/../OpenMesh/inc/ + DEPENDPATH += $$PWD/../OpenMesh/inc/ + DEPENDPATH += $$PWD/../OpenMesh/liblinux/ +} + +macx: { + INCLUDEPATH += $$PWD/../OpenMesh/inc/ + LIBS += -L$$PWD/../OpenMesh/libosx/ -lOpenMeshCore -lOpenMeshTools +} + +SOURCES += \ + main.cpp \ + mainwindow.cpp \ + meshviewerwidget.cpp + +HEADERS += \ + mainwindow.h \ + meshviewerwidget.h + +FORMS += \ + mainwindow.ui + +