Commit Graph

341 Commits

Author SHA1 Message Date
Maxime Gimeno 02eb21861e Make light position fixed in Camera coordinates and fix reset Default. 2018-07-16 15:17:52 +02:00
Maxime Gimeno 5f7293f859 Finish removing polyhedorn 2018-07-12 10:18:50 +02:00
Maxime Gimeno 9d62107031 Change default values for lighting. 2018-07-06 16:35:51 +02:00
Maxime Gimeno 2e3e9df90a Fix conflicts 2018-07-05 16:16:18 +02:00
Maxime Gimeno b69175a868 Use texture() instead of deprecated texture2D() in recent shaders. 2018-07-05 15:55:19 +02:00
Maxime Gimeno c8adcc3e86 Downgrade to GLSL 150 (OpenGL 3.3) because of some systems. 2018-07-05 15:35:30 +02:00
Maxime Gimeno b68f63e508 Fix basic_viewer 2018-07-05 15:21:58 +02:00
Maxime Gimeno 09d7625e67 Fix Possible memory leaks 2018-07-05 14:47:06 +02:00
Maxime Gimeno 4c58c214c3 make 2 versions of all shaders : 1 for --old and 1 for 4.3 2018-07-05 14:34:10 +02:00
Maxime Gimeno 640243a658 Remove calls to glLineWidth, as OpenGL ES 2.0 doesn't support higher than 1. 2018-07-05 10:37:41 +02:00
Maxime Gimeno 9a258d081f Remove remaining calls to GL_LIGHT smth 2018-07-04 15:37:24 +02:00
Maxime Gimeno 6469c0e03b Fix misisng alpha default values and polylines slider 2018-07-03 14:09:45 +02:00
Maxime Gimeno f80f318503 WIP Shader fixes 2018-07-03 13:53:57 +02:00
Maxime Gimeno 2c83b2c2f5 Revert "Remove #version 120 for ES 2 functions shaders. NEED tests on mesa !"
This reverts commit d60ae02340.
2018-07-03 12:28:16 +02:00
Maxime Gimeno d60ae02340 Remove #version 120 for ES 2 functions shaders. NEED tests on mesa ! 2018-07-03 11:12:03 +02:00
Jane c8c12fdff4 Fix textured_polys. 2018-07-02 16:26:55 +01:00
Maxime Gimeno 441f2b8da6 Applying new Edges and fix buggy items. 2018-07-02 16:40:45 +02:00
Maxime Gimeno 2dbbca18b3 Restore point size 2018-07-02 11:09:48 +02:00
Jane 93d9e8e227 Remove problematic gl calls 2018-06-29 18:40:25 +02:00
Laurent Rineau cb8608f763
Merge branch 'master' into Demo-Lighting_system-GF 2018-06-29 17:06:44 +02:00
Maxime Gimeno 8e0c840bbb Set default alpha to 1.0f for PROGRAM_WITH_LIGHT 2018-06-29 15:35:29 +02:00
Maxime Gimeno 301416c151 Pass to OpenGL_ES_2 2018-06-29 12:06:06 +02:00
Maxime Gimeno ff0ad59da9 Fixes :
- Make lighting changes real-time
 - Light is fixed in the world
 - slider is horizontal
2018-06-28 17:01:16 +02:00
Maxime Gimeno 36ebd8e5c4 Fix conflicts and fix missing moc 2018-06-21 15:29:16 +02:00
Maxime Gimeno 2f4f22d236 Merge remote-tracking branch 'cgal/master' into Demo-Add_transparency-GF 2018-06-21 11:42:26 +02:00
Laurent Rineau 2b33f0690d Merge pull request #2687 from maxGimeno/OpenGL-debugging_option-GF
Polyhedron demo: add some OpenGL debugging information
2018-06-14 17:36:54 +02:00
Maxime Gimeno 8e7fc0b852 Merge master to solve conflicts. 2018-06-13 09:40:56 +02:00
Laurent Rineau 5c6eee6ac3 Merge branch 'master' into Demo-Fix_orthographic_projection-GF 2018-06-12 18:01:55 +02:00
Maxime Gimeno a095792683 Remove remaining include Viewer.moc 2018-06-12 09:02:22 +02:00
Maxime Gimeno 4843c0562c remove unwanted include for moc. 2018-06-12 08:59:12 +02:00
Maxime Gimeno 87fb0cc39a Remove remaining legacy code that generated GL_STACK_UNDERFLOW errors. 2018-06-07 09:56:08 +02:00
Maxime Gimeno 1c6a96d1cf Add qt gl debugging info. 2018-06-06 16:59:34 +02:00
Laurent Rineau 74844169a7 Fix a few -Wconversion warnings in the demo 2018-06-05 14:48:47 +02:00
Maxime Gimeno 21359581c4 Add viewer's modifications to CGAL_Qt5 2018-06-04 12:00:22 +02:00
Maxime Gimeno 12ba1084ad Add classes and functions to factorize and facilitate rendering an item.
Make Surface_mesh_item use them.
2018-06-04 12:00:21 +02:00
Maxime Gimeno 0add845fae Fix snapshot with alpha. 2018-06-04 12:00:21 +02:00
Maxime Gimeno cf6a5f7cae fix moverowup/down 2018-06-04 12:00:21 +02:00
Maxime Gimeno c8d5453a31 Fix c3t3 and add action to viewer to set total number of passes 2018-06-04 12:00:21 +02:00
Maxime Gimeno 1882658a94 Add depth-peeling to the scene. 2018-06-04 12:00:20 +02:00
Maxime Gimeno 025968643b Fix_orthographic selection 2018-06-04 11:44:56 +02:00
Maxime Gimeno f22c2864a0 Put qglviewer in the namespace CGAL 2018-05-17 10:20:56 +02:00
Jane Tournois e9c7042c05 remove include of moc file (causes a warning on msvc) 2018-05-17 10:20:56 +02:00
Jane Tournois 3042d68fb1 remove code that depends on QGLViewer version 2018-05-17 10:20:56 +02:00
Maxime Gimeno 495b087c6f Finish snapshot implem 2018-05-17 10:20:56 +02:00
Maxime Gimeno 37c52e6bbc WIP SnapShot and SPDX LICENSE update. 2018-05-17 10:20:56 +02:00
Maxime Gimeno 0c74a68952 WIP Header_only 2018-05-17 10:20:55 +02:00
Maxime Gimeno cbc0ce1130 remove snapsjot functions and files from qglviewer 2018-05-17 10:20:55 +02:00
Maxime Gimeno 50c471253a Move context creation to qglviewer. Replace initializeGL() by init()in demo viewer 2018-05-17 10:20:55 +02:00
Maxime Gimeno 4c6546a558 Clean-up the viewer 2018-05-17 10:20:55 +02:00
Maxime Gimeno 39a0b8a8d5 Restore pivot point drawing 2018-05-17 10:20:55 +02:00
Maxime Gimeno 3995c80524 fix warning in camera and fix fps display in cgal_qt5 so we don't have to overwrite it in the viewer
Begin the implementation of the graphcal hints
2018-05-17 10:20:55 +02:00
Maxime Gimeno 6584abd90b Use integrated qglviewer for 3D demos 2018-05-17 10:20:55 +02:00
Maxime Gimeno b92a328df2 Add a UI feature to the viewer to change the lighting settings 2018-04-20 15:48:18 +02:00
Maxime Gimeno da90725e66 Don't use a pointer for the fbo. 2018-03-20 14:05:45 +01:00
Maxime Gimeno 85524668e8 Fix for 2.7 2018-03-20 12:49:55 +01:00
Maxime Gimeno 32f0a3fba8 Fix for qglviewer 2.6. 2.7 only captures the background. 2018-03-20 12:42:55 +01:00
Maxime Gimeno 2b250c5d07 Fix the RotationPoint setting. 2018-03-07 09:52:47 +01:00
Maxime Gimeno 59e8a2c52c fix volume planes manipulation 2018-03-01 08:40:26 +01:00
Maxime Gimeno 3c770e07df Fix 2d painting for selection 2018-03-01 08:40:26 +01:00
Maxime Gimeno ade8725046 add a makeCurrent() in the item's constructor 2018-03-01 08:40:26 +01:00
Andreas Fabri 7d5b51c4f0 cast and reindent 2018-02-01 16:36:23 +00:00
Maxime Gimeno 3629e3e7de add Grid and axis 2018-01-18 15:05:01 +01:00
Maxime Gimeno 96c145d0b6 F5 reloads selected items 2018-01-17 15:41:33 +01:00
Laurent Rineau da6ef91463 Remove the #include of OpenGL headers 2017-11-28 18:19:39 +01:00
Laurent Rineau edac6aaa5a Merge pull request #2454 from maxGimeno/Mesh_3_plugin_fix-GF
Polyhedron demo: Fix tets rendering on Windows
2017-10-13 16:53:26 +02:00
Maxime Gimeno 53829630ec Darken the intersection color and avoid the Z-fighting. 2017-09-22 15:12:02 +02:00
Maxime Gimeno 72d9349287 Fixes warnings about double 2017-09-18 16:03:06 +02:00
Maxime Gimeno 689d364e80 Adapt viewer for libqglviewer 2.7. 2017-08-30 10:27:00 +02:00
Maxime Gimeno c95975f2c2 Fix after rebase 2017-08-30 10:27:00 +02:00
Maxime Gimeno 92814e8858 Rename recentFunctions; 2017-08-30 10:27:00 +02:00
Maxime Gimeno bca74e4a8e Rename isRecent into isOpenGL_4_3 2017-08-30 10:26:59 +02:00
Maxime Gimeno 71a8c1c178 Use GS in modern openGL for an optimal flat shading. 2017-08-30 10:26:58 +02:00
Maxime Gimeno 6393d0bc3e Sets an OpenGL 4.3 format if possible and create a QOpenGLFunctions_4_3_Compatibility in that case. 2017-08-30 10:25:05 +02:00
Maxime Gimeno 484e03570f - add clipping planes management in main shaders. (with and without lights, flat and no_selection)
- Add plugin for use of a clipping box
2017-08-01 14:59:58 +02:00
Maxime Gimeno 3c08937edb Fix display all. 2017-07-25 10:01:28 +02:00
Maxime Gimeno 49818ae489 Split the display into vertices, edges and faces text lists. Add an option for each in the contextMenu. 2017-07-25 10:01:28 +02:00
Laurent Rineau 0395b84475 Merge pull request #2243 from maxGimeno/Ortho_projection_fix-GF
Polyhedron_demo: Fix Orthogonal projection
2017-07-17 11:55:48 +02:00
Maxime Gimeno 587ff1536b Fix Ortho projection 2017-07-10 15:56:32 +02:00
Laurent Rineau 86ecb6e466 Merge pull request #2028 from maxGimeno/Update_Three_doc-GF
Update the Three documentation
2017-06-16 12:07:05 +02:00
Laurent Rineau 01fc5c3b33 Merge branch 'releases/CGAL-4.10-branch' 2017-06-16 11:45:45 +02:00
Maxime Gimeno 2de2df3442 Fix the width/height problems with retina 2017-06-01 16:28:43 +02:00
Maxime Gimeno ba9049ec5c Enhance axis system 2017-06-01 13:08:36 +02:00
Maxime Gimeno 965e6f545d Make Viewer_interface more interface-like. 2017-05-30 15:12:31 +02:00
Laurent Rineau 3e05153f75 Merge pull request #2104 from maxGimeno/Polyhedron_demo-Fix_draw_two_sides-GF
Polyhedron_demo: Fix draw two sides for Polyhedron
2017-05-19 10:29:49 +02:00
Maxime Gimeno 0ebf21b969 Change is_two_side in draw_two_sides 2017-05-16 13:02:12 +02:00
Maxime Gimeno 30609733bf Change shortcut for O+Left clic 2017-05-12 09:24:18 +02:00
Maxime Gimeno ac12ae5e42 Add the description of Z+clic to the help page. 2017-05-12 09:24:18 +02:00
Maxime Gimeno 7e87b88762 Make a zoomToPosition function for the Scene_polyhedron_item 2017-05-12 09:24:18 +02:00
Maxime Gimeno afc555b173 Don't use the PROGRAM_FLAT if the draw_two_sides is off. 2017-05-10 15:56:12 +02:00
Maxime Gimeno a9046343f9 fixes 2017-03-01 14:36:24 +01:00
Maxime Gimeno 0632a86970 Factorize program declaration and use special shader for flat shading without pre computing the normals. 2017-02-21 15:20:33 +01:00
Maxime Gimeno 4eb6d260ca Clean -up 2017-02-08 11:42:16 +01:00
Maxime Gimeno ebfa4a7ea5 Add a shrinking possibility to the facets of the c3t3_item.
To apply it, either use the slider in the item's menu, or use + and - when the item is selected.
2017-02-08 11:42:15 +01:00
Maxime Gimeno cf53fda4e5 Fix synthax error. 2017-01-12 12:50:17 +01:00
Maxime Gimeno ec4deace20 Update ids when invalidateOpenGLBuffers() is called 2017-01-12 12:05:39 +01:00
Maxime Gimeno 109c8569e4 Add offset support to the selection_plugin 2016-12-02 12:04:33 +01:00
Maxime Gimeno faf7c4ae3f Add an offset support to the polyhedron_item 2016-12-02 12:03:46 +01:00
Maxime Gimeno ca5ea47e48 Add an offset vector to the viewer. 2016-12-02 12:03:46 +01:00
Laurent Rineau 030292a279 Merge pull request #1674 from maxGimeno/Polyhedron_demo-Switch_orthographic_perspective_projection-GF
Polyhedron_demo: Make it possible to switch between projection modes
2016-12-01 17:39:17 +01:00
Maxime Gimeno 366d1571c2 Add a switch in the View menu to make the Projection matrix Orthographic. 2016-11-09 09:40:20 +01:00
Maxime Gimeno 334414fa04 Fix the picking 2016-11-08 14:52:12 +01:00
Laurent Rineau 4c58c675d6 Merge pull request #1358 from maxGimeno/Polyhedron_demo-D_pointer_for_the_viewer-GF
Polyhedron_demo : Viewer use a d-pointer
2016-10-17 10:01:05 +02:00
Jane Tournois 24b17c9efd add missing includes 2016-09-22 14:17:48 +02:00
Laurent Rineau 4f0ea28069 Fix the indentation (cont.) 2016-09-22 13:28:07 +02:00
Laurent Rineau 83eff08e47 Fix the indentation 2016-09-22 13:27:20 +02:00
Maxime Gimeno e82a888680 Fix
- fix the transparancy of the snapshots taken with Ctrl+C.
The solutions for Linux and Windows are not compatible, so use a #if defined.
2016-09-22 13:08:01 +02:00
Maxime Gimeno 32f207e22b Move all the concerned code from Viewer.h to the Viewer_impl struct. 2016-08-23 16:24:04 +02:00
Maxime Gimeno f3b15e3026 Fix the Clibboard typo. 2016-08-23 11:32:52 +02:00
Maxime Gimeno d9e7a4c46a Fix the shortcuts for saveSnapshot() and sendSnapshotToClipBoard. 2016-08-11 15:46:27 +02:00
Maxime Gimeno 8af1edec81 Implement a snapshot to clipboard. Bind it to Ctrl+Print Screen. 2016-08-11 15:45:31 +02:00
Maxime Gimeno 9f7a30ba36 Implement transparent background. 2016-08-10 12:57:07 +02:00
Maxime Gimeno 971b259c26 Change the option "use white background" into a Combox proposing use current background color, use transparent background and choose background color.
Implement choose background color.
2016-08-10 12:27:28 +02:00
Maxime Gimeno 5d1da468bf Move the projectionMatrix to the private struct and fix a warning 2016-07-08 11:11:24 +02:00
Maxime Gimeno 416c23bd1e Add an option to keep the ratio.
- Using #include "Viewer.moc" in the .cpp makes the use of qt5_generate_moc useless i nthe CMakeLists, as Automoc is now able to deal with it.
2016-07-07 09:31:24 +02:00
Maxime Gimeno 3e36894696 Second way
- I finally found a solution to set manually the frustum ! This version use the same algorithm as did QGLViewer so all of the previous version problems are gone.
2016-07-06 14:40:49 +02:00
Maxime Gimeno 79f49cfec8 First way
- pass the camera in orthographic mode and zoom on screen part to recreate the original image with zoomed parts. If the factor is too high, there will be near plane problems, as the zoom might make the camera go through the item. Plus the separation between the parts is visible. At last, everything that is not centered in the screen will be deformed because of the orthographic projection.
2016-07-06 11:08:19 +02:00
Maxime Gimeno 5cb2823b3f Restore the Snapshot feature. 2016-06-28 10:13:14 +02:00
Sebastien Loriot c43bdc8d0f Merge pull request #1171 from maxGimeno/Deformation_use_selection_item-GF
Polyhedron_demo : Deformation use selection item
2016-06-15 17:03:53 +02:00
Maxime Gimeno 9a454ebfee Fix the camera bug when Shift+D+click 2016-06-14 14:37:00 +02:00
Maxime Gimeno c7b61b7caf Fix the picking 2016-06-14 14:32:24 +02:00
Maxime Gimeno eff2126be1 Fix the update of the viewer
- replaces updateGL() calls by update() calls. Before the viewer used a painter, updateGL() was ok, because it was the QGLViewer that painted the scene. But a QPainter can only update its painting through a paintEvent() function, which is called by update() but not by updateGL().
- Fixes the bug that made the selection empty when an item was erased.
- Fixes the background color.
2016-06-06 15:10:58 +02:00
Maxime Gimeno 46e13ba697 Fix
- When D was not released, the text was not cleared.
- Set the distance line bold.
2016-05-31 10:39:25 +02:00
Maxime Gimeno 084662ea87 Print the information on screen. 2016-05-27 17:02:08 +02:00
Maxime Gimeno aa51101d29 Merge branch 'Polyhedron_demo-_display_distance_between_points-GF-old' into Polyhedron_demo-_display_distance_between_points-GF
Conflicts:
	Polyhedron/demo/Polyhedron/Viewer.cpp
	Polyhedron/demo/Polyhedron/Viewer.h
2016-05-27 16:06:48 +02:00
Sébastien Loriot 11b8eb428b Merge pull request #558 from maxGimeno/Polyhedron_demo-display_indices_of_primitives-GF
Display indices of Polyhedron_item primitives in Polyhedron_demo
2016-05-26 17:09:23 +02:00
Maxime Gimeno 9abe59c917 Fix the bug of single textItems on multiple scene_items. 2016-05-25 17:02:26 +02:00
Maxime Gimeno 56caa543f0 Fixes the Splatting draw code which fixes the picking problem. 2016-05-24 16:20:46 +02:00
Maxime Gimeno 3f0f27a5ac Plugin API made in CamelCase 2016-05-06 11:12:09 +02:00
Maxime Gimeno 9fb5702610 debugging the rebase and externalizing the TextRender
- Avoids the #include "Viewer.h" in Scene_polyhedron_item.h"
2016-04-27 15:17:27 +02:00
Maxime Gimeno 81cc6992e7 Clean-up 2016-04-27 14:32:51 +02:00
Maxime Gimeno 4a7fe6ddda Fixes memoryleak 2016-04-27 14:32:49 +02:00
Maxime Gimeno 9d183d2e6e User can set the max
- Addition of an action in the View menu to set the max_text_items.
2016-04-27 14:32:49 +02:00
Maxime Gimeno 3561497d71 New stuff
- Addition of a maximum number of TextItems that can be displayed at the same time
- The viewer now prints text via the TextRenderer and not via the QGLWidget::renderText() function.
2016-04-27 14:32:49 +02:00
Maxime Gimeno 89156854e2 WIP Restoring the messages displaying
- The viewer only draws text (with QGLWidget::renderText() ) if the painter draws at least one character (space doesn't count).
2016-04-27 14:32:49 +02:00
Maxime Gimeno 5edb90a7a0 Moved the viewer's QPainter to the Viewer_impl. 2016-04-27 14:32:48 +02:00
Maxime Gimeno 80afed00c3 Clean-up 2016-04-27 14:32:22 +02:00
Maxime Gimeno 6048e6721d Clean-up and documentation for TextRenderer 2016-04-27 14:32:22 +02:00
Maxime Gimeno 6519196423 Fix
- The viewer was disappearing when the selection changed.
2016-04-27 14:31:21 +02:00
Maxime Gimeno 09501f6282 Clean-up 2016-04-27 14:31:21 +02:00
Maxime Gimeno 8950ccc5e7 Clean-up 2016-04-27 14:31:21 +02:00
Maxime GIMENO 9a7c42db76 Windows Fix + conditionnal textItems creation
- It seems that overloading the paintEvent was sufficient to get rid of
  the "black screen" bug, and initializing targeted_id to NULL fixed the
  segfault occuring when loading an item.

- The textItems containing the ids are only computed when ctrl+I are
  pressed. There could be an optimization here, so that it is computed
  only once, and not every time the ids are displayed.
2016-04-27 14:31:21 +02:00
Maxime Gimeno 31a493b670 H window update 2016-04-27 14:28:48 +02:00
Maxime Gimeno 4403dfbb6c Print of the Ids of all primitves and the selected one available 2016-04-27 14:28:48 +02:00
Maxime Gimeno 4572da6e7c WIP :Use the aabb_tree to choose which ids to display 2016-04-27 14:26:05 +02:00
Maxime Gimeno 540bc5dfcb Some clean-up 2016-04-27 14:19:02 +02:00
Maxime Gimeno 408402d1b5 Print selected primitive Id is done.
- Uses the aabb_tree to find the selected facet
- iterate its vertices and halfedges and compute the distances between the Id spots and the selected point
- only prints the spot with the smallest distance.
2016-04-27 14:18:03 +02:00
Maxime Gimeno 68e585d36b WIP : Use AABB_Tree to find the selected Id quicker 2016-04-27 14:15:50 +02:00
Maxime Gimeno d20a35d282 Selected id displayed one by one
- Segfault when removing the item from the scene
2016-04-27 14:15:50 +02:00
Maxime Gimeno cbdbc725aa Ids update :
- Ids are all displayed where they should
- WIP : only print the ones that are not hidden by another item or facet
- TO DO: Change the API so that the destructor of an item can remove the textItems from the renderer.
2016-04-27 14:12:22 +02:00
Maxime Gimeno f76ba833e3 Working text drawing on top of the scene. 2016-04-27 14:06:27 +02:00