Commit Graph

384 Commits

Author SHA1 Message Date
Laurent Rineau b98175b4f2 Updated todo: we need to disable several menu items. 2008-07-16 13:51:08 +00:00
Laurent Rineau 7ef44188a8 Attempt to fix a compilation error under Windows. 2008-07-16 13:49:50 +00:00
Laurent Rineau 8f569aa382 Use QInputDialog::getInteger to get the parameter for the simplification
algorithm.
2008-07-16 13:48:26 +00:00
Laurent Rineau a30e08123b Fix two warnings under Windows. 2008-07-16 13:16:48 +00:00
Pierre Alliez 592921e134 fix compilation issue 2008-07-16 13:01:55 +00:00
Pierre Alliez 69f346a20d tried fixing compilation issues 2008-07-16 12:30:27 +00:00
Laurent Rineau 7273f1997c Add a struct Scene::Bbox to avoid the inclusion of any CGAL header in
Scene.h. That should reduce compilation times.
2008-07-16 11:18:29 +00:00
Laurent Rineau c5654c95e3 - Rename several actions, to remove all "_" in their names.
- Add several "&" in action texts.

- NEW files:
   - "Polyhedron_type.h" defines the Kernel and Polyhedron types,
   - "Polyhedron_type_fwd.h" can be used for a forward declaration of the
     type "Polyhedron".

- New functions in Scene:
    int selectionAndex();
    int selectionBindex();
  Boolean operations now use those functions to get the indices of the
  polyhedra.

- The Exact_polyhedron is now only defined in
  MainWindow_boolean_operations.cp, to reduce compilation times.

- The min/max problem is handled better, in MainWindow_pca.cpp (quote the
  macros with () instead of using #undef).

- MainWindow_simplify.cpp now works!!

- Scene.h and Scene.cpp has been splitted in several parts, to decrease
  compilation times:
    - Scene_rendering.h declares:
        void gl_render_facets(Polyhedron* poly);
        void gl_render_edges(Polyhedron *poly);
    - Scene_rendering.cpp defines those two functions by using
      <CGAL/gl_render.h>
    - Scene_polyhedron_operations.cpp contains operations that
      create/delete/load/save polyhedra.
  That way, Scene.h and Scene.cpp are CGAL-agnostic.
2008-07-16 11:08:06 +00:00
Pierre Alliez 792bc2eea8 a bit of cleanup on Scene 2008-07-16 08:41:43 +00:00
Pierre Alliez 66130f35a6 removed menu "Selections" - we'll see this for later 2008-07-16 08:33:00 +00:00
Pierre Alliez d9a9f58477 fix std::cerr output when reading a file 2008-07-16 08:24:28 +00:00
Pierre Alliez 0023b1bce4 normalize models for Boolean operations 2008-07-16 08:20:06 +00:00
Pierre Alliez 62a8260dc9 add timer for Boolean operations 2008-07-16 08:17:03 +00:00
Pierre Alliez 2fc0cfe1dc pca/boolean/self-intersect -> a bit of cleanup 2008-07-16 08:07:44 +00:00
Pierre Alliez 3b5ec29388 cleanup and reduce model sizes 2008-07-16 07:57:03 +00:00
Pierre Alliez 39a19c21cf another attempt to simplify 2008-07-16 07:31:48 +00:00
Pierre Alliez cc9ee7e489 another fix on curvature estimation 2008-07-16 07:25:21 +00:00
Pierre Alliez 1e6b97be68 monge form now complies with vertex normal - thanks Marc! 2008-07-15 13:19:23 +00:00
Pierre Alliez a0a049cbcd solve compilation bug on windows 2008-07-15 13:13:36 +00:00
Laurent Rineau aab17114a3 Fix compilation errors. 2008-07-15 10:25:35 +00:00
Pierre Alliez 79eeb66f5b curvature estimation: fix normal orientation bug 2008-07-15 09:55:38 +00:00
Pierre Alliez 78683b0ee6 now compiles in debug mode but refuses to exec. 2008-07-14 20:51:18 +00:00
Pierre Alliez 9b20194dba more on curvature estimation
removed enriched polyhedron
removed make_quad (the soup is more generic)
separate compute_normal
2008-07-14 20:09:22 +00:00
Pierre Alliez 879088c116 more on curvature estimation
need to fix the normal orientation
2008-07-14 19:40:27 +00:00
Pierre Alliez 17688b2e03 curvature estimation - remains to represent result as a polyhedron 2008-07-14 16:49:17 +00:00
Pierre Alliez b44dd2ba46 another attempt to get the mesh simplification compile on Windows. 2008-07-14 14:00:10 +00:00
Pierre Alliez 43be43d690 rename self-intersect
pca fit and self-intersect to red by default
2008-07-14 13:53:42 +00:00
Pierre Alliez 7626528ed1 tmp renaming to fix capitals 2008-07-14 13:47:16 +00:00
Pierre Alliez e968a67d1c ooops - forgot to add self intersection menu file 2008-07-14 13:27:58 +00:00
Pierre Alliez 0a8289a411 added self-intersection (needs a bit of cleanup)
PS: the (added) cow model self-interects
2008-07-14 13:27:09 +00:00
Pierre Alliez 5ed155720b added menu save as... (save selected polyhedron)
remains to implement save all, and save (all selected polyhedra to their original filename)

normalized 3D models
cleanup boolean operations
2008-07-14 12:58:50 +00:00
Pierre Alliez 6df756e150 Added Boolean operations
Laurent: please take a look - you may have a cleaner solution for converting from inexact to exact polyhedron
2008-07-14 12:25:35 +00:00
Pierre Alliez 6c429f7ddf PCAPCA plane fitting - the best fit line is added as a bar polyhedron 2008-07-14 10:20:38 +00:00
Pierre Alliez 5992d3ae35 PCA plane fitting - the best fit plane is added as a quad polyhedron 2008-07-14 06:59:50 +00:00
Pierre Alliez 36eb748188 added Loop subdivision 2008-07-13 20:27:19 +00:00
Pierre Alliez e1c2d60890 more on polyhedron kernel computation using LP solver 2008-07-12 20:36:33 +00:00
Pierre Alliez 0c94d8efc0 render edges 2008-07-12 19:57:22 +00:00
Laurent Rineau dbcbf05acb Fix two compilation errors. 2008-07-12 17:07:02 +00:00
Pierre Alliez c31d6713bd added rendering file
another attempt to simplify a polyhedron (the basic one this time) but it does not compile...
2008-07-12 09:48:23 +00:00
Pierre Alliez af6368c5db drop the enriched polyhedron - rendering by calling a templated function instead. 2008-07-12 09:39:10 +00:00
Laurent Rineau d3d6a5c1eb - Store the MainWindow position/size in a QSetting.
- Added column A/B to Scene and SceneDelegate.
2008-07-11 16:23:59 +00:00
Pierre Alliez 387084df22 cleanup interface and viewer 2008-07-11 15:46:51 +00:00
Laurent Rineau da771637ac Un-inline Viewer::setAntiAliasing(bool). That decrease the readability of
the code.
2008-07-11 15:08:50 +00:00
Laurent Rineau 021767168f Move convex_hull into MainWindow_convex_hull.cpp
and simplify into MainWindow_simplify.cpp
2008-07-11 14:55:20 +00:00
Andreas Fabri e58b0960d6 Added find_package for OPENGL 2008-07-11 14:50:20 +00:00
Laurent Rineau 912bf47dbb - Add two slots in Scene:
void Scene::polyhedronChanged(int i);
    void Scene::polyhedronChanged(Polyhedron*);
  That way, one no longer call viewer->updateGL() but
  scene->polyhedronChanged, and the code is ready for one document with
  multiple views (one just has to connect SIGNAL(Scene::dataChanged(..)) to
  updateGL() of all viewers.

- Add accessors in Scene:
    Polyhedron* polyhedron(int i);
    QColor polyhedronColor(int);
    QString polyhedronName(int);
    bool isPolyhedronActivated(int);
    RenderingMode polyhedronRenderingMode(int);

- Remove Scene::simplify and Scene::convex_hull: MainWindow does the joob
  itself.
2008-07-11 14:24:22 +00:00
Laurent Rineau 337d4cbc9c Scene::duplicate now uses Scene::addPolyhedron... 2008-07-11 13:55:46 +00:00
Laurent Rineau a286206697 - Add a "static const QColor defaultColor;" to Scene,
- Add in Scene:
      void addPolyhedron(Polyhedron* p,
                         QString name,
                         QColor color = defaultColor,
                         bool activated = true,
                         RenderingMode mode = Fill);
- Modify Scene::open to use addPolyhedron.
2008-07-11 13:53:51 +00:00
Laurent Rineau 1432cbb62f Do not use inlined function in Scene (it does not make sens). 2008-07-11 13:30:58 +00:00
Laurent Rineau f9f27d9e2a Remove another todo entry! 2008-07-11 12:33:27 +00:00
Laurent Rineau c5b91d2f33 Use "::Qt" for the Qt namespace, instead of "Qt" (because CGAL::Qt now
exists).
2008-07-11 12:19:46 +00:00
Laurent Rineau d74cb9bac9 Scene::draw() now use the rendering mode. 2008-07-11 12:12:30 +00:00
Laurent Rineau 91b1ba8bed (Add an attribue rendering_mode in Polyhedron_entry.)
The treeView now displays it.

The Scene::draw() does not use it, yet.
2008-07-11 12:05:48 +00:00
Laurent Rineau ad787d98c0 Add an attribue rendering_mode in Polyhedron_entry. 2008-07-11 11:19:52 +00:00
Laurent Rineau b91a56535c Setup the treeview's columns widths and streching. 2008-07-11 09:58:00 +00:00
Laurent Rineau 89e61e3809 Delegation for the Color column: one left click pops up the QColorDialog. 2008-07-11 09:57:20 +00:00
Pierre Alliez 9fce504387 cleanup on convex hull 2008-07-10 21:10:51 +00:00
Laurent Rineau 4fb74af216 Minor improvements in the feature "last opened files". 2008-07-10 16:58:57 +00:00
Laurent Rineau 35a9309b87 - Update TODO.txt
- Last opened polyedron is selected.
- A duplicated polyhedron is selected.
- When a polyhedron is erase, select another one (the previous one if any).
2008-07-10 16:51:11 +00:00
Laurent Rineau 00e87cf498 - Remove Scene and Camera menu.
- Move Load/Erase/Duplicate into the File menu.
2008-07-10 15:49:13 +00:00
Laurent Rineau 7e9278f677 Handle recent files in the File menu. 2008-07-10 15:48:29 +00:00
Pierre Alliez 0e1b8e8ca9 attempt to simplify an enriched polyhedron but fails at compile time (we should ask Fernando some help!) 2008-07-10 15:29:21 +00:00
Laurent Rineau d011d7ffc2 New title for MainWindow: "Polyhedron demo". 2008-07-10 15:05:33 +00:00
Pierre Alliez 1a682c6e71 resources into a separate folder
added data folder with toy meshes
2008-07-10 14:11:15 +00:00
Laurent Rineau 78a3a69d55 Update the scene delegate. 2008-07-10 14:08:10 +00:00
Laurent Rineau b41991af69 - Rename "on_treeView_itemSelectionChanged()" to "selectionChanged()" to
avoid an auto-connection attempt.
- Activate anti-aliasing by default.
2008-07-10 14:07:07 +00:00
Laurent Rineau 30a92b28b4 More todo entries. 2008-07-10 13:59:38 +00:00
Pierre Alliez 121477b70f enriched todo list 2008-07-10 13:58:22 +00:00
Laurent Rineau fd228fea1f Add a TODO file 2008-07-10 13:55:20 +00:00
Pierre Alliez abaa8e6f51 convex hull added! 2008-07-10 13:49:13 +00:00
Laurent Rineau 00de2764fc Switch back to QGLViewer as base class of 'Viewer'. 2008-07-10 13:00:44 +00:00
Pierre Alliez d9ad075d4d Better handling of relative paths. That fixes errors with CMake under Windows. 2008-07-10 12:10:35 +00:00
Pierre Alliez 5dc4729fd7 Include qgl.h from Qt, to fix compilation errors related to GL/gl.h (under Windows, windows.h must be included first). (lrineau) 2008-07-10 12:09:38 +00:00
Pierre Alliez bffb220a35 Fix a compilation error with Visual (need to protect std::min from nasty macros). (lrineau) 2008-07-10 12:08:31 +00:00
Pierre Alliez 0796a642a7 First a warning with Visual (lrineau) 2008-07-10 12:07:39 +00:00
Laurent Rineau aebde5a069 Attempt to fix compilation errors on Windows. 2008-07-10 11:45:43 +00:00
Pierre Alliez b5a5b2e914 added menu convex hull 2008-07-10 11:18:32 +00:00
Pierre Alliez ca272d25a3 fix windows compilation issue with HDS 2008-07-10 09:58:39 +00:00
Laurent Rineau 44e4421af1 Use -I./include. 2008-07-10 09:50:18 +00:00
Laurent Rineau 1b8c973eb7 commit the enriched polyhedron 2008-07-10 09:49:13 +00:00
Laurent Rineau 46836fc913 Add a "delegate" for the QTreeView that displays the scene. For the moment,
that delegate only handles the "Activated" column: it displays a green
checkmark iff the polyhedron is activated.
2008-07-10 08:13:42 +00:00
Laurent Rineau 89faa7f11f - Add an action "Anti-aliasing" in the view menu. Off by default. Scene has
a setAntiAliasing fucntion.
- One can now drag-drop several files at once. Scene::open(QString) is
  called for each.
- In Scene.cpp, Scene::open() displays a warning dialog when the file is
  not an OFF file.
- The polyhedra list is now in a QDockWidget, on the left by default. That
  way the list can be moved in the user interface (like other dock
  widgets). The "View" menu has an option to show/hide the dock widget.
- Subdivision methods now call viewer-updateGL(), so that the viewer
  repaint itself after a polygon is modified.
2008-07-09 14:41:09 +00:00
Laurent Rineau 105ccbab53 - The Scene now reacts to the selection by highlighting the selected
polyhedron.
- One can open several OFF files at one (use QFileDialog::getOpenFileNames
  instead of QFileDialog::getOpenFileName).
- Added two subdivision methods.
2008-07-09 11:06:31 +00:00
Laurent Rineau 88f7f33c5f First version of Polyhedron demo with Qt4. 2008-07-08 14:18:33 +00:00