/*!
\page dependency_tree_page Dependency Tree
\n In order to better understand the relations between the %GEOM
objects in a study the user has the possibility to display the
ascendants and descendant of an object in a family tree.
User can build the dependency tree with new main objects by selecting
them in Object Browser, in OCC Viewer or in Dependency Tree Viewer
and calling corresponding popup menu. When invoked, this menu item
will open a 2D view window and display a dependency tree for the
selected object or objects (multiple selection is supported).
\image html tree_example.png
User can change all necessary parameters of Dependency Tree Viewer
in \ref pref_dependency_tree "Preferences".
\anchor dependency_tree_nodes Nodes
Tree nodes in the Dependency Viewer are named according to the study
names of the corresponding objects.
Non-published objects are shown in the tree as "unpublished" and are
colored in special for non-published objects color.
The long name of the object is displayed in a shortened version;
full name of the object can be seen in the tool tip when the cursor
is on the node.
Dependency Tree Viewer supports the following states of nodes:
\image html tree_main_node.png
- Main node - node of main object, selected in Object
Browser, OCC Viewer or Dependency Tree Viewer in order to build the
dependency tree;
\image html tree_default_node.png
- Default node - node, which participate in building of
dependency tree as ascendant or descendant;
\image html tree_unpublished_node.png
- Unpublished node - node of non-published in study
object;
\image html tree_highlighted_node.png
- Highlighted node - the state of node when mouse is
near or on it;
\image html tree_selected_node.png
- Selected node - the state of selected node when
clicking left mouse button on node.
\anchor dependency_tree_links Links
Dependency Tree Viewer shows oriented links between nodes to
represent dependency direction. Viewer supports the following states
of links:
\image html tree_unidir_link.png
- Unidirectional link - shows that object A depends on
the object B;
\image html tree_bidir_link.png
- Bidirectional link - shows that object A depends on
the object B and at the same time object B depends on
the object A;
\image html tree_selfdep_link.png
- Self-dependency link - shows that object depends on
itself;
\image html tree_cycldep_link.png
- Cyclic dependency links - shows cyclic dependency of
some nodes.
\anchor dependency_tree_operations Operations
The dependency tree of a chosen %GEOM object is displayed in
the dedicated 2D view window.
\n The functionalities of 2D viewer are available via its Viewer
Toolbar.
Buttons marked with small downward triangles have extended
functionality which can be accessed by locking on them with left
mouse button.
\image tree_tool_bar
\image html tree_view_dump.png
Dump View - exports an object from the viewer in bmp, png or
jpeg image format.
\image html tree_view_fitall.png
Fit all - scales the presentation so that it could fit within
the Viewer boundaries.
\image html tree_view_fitarea.png
Fit area - resizes the view to place in the visible area only
the contents of a frame drawn with pressed left mouse button.
\image html tree_view_fitselect.png
Fit selection - resizes the view to fit in the visible area
only currently selected objects.
\image html tree_view_zoom.png
Zoom - allows to zoom in and out.
\image html tree_view_pan.png
Panning - if the represented objects are greater that the
visible area and you don't wish to use Fit all functionality,
click on this button and you'll be able to drag the scene to see its
remote parts.
\image html tree_view_glpan.png
Global panning - allows to select a point to be the center of
the presentation showing all displayed objects in the visible ares.
\image html tree_hierarchy_type.png
Hierarchy depth - allows to change the number of hierarchy
levels to be shown in the dependency tree.
- Level 1 corresponds to the parents and children of the selected
object(s);
- Level 2 is Level 1 plus the grand-parents and grand-children
of the selected object(s);
- etc...
\image html tree_disp_ascendants.png
Display ascendants - allows to customize the display
of ascendants.
\image html tree_disp_descendants.png
Display descendants - allows to customize the display
of descendants.
\image html tree_move_nodes.png
Move nodes - allows to customize the moving of nodes.
\image html tree_button_update.png
Update - allows to update a dependency tree model and a view.
\anchor dependency_tree_navigation Navigation
Dependency Tree 2D Viewer supports the following navigation mode:
Rectangle selection in this mode is performed by the left mouse
button; multiple selection is available when \b Shift button
is pressed.
Also, holding \b Ctrl key with pressed mouse buttons performs
the following view transformations:
- Ctrl + left mouse button - zooming;
- Ctrl + middle mouse button - panning;
\anchor dependency_tree_popup_menu Popup Menu
After the object has appeared in the Dependency Tree 2D Viewer,
you can select it with left mouse click to change its presentation
parameters and access to other useful options by right-clicking on
the selected object.
\image html tree_popup_menu.png
- \b Show - allows to show selected object(s) in OCC 3D Viewer;
- Show Only - allows to show only selected object(s)
in OCC 3D Viewer;
- Rebuild the tree - allows to rebuild the dependency tree
for selected object(s);
Some functionalities are available through right-clicking on
the viewer background:
\image html tree_popup_menu2.png
Dependency Tree 2D Viewer background can be customized using the
"Change background" popup menu command that opens standard
"Select Color" dialog box:
\image html selectcolor.png
*/