Commit Graph

222 Commits

Author SHA1 Message Date
Pierre Alliez 09a9c58abc added timing for remeshing 2008-07-26 22:01:56 +00:00
Pierre Alliez e375a5bdb8 First running version of remeshing using AABB tree (needs cleaning) 2008-07-26 21:34:40 +00:00
Pierre Alliez 7032b35789 AABB tree now linked to oracle 2008-07-26 20:15:38 +00:00
Pierre Alliez dfab7987ac more on AABB tree for surface remeshing 2008-07-26 19:59:19 +00:00
Pierre Alliez c259f9dd4e surface remeshing now compiles fine - it remains to connect with the AABBtree collision model. 2008-07-26 19:08:44 +00:00
Pierre Alliez 94f71be161 1-line toolbar 2008-07-26 16:12:12 +00:00
Pierre Alliez afee4ab133 move colllision model into a separate folder. 2008-07-26 14:37:18 +00:00
Pierre Alliez 91c7c4f562 move all intersection tests into a separate folder. 2008-07-26 14:36:21 +00:00
Pierre Alliez 001f880410 initial work on remeshing 2008-07-26 14:34:32 +00:00
Pierre Alliez 976a501b9e uncomment subdivision functions as they now compile fine. 2008-07-26 10:34:56 +00:00
Andreas Fabri 2bf2b4ff3e No need to include <CGAL/basic.h> 2008-07-25 21:21:02 +00:00
Andreas Fabri d65736ebf4 Fix such that subdivision operations compile with VC7. Forward declaration needs some rework by Laurent 2008-07-25 21:19:22 +00:00
Pierre Alliez 20ca98dab6 removed icons.
fix cursors.
2008-07-24 20:52:49 +00:00
Sylvain Pion dc3bf72707 Remove changes.txt files. 2008-07-24 17:47:16 +00:00
Pierre Alliez fa9b69fafe added tripod model to debug the kernel 2008-07-22 21:39:06 +00:00
Pierre Alliez b268ca8b0e added inside out operation
fixed kernel
2008-07-22 15:25:45 +00:00
Pierre Alliez 427fb2b74f added menu inside out - need to write the code 2008-07-22 13:44:29 +00:00
Pierre Alliez 0bd6adbc43 a bit of cleanup on scene Bbox computation. 2008-07-20 14:34:49 +00:00
Pierre Alliez 39b907c461 global cleanup of mesh operations.
Laurent: I cannot understand why the icons specified and visible in the designer are not visible in the exec.
Also, I was unable to compile the subdivision functions.
2008-07-20 14:15:48 +00:00
Pierre Alliez ca0b136bbd icons for Boolean operations.
weird: they look fine in the designer but are not shown in the exec.
2008-07-18 20:30:57 +00:00
Laurent Rineau 35af0d054a "Erase all" now work.
"Erase' now has the Delete key as shortcut.
2008-07-18 16:23:06 +00:00
Laurent Rineau acf4ea73d5 Let the application remember in which directory lies the last open file.
That directory is used to load new files.
2008-07-18 13:49:02 +00:00
Laurent Rineau 7e60068d60 Fix the crash if arguments.isEmpty().
Add various checks.
2008-07-17 23:17:40 +00:00
Laurent Rineau e8f7a4917a Fix the crash if arguments.isEmpty(). 2008-07-17 23:17:23 +00:00
Pierre Alliez 672daa420b added translate for polyhedron kernel 2008-07-17 15:17:24 +00:00
Laurent Rineau 70add34bae Allow the use of Meta instead of Alt, for the paths edition of QGLViewer. 2008-07-16 23:37:11 +00:00
Laurent Rineau 7c4e6dd0b8 Add Viewer::drawWithNames() and Viewer::postSelection(): that implements
the feature "selection with mouse" (Shift+LeftButton simple click).

Scene::draw now has a boolean parameter (draw with name or not).
2008-07-16 22:29:34 +00:00
Laurent Rineau c99aa4d8cc Add alpha channel to icons. 2008-07-16 22:04:55 +00:00
Laurent Rineau cf3e194f55 Add action, with shortcuts, to:
- activate a polyhedron (Ctrl+Space)
  - put polyhedron as selection A (Ctrl+A)
  - put polyhedron as selection B (Ctrl+B)
2008-07-16 22:04:32 +00:00
Pierre Alliez 125b698c13 fix indent for kernel 2008-07-16 21:42:02 +00:00
Pierre Alliez 08d544bab7 more on polyhedron kernel using LP solver
remains to implement translate<Polyhedron>
2008-07-16 21:23:04 +00:00
Pierre Alliez 21bba71a11 started adding some icons - but could not figure out how to specify transparency 2008-07-16 20:30:03 +00:00
Laurent Rineau d72c431eb3 Add a global preference "View edges", which is a QAction in the View menu.
Update: rename it "Superimpose edges".
2008-07-16 18:33:47 +00:00
Laurent Rineau a872041a55 Add a global preference "View edges", which is a QAction in the View menu. 2008-07-16 18:32:15 +00:00
Laurent Rineau fb91fc9f90 New icons for the checkmark in treeView. 2008-07-16 18:31:32 +00:00
Laurent Rineau 0c53947443 Add toolbars. We need icons. 2008-07-16 17:47:09 +00:00
Laurent Rineau 9ddb771a75 To reduce inter-dependancies, and thus compilation time, MainWindow no
longer derives from Ui::MainWindow. Instead, MainWindow now has a member:

         Ui::MainWindow* ui;

That way, a single change in MainWindow.ui will no longer trigger the
recompilation of all .cpp that depend on MainWindow.h
2008-07-16 17:21:03 +00:00
Laurent Rineau 6ae6c2f660 Add tooltips to the Scene. Viewed in the treeView. 2008-07-16 17:07:22 +00:00
Laurent Rineau 96a79fccf5 Fix drawing of edges. 2008-07-16 16:39:19 +00:00
Laurent Rineau d47ab0f489 Reindent. 2008-07-16 16:21:04 +00:00
Pierre Alliez 930db7897a display lists - faster but not simpler 2008-07-16 15:16:29 +00:00
Laurent Rineau 1a6d8a5dbc Add a toolbar. 2008-07-16 14:54:55 +00:00
Laurent Rineau 2841cf29ee Fix a compilation error: Scene.cpp no longer includes the complete
definition of the type Polyhedron. You must use Scene::destroy instead of
"delete".
2008-07-16 14:50:50 +00:00
Laurent Rineau e550425440 New function:
template <class Poly_A, class Poly_B>
  void copy_to(const Poly_A& poly_a, Poly_B& poly_b)
to avoid the ugly hack using a temp file in
MainWindow_boolean_operations.cpp.

Maybe that function should be in CGAL, actually.
2008-07-16 14:48:15 +00:00
Pierre Alliez 6d6e98bb08 update TODO list 2008-07-16 14:41:48 +00:00
Pierre Alliez 069b83759b more cleanup on simplify 2008-07-16 14:20:38 +00:00
Pierre Alliez 1a4079f2f8 simplification: added timer and output 2008-07-16 14:02:22 +00:00
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