Commit Graph

140 Commits

Author SHA1 Message Date
Sébastien Loriot d9a0ef25e3 change init order 2016-05-30 18:04:46 +02:00
Maxime Gimeno 084662ea87 Print the information on screen. 2016-05-27 17:02:08 +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
Sébastien Loriot cea729de5a fix header 2016-05-26 17:05:34 +02:00
Maxime Gimeno 9abe59c917 Fix the bug of single textItems on multiple scene_items. 2016-05-25 17:02:26 +02:00
Sebastien Loriot 1127725c11 Merge pull request #1013 from maxGimeno/Polyhedron_demo-OFF_with_color-GF
Polyhedron demo : OFF with colors
2016-05-23 11:28:19 +02:00
Maxime Gimeno 7fde6ef3a2 Fix plugins with disconnected actions. 2016-05-13 16:13:15 +02:00
Maxime Gimeno 775732dcf9 Surface_mesh_item drawing functions 2016-05-12 17:09:43 +02:00
Maxime Gimeno f294d4cade Update example plugins init() functions 2016-05-11 10:55:58 +02:00
Maxime Gimeno 473c92c00c Remove the init() function without Messages_interface from the plugins API 2016-05-10 17:10:59 +02:00
Maxime Gimeno 57a5a91ccf Clean-up 2016-05-09 15:15:05 +02:00
Maxime Gimeno 96c9d2eb70 Fix the rebase 2016-05-06 12:15:04 +02:00
Maxime Gimeno 92e86c50a8 WIP clean-up 2016-05-06 11:12:10 +02:00
Maxime Gimeno caed1cd153 Bug fix
- Fixes the exported targets namespace and a bug in the example_plugin.
2016-05-06 11:12:10 +02:00
Maxime Gimeno 221c91b0d7 Fix typos and add info about the add_item macro 2016-05-06 11:12:09 +02:00
Maxime Gimeno 49388baae5 Correction 2016-05-06 11:12:09 +02:00
Maxime Gimeno 3f0f27a5ac Plugin API made in CamelCase 2016-05-06 11:12:09 +02:00
Maxime Gimeno 4dadba77c4 Clean-up the plugin helper 2016-05-06 10:51:59 +02:00
Maxime Gimeno 633b8d09d5 Fixed the doc mainpage 2016-05-06 10:51:58 +02:00
Maxime Gimeno b4229241ba Removes the hardcoded actions in Operations 2016-05-06 10:51:58 +02:00
Maxime Gimeno 542ee48ddb Finished doc update and replaced BBox by CGAL::BBox_3 2016-05-06 10:50:50 +02:00
Maxime Gimeno e7c5ff1dbe Adding the missing doc files 2016-05-06 10:50:49 +02:00
Maxime Gimeno 111f3b666b Fix removeChild 2016-05-06 10:50:49 +02:00
Maxime Gimeno 21f5c82990 WIP Correct the doc 2016-05-06 10:46:21 +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 b5659954b7 Renamed the interface 2016-04-27 14:32:51 +02:00
Maxime Gimeno 8a155b4f5d The scene performs a check on the item to insure it is able to display its primitive IDs. 2016-04-27 14:32:50 +02:00
Maxime Gimeno 845a9c7bac Creation of a scene_item_print_interface
- An item that wants to print its primitives must inherit from CGAL::Three::Scene_item_print_interface,
  that contains the two print function. That way, to test if an item is able to print, one just has to check
  if a cast to CGAL::Three::Scene_item_print_interface works.
2016-04-27 14:32:50 +02:00
Maxime Gimeno 6048e6721d Clean-up and documentation for TextRenderer 2016-04-27 14:32:22 +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 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 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 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 c0d9f4f50e WIP QPainter problems 2016-04-27 14:06:27 +02:00
Maxime Gimeno 176770fa00 - Addition of a reference to the scene in the group_item so it can add its own children
- Modification of the Scene_polylines_item to use a child spheres_item
- fixes about the groups
2016-04-20 12:18:20 +02:00
Maxime Gimeno 0e66c54b27 Addition of a "lock" property in the groups API. 2016-04-19 15:48:53 +02:00
Maxime Gimeno 7b338f4e45 Fix the drawing of the children's group when their renderingMode isn't compatible. 2016-04-19 14:45:30 +02:00
Maxime Gimeno 3ab7050205 Intermediary step:
- Created a Scene_spheres_item
- Made the Scene_c3t3_item a group_item
- Changed the spheres management in the c3t3_item
- Fixed the has_group maintanance in group_items
2016-04-19 12:17:45 +02:00
Laurent Rineau 26af71e126 Merge pull request #883 from lrineau/Three-Scene_group_can_draw-GF
Change the semantic of the Scene_group_item
2016-04-14 15:17:07 +02:00
Laurent Rineau 63dc460f42 Merge commit 'refs/pull/990/head' into Three-Scene_group_can_draw-GF
Conflicts:
	Polyhedron/demo/Polyhedron/Scene.cpp
	Polyhedron/demo/Polyhedron/Scene.h
	Three/include/CGAL/Three/Scene_draw_interface.h
2016-04-13 11:52:57 +02:00
Laurent Rineau cf961c3a2d Merge pull request #877 from maxGimeno/Polyhedron-demo-Trivial_fixes-GF
Polyhedron_demo:  Trivial fixes
2016-04-13 10:36:42 +02:00
Laurent Rineau f8aabdcc36 Merge pull request #990 from maxGimeno/Polyhedorn_demo-New_picking-GF
Polyhedron_demo : New picking
2016-04-11 11:58:35 +02:00
Maxime Gimeno 24b16b4710 New picking finished. Far more efficient. 2016-04-07 10:13:20 +02:00
Maxime Gimeno 386995bbdc Final fix for itemChanged calls 2016-04-04 16:53:17 +02:00
Maxime Gimeno dfc2143b28 Fix for emit itemChanged() 2016-04-04 11:18:29 +02:00
Maxime Gimeno 56486dbadd Fix for the ctrl+space shortcut 2016-04-04 10:13:21 +02:00
Laurent Rineau 80d7a738e4 Change the semantic of the Scene_group_item
New feature: an object of class `Scene_group_item`, or derived, is
responsible for drawing its children items. That is the first
approximation of a scene graph.

For that goal, several steps were needed.

- Remove the overload of `Scene::draw()` and `Scene::drawWithNames()`
  that does not have the viewer as parameter. Remove then from
  `Scene_draw_interface` as well.

- Add `Viewer::inDrawWithNames()` so that items, including the
  `Scene_group_item`, can now if a draw function is called for the
  picking or not.

- Add the draw function in `Scene_group_item`:
```
  virtual void draw(CGAL::Three::Viewer_interface*) const;
  virtual void draw_edges(CGAL::Three::Viewer_interface*) const;
  virtual void draw_points(CGAL::Three::Viewer_interface*) const;
  virtual void draw_splats(CGAL::Three::Viewer_interface*) const;
```
  Those draw functions actually call the draw functions of all the
  visible children, depending on their rendering mode. If
  `viewer->inDrawWithNames()`, draw nothing, and let the children be
  drawn with their own names. Another solution could be that the draw
  functions of `Scene_group_item` use `glPushName/glPopName`. That API
  seems to be usable with a scene graph.

- Add in `Scene_item` two functions:
```
  void moveToGroup(Scene_group_item* group);
  Scene_group_item* parentGroup() const;
```
  That is one first step to allow the `has_group` data member to become
  a private member, instead a public one (ugly!!).

Then the big change is in the scene:

- The scene will not call the draw function of items with a parent
  group, if the group itself is visible. If the group is not visible but
  the children are set to visible, then they are drawn anyway. That
  means that a group can "steal" the drawing of its children when it is
  visible. That behavior is really convenient for the use case I have in
  mind, but it may be strange.

- In the picking, in `drawWithName()`, the draw function of all items
  are called, even if they have a parent group.

Cosmetic:

  - Move the definition of the constructor `Scene_item::Scene_item` in
    the cpp file.
2016-03-04 14:37:53 +01:00
Sebastien Loriot 8a55728cae Merge pull request #787 from maxGimeno/Polyhedron_demo-Fix_for_773-GF
Polyhedron_demo : Fix for 773
2016-03-03 14:19:44 +01:00
Maxime Gimeno fe20de7ef3 Statistics fix
- An item must overload has_stats to return true if it has statistics, or else the action will not be displayed in the menu.
2016-03-03 09:19:04 +01:00