Commit Graph

296 Commits

Author SHA1 Message Date
Maxime Gimeno f80f318503 WIP Shader fixes 2018-07-03 13:53:57 +02: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
Maxime Gimeno 54e0e16167 Restore 4.3 context 2018-07-02 10:04:40 +02:00
Jane 93d9e8e227 Remove problematic gl calls 2018-06-29 18:40:25 +02:00
Laurent Rineau 742dd907ed Merge pull request #3074 from maxGimeno/Demo-Add_transparency-GF
Polyhedron demo: add Depth-peeling and Rendering Helpers
2018-06-28 16:04:12 +02:00
Maxime Gimeno 5b4cf6304d Add missing dummy useless doc for getters and setters 2018-06-26 14:57:44 +02:00
Laurent Rineau ffd78e296e Workaround a strange error from g++
There was a warning:
```
[100%] Building CXX object demo/Polyhedron/CMakeFiles/polyhedron_demo.dir/MainWindow.cpp.o
/home/lrineau/Git/cgal/Polyhedron/demo/Polyhedron/MainWindow.cpp: In constructor ‘MainWindow::MainWindow(bool, QWidget*)’:
/home/lrineau/Git/cgal/Polyhedron/demo/Polyhedron/MainWindow.cpp:312:11: error: request for member ‘addDockWidget’ is ambiguous
     this->addDockWidget(Qt::BottomDockWidgetArea, dock);
           ^~~~~~~~~~~~~
In file included from /home/lrineau/Git/cgal/Polyhedron/demo/Polyhedron/MainWindow.h:8:0,
                 from /home/lrineau/Git/cgal/Polyhedron/demo/Polyhedron/MainWindow.cpp:4:
/home/lrineau/Git/cgal/Three/include/CGAL/Three/Three.h:54:8: note: candidates are: void CGAL::Three::Three::addDockWidget(QDockWidget*)
   void addDockWidget(QDockWidget* dock_widget);
        ^~~~~~~~~~~~~
In file included from /usr/include/qt5/QtWidgets/QMainWindow:1:0,
                 from /home/lrineau/Git/cgal/GraphicsView/include/CGAL/Qt/DemosMainWindow.h:31,
                 from /home/lrineau/Git/cgal/Polyhedron/demo/Polyhedron/MainWindow.h:7,
                 from /home/lrineau/Git/cgal/Polyhedron/demo/Polyhedron/MainWindow.cpp:4:
/usr/include/qt5/QtWidgets/qmainwindow.h:166:10: note:                 void QMainWindow::addDockWidget(Qt::DockWidgetArea, QDockWidget*, Qt::Orientation)
     void addDockWidget(Qt::DockWidgetArea area, QDockWidget *dockwidget,
          ^~~~~~~~~~~~~
/usr/include/qt5/QtWidgets/qmainwindow.h:165:10: note:                 void QMainWindow::addDockWidget(Qt::DockWidgetArea, QDockWidget*)
     void addDockWidget(Qt::DockWidgetArea area, QDockWidget *dockwidget);
          ^~~~~~~~~~~~~
```

That is strange, because the call is not ambiguous at all: all three
candidates have different numbers of parameters!

Anyway, the workaround is an explicit qualified call to
`QMainWindow::addDockWidget`.
2018-06-13 10:45:33 +02:00
Maxime Gimeno 6b5a162d1d Fix doc 2018-06-13 09:35:47 +02:00
Maxime Gimeno 6bcf2fe30e Use ::Point_d 2018-06-13 09:32:24 +02:00
Maxime Gimeno 0a14aec59e Add misisng license header 2018-06-08 09:11:29 +02:00
Maxime Gimeno c9c3fbc702 Add license to the new file 2018-06-05 09:28:00 +02:00
Maxime Gimeno 6d60cd99ba Add static functions to gain access to the mainwindow and the scene.
Use it to automatically decide which selection_io_plugin should be used.
2018-06-04 12:27:22 +02:00
Maxime Gimeno e144852e25 Add dependencies to Three 2018-06-04 12:00:22 +02:00
Maxime Gimeno 21359581c4 Add viewer's modifications to CGAL_Qt5 2018-06-04 12:00:22 +02:00
Maxime Gimeno 99582b35f7 Update license files 2018-06-04 12:00:21 +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 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 f22c2864a0 Put qglviewer in the namespace CGAL 2018-05-17 10:20:56 +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 39a0b8a8d5 Restore pivot point drawing 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
Laurent Rineau 0a74393dcf Commit all new dependencies files 2018-03-06 18:44:48 +01:00
Laurent Rineau f092c04180 Merge pull request #2607 from maxGimeno/Selection_plugin_fix-GF
Polyhedron demo: Fixes for QGLViewer 2.7 and remove GlSplat
2018-03-06 16:23:58 +01:00
Maxime Gimeno 9db54327db conflict resolution 2018-03-01 08:48:02 +01:00
Maxime Gimeno 3c770e07df Fix 2d painting for selection 2018-03-01 08:40:26 +01:00
Maxime Gimeno b50fddc9d8 Add a function to decide which filter should be the default when saving. 2018-02-14 13:56:00 +01:00
Maxime Gimeno 78bda89857 Add a function to the group_item that specifies which of its children are selected along with it.
This allows the c3t3_item to override it and return an empty list, so it ignores the selection behavior of the group and keeps it possible to apply an operation only to the c3t3 when it has children like visible tets.
2018-01-23 09:26:11 +01:00
Laurent Rineau 65f4e42acc Merge pull request #2606 from sloriot/CGAL-create_release_with_cmake
Add script to create release with cmake
2017-12-05 18:24:58 +01:00
Laurent Rineau 3c6640bf59 Merge pull request #1436 from lrineau/CGAL-new_cmake-GF
Renewal of CMake scripts: header-only, ctest, CMake>=3.1

# Conflicts:
#	Installation/config/testfiles/CGAL_CFG_NESTED_CLASS_FRIEND_DECLARATION_BUG.cpp
2017-12-05 18:20:05 +01:00
Laurent Rineau 3466eb83f0 Polyhedron demo: do not use the OpenGL API directly 2017-11-28 17:54:38 +01:00
Maxime Gimeno cba9061d81 Fix warning 2017-11-23 11:19:23 +01:00
Sébastien Loriot 700351d093 remove useless files 2017-11-16 16:50:52 +01:00
Laurent Rineau a9365554c9 Merge pull request #2550 from sloriot/CGAL-add_SPDX_tags
Add SPDX License Identifier
2017-11-15 16:48:27 +01:00
Laurent Rineau 3ff09bc549 Merge pull request #2580 from lrineau/CGAL-Support_CMake_3.10-GF
Renew the handle of policies, for CMake-3.10
2017-11-15 16:47:42 +01:00
Laurent Rineau 86fb40832a Merge pull request #2580 from lrineau/CGAL-Support_CMake_3.10-GF
Renew the handle of policies, for CMake-3.10
2017-11-13 12:01:39 +01:00
Sébastien Loriot ee57fc2d6c add SPDX identifier for files under the GPL-3+ license 2017-11-12 10:17:51 +01:00
Laurent Rineau 62c70d41ca Renew the handle of policies, for CMake-3.10
Now that we require CMake>=3.1, we can forget a lot of old CMake policies.

`CMP0053` `OLD` behavior is still needed, because of a bug in Qt5 CMake files, but it will
not be set with CMake>=3.10. Let's assume that a recent CMake version means
a recent Qt5 version.
2017-11-06 14:58:36 +01:00
Maxime Gimeno 91d5ee0247 Remove parentGroup()'s child in group's removeChild() 2017-10-19 14:10:43 +02: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 c723e97e20 Add missing override in code and doc example. 2017-09-18 12:38:02 +02:00
Laurent Rineau 6f5f5af785 Merge pull request #2070 from maxGimeno/Polyhedron_demo-Use_modern_context-GF
Polyhedron_demo: Use a recent OpenGL context if possible
2017-09-07 17:19:58 +02:00
Laurent Rineau f002ab7d3c Merge pull request #2254 from maxGimeno/Output_surface_facets_to_facegraph-GF
Surface_mesher: Output Surface Facets To Facegraph
2017-09-04 15:09:44 +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 d57be1d856 Add documentation and update changes.html 2017-08-09 10:31:04 +02:00
Maxime Gimeno 04649a598a Rebase and doc. 2017-08-01 14:59:58 +02:00
Maxime Gimeno 599fd8322b Add an interface for transparent items so there faces are always drawn after the rest of the scene. This way their position in the scene entries does not affect the display of other items. 2017-08-01 14:59:58 +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 13723a704f Targeting and ID now displays a zone of Ids.
This zone is affected by vertex/edge/face printing or not.
ZoomToId displays a zone around the targeted Id.
2017-07-25 10:02:07 +02:00
Maxime Gimeno ee93ab34dd Selection_items keep displaying their polyhedron_items ids and zoomToId doesn't override the sceneCenterPoint anymore. 2017-07-25 10:01:28 +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 e0f7e1ff2c Merge pull request #2229 from maxGimeno/Fix_clipping_bug-GF
Polyhedron_demo: Fix clipping bug
2017-07-10 15:35:30 +02:00
Maxime Gimeno ced658ce82 typo 2017-07-04 15:51:31 +02:00
Maxime Gimeno 4454047702 Add a signal and slots to avoid clipping bugs when playing with items visibility and RenceterScene. 2017-07-04 14:14:49 +02:00
Maxime Gimeno b889359928 FIx Polyhedron_demo for QGLViewer v2.7.0 2017-07-03 09:35:14 +02:00
Maxime Gimeno 2e506fe18d Add Q_DECL_OVERRIDE in the examples 2017-05-30 15:17:12 +02:00
Maxime Gimeno b04c1e1a96 Change name for UI so it matches the naming convention. 2017-05-30 15:17:12 +02:00
Maxime Gimeno a84acd367d Add the misisng interface file 2017-05-30 15:17:12 +02:00
Maxime Gimeno 4132b2d55d Finish updating the doc 2017-05-30 15:17:12 +02:00
Maxime Gimeno c60acf58c4 Update example plugins 2017-05-30 15:17:12 +02:00
Maxime Gimeno f85a6a52aa Finish updating the in code doc. 2017-05-30 15:17:12 +02:00
Maxime Gimeno 2570bd3a53 Explicitates the TextRenderer's doc. 2017-05-30 15:15:55 +02:00
Maxime Gimeno 05126f0971 Enhancements :
- Explicitate the doc
- Make the Scnee_print_item_interface a real interface
2017-05-30 15:15:54 +02:00
Maxime Gimeno 965e6f545d Make Viewer_interface more interface-like. 2017-05-30 15:12:31 +02:00
Laurent Rineau 7efcc76430 Merge pull request #1954 from maxGimeno/Polyhedron_demo-Update_SM_item_visu-GF
Polyhedron_demo: Update Scene_surface_mesh_item
2017-05-29 11:16:32 +02:00
Laurent Rineau 7e651b6b78 Merge branch 'releases/CGAL-4.10-branch'
Merges two pull-requests:

- 9384ff4 Merge pull request #2133 from maxGimeno/Fix_cmake_warning_CMP0053-GF
- 0005d61 Merge pull request #2132 from sloriot/Kernel-use_CGAL_compare
2017-05-24 17:45:58 +02:00
Maxime Gimeno 5ae96fc2aa Explicitely set the policy of CMP0053 to OLD to silent the warning when it is not found. 2017-05-23 16:12:56 +02:00
Maxime Gimeno 38a991006b Use dynamic properties to determine isPolyhedronMode() 2017-05-19 14:07:06 +02:00
Maxime Gimeno 92c7f227a7 - Clarify doc
- make the indices map local
- make the Polyhedron Mode a setting in the preference dialog
2017-05-19 14:06:34 +02:00
Maxime Gimeno e07e19271d Add a toggle to specify if we are in Polyhedron_mode(default) or Surface_mesh mode, in the Edit menu. This value is accessible from a Scene_interface object under the name isPolyhedronMode(). 2017-05-19 14:05:01 +02:00
Maxime Gimeno 7e87b88762 Make a zoomToPosition function for the Scene_polyhedron_item 2017-05-12 09:24:18 +02:00
Maxime Gimeno a732bb3c66 Don't use signals/slots system but override itemAboutToBeDestroyed 2017-03-24 12:10:22 +01:00
Maxime Gimeno d5fc592135 clean the surface_mesh_item, point-set_item and c3t3_item as well 2017-03-24 12:10:01 +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 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
Sébastien Loriot 50510c05ea add include directive for license of all GPL header files
done using:
ack-grep "^GPL" */package_info/*/license.txt -l | awk -F "/" '{print $1}' > /tmp/gpl_packages
for i in `cat /tmp/gpl_packages | \
          grep -v Operations_on_polyhedra | \
          grep -v Algebraic_kernel_for_circles | \
          grep -v Algebraic_kernel_for_spheres | \
          grep -v Polyhedron_IO`;
do
  echo $i
  python Scripts/developer_scripts/add_license_in_pkg_header.py $i
done
python Scripts/developer_scripts/add_license_in_pkg_header.py Operations_on_polyhedra Polygon_mesh_processing
python Scripts/developer_scripts/add_license_in_pkg_header.py Algebraic_kernel_for_circles Circular_kernel_2
python Scripts/developer_scripts/add_license_in_pkg_header.py Algebraic_kernel_for_spheres Circular_kernel_3
python Scripts/developer_scripts/add_license_in_pkg_header.py Polyhedron_IO Polyhedron
2017-01-19 15:20:25 +01:00
Maxime Gimeno ec4deace20 Update ids when invalidateOpenGLBuffers() is called 2017-01-12 12:05:39 +01:00
Laurent Rineau a5e254f0d8 Merge pull request #1737 from maxGimeno/Polyhedron_demo-Fix_large_coordinates_bug-GF
Polyhedron_demo: Fix display bugs when the scene is greatly offsetted
2017-01-12 11:10:11 +01:00
Laurent Rineau ba6a05a134 Fix -Wconversion warnings 2016-12-30 16:44:08 +01:00
Maxime Gimeno 1c55bef931 Update the doc forthe group_items and the plugins. 2016-12-15 13:26:38 +01:00
Laurent Rineau 847906e2e4 Extend --no-try-catch to catching of C++ exceptions in Qt scripts 2016-12-02 13:05:43 +01:00
Maxime Gimeno ca5ea47e48 Add an offset vector to the viewer. 2016-12-02 12:03:46 +01:00
Laurent Rineau 5e38a93815 At least return a Boolean
When the wrapped function return type is `void`, the return type of
`wrap_a_call_to_cpp` is now `bool`.
2016-11-04 12:10:19 +01:00
Laurent Rineau 690c5f6623 Fix a compilation error 2016-11-04 12:10:16 +01:00
Laurent Rineau 54dbab9d3c fixup! Better exception handling (with Qt Script) 2016-10-27 18:11:33 +02:00
Laurent Rineau 418fbdef69 Better exception handling (with Qt Script)
- Uncaught Qt Script exception are now converted to a C++ exception of
  type `CGAL::Three::Script_exception`.

- With `<CGAL/Three/exceptions.h>` and the use of `QScriptable` and
  `CGAL::Three::wrap_a_call_to_cpp`, if a C++ exception is thrown by a C++
  piece of code that was called from a script, then a Javascript
  exception is thrown, so that a script can have a chance to catch it.

- Add a method `throw_exception()` in the `trivial_plugin`, as well as
  test scripts in `javascript/tests/`, to test that new set of features
  in C++/QtScript exceptions handling.
2016-10-26 18:39:06 +02:00
Laurent Rineau e7b2920315 Merge pull request #1579 from maxGimeno/Polyhedron_demo-save_c3t3_state_when_reload-GF
Polyhedron_demo : Keep the c3t3_item's state when reloading
2016-10-20 09:47:32 +02:00
Maxime Gimeno 3ba5277d97 Clean-up 2016-10-17 09:36:44 +02:00
Maxime Gimeno 29d7a375bc Restore the spheres, grid, intersections and CNC state when reloading a c3t3_item. 2016-10-14 16:58:20 +02:00
Maxime Gimeno ff25c2bac6 Move ShadedPoints in the enum to preserve some of the binary compatibility. 2016-08-09 15:05:23 +02:00
Maxime Gimeno e99655ab87 Add a renderingMode to distinguish between ShadedPoints and regular Points. 2016-08-02 11:52:27 +02:00
Maxime Gimeno a3ed36ee25 Externalize the triangulation code for the facets in items
- Use an external class to triangulate the facets in Polyhedron_item, Surface_mesh_item, Polygon_soup_item and Polyhedron_selection_item.
2016-06-06 16:12:18 +02:00
Maxime Gimeno 060377f231 Add a function to get the diagonal of an item's Bbox. 2016-06-03 11:16:11 +02:00