Gecode::Gist::TreeCanvas Class Reference
A canvas that displays the search tree. More...
#include <treecanvas.hh>
Public Slots | |
void | scaleTree (int scale0) |
Set scale factor to scale0. | |
void | searchAll (void) |
Explore complete subtree of selected node. | |
void | searchOne (void) |
Find next solution below selected node. | |
void | toggleHidden (void) |
Toggle hidden state of selected node. | |
void | hideFailed (void) |
Hide failed subtrees of selected node. | |
void | unhideAll (void) |
Unhide all nodes below selected node. | |
void | exportPDF (void) |
Export pdf of the current subtree. | |
void | exportWholeTreePDF (void) |
Export pdf of the whole tree. | |
void | print (void) |
Print the tree. | |
void | zoomToFit (void) |
Zoom the canvas so that the whole tree fits. | |
void | centerCurrentNode (void) |
Center the view on the currently selected node. | |
void | inspectCurrentNode (void) |
Call the double click inspector for the currently selected node. | |
void | stopSearch (void) |
Stop current search. | |
void | reset (void) |
Reset. | |
void | navUp (void) |
Move selection to the parent of the selected node. | |
void | navDown (void) |
Move selection to the first child of the selected node. | |
void | navLeft (void) |
Move selection to the left sibling of the selected node. | |
void | navRight (void) |
Move selection to the right sibling of the selected node. | |
void | navRoot (void) |
Move selection to the root node. | |
void | navNextSol (bool back=false) |
Move selection to next solution (in DFS order). | |
void | navPrevSol (void) |
Move selection to previous solution (in DFS order). | |
void | markCurrentNode (int pit) |
Recall selection of point in time pit. | |
void | setPath (void) |
Set the current node to be the head of the path. | |
void | inspectPath (void) |
Call the double click inspector for all nodes on the path from root to head of the path. | |
void | emitStatusChanged (void) |
Re-emit status change information for current node. | |
void | setRecompDistances (int c_d, int a_d) |
Set recomputation distances. | |
void | setAutoHideFailed (bool b) |
Set preference whether to automatically hide failed subtrees. | |
void | setAutoZoom (bool b) |
Set preference whether to automatically zoom to fit. | |
bool | getAutoHideFailed (void) |
Return preference whether to automatically hide failed subtrees. | |
bool | getAutoZoom (void) |
Return preference whether to automatically zoom to fit. | |
void | setShowCopies (bool b) |
Set preference whether to show copies in the tree. | |
bool | getShowCopies (void) |
Return preference whether to show copies in the tree. | |
void | setRefresh (int i) |
Set refresh rate. | |
bool | getSmoothScrollAndZoom (void) |
Return preference whether to use smooth scrolling and zooming. | |
void | setSmoothScrollAndZoom (bool b) |
Set preference whether to use smooth scrolling and zooming. | |
void | resizeToOuter (void) |
Resize to the outer widget size if auto zoom is enabled. | |
bool | finish (void) |
Stop search and wait for it to finish. | |
void | update (void) |
Update display. | |
void | layoutDone (int w, int h, int scale0) |
Layout done. | |
Signals | |
void | scaleChanged (int) |
The scale factor has changed. | |
void | autoZoomChanged (bool) |
The auto-zoom state was changed. | |
void | contextMenu (QContextMenuEvent *) |
Context menu triggered. | |
void | statusChanged (VisualNode *, const Statistics &, bool) |
Status bar update. | |
void | pointInTimeChanged (int pit) |
The point in time changed to pit. | |
void | solution (const Space *) |
Signals that a solution has been found. | |
void | finished (void) |
Signals that Gist is finished. | |
Public Member Functions | |
TreeCanvas (Space *rootSpace, bool bab, QWidget *parent, const Options &opt) | |
Constructor. | |
~TreeCanvas (void) | |
Destructor. | |
void | addDoubleClickInspector (Inspector *i) |
Add inspector i. | |
void | activateDoubleClickInspector (int i, bool active) |
Set active inspector. | |
void | addSolutionInspector (Inspector *i) |
Add inspector i. | |
void | activateSolutionInspector (int i, bool active) |
Set active inspector. | |
Protected Member Functions | |
VisualNode * | eventNode (QEvent *event) |
Return the node corresponding to the event position. | |
bool | event (QEvent *event) |
General event handler, used for displaying tool tips. | |
void | paintEvent (QPaintEvent *event) |
Paint the tree. | |
void | mousePressEvent (QMouseEvent *event) |
Handle mouse press event. | |
void | mouseDoubleClickEvent (QMouseEvent *event) |
Handle mouse double click event. | |
void | contextMenuEvent (QContextMenuEvent *event) |
Handle context menu event. | |
void | setCurrentNode (VisualNode *n) |
Set the selected node to n. | |
void | saveCurrentNode (void) |
Log the current node as new point in time. | |
virtual void | timerEvent (QTimerEvent *e) |
Timer invoked for smooth zooming and scrolling. | |
Protected Attributes | |
QMutex | mutex |
Mutex for synchronizing acccess to the tree. | |
QMutex | layoutMutex |
Mutex for synchronizing layout and drawing. | |
SearcherThread | searcher |
Search engine thread. | |
bool | stopSearchFlag |
Flag signalling the search to stop. | |
bool | finishedFlag |
Flag signalling that Gist is ready to be closed. | |
Node::NodeAllocator * | na |
Allocator for nodes. | |
VisualNode * | root |
The root node of the tree. | |
BestNode * | curBest |
The currently best solution (for branch-and-bound). | |
VisualNode * | currentNode |
The currently selected node. | |
VisualNode * | pathHead |
The head of the currently selected path. | |
QVector< VisualNode * > | nodeMap |
The history of inspected nodes. | |
QVector< QPair< Inspector *, bool > > | doubleClickInspectors |
The registered click inspectors, and whether they are active. | |
QVector< QPair< Inspector *, bool > > | solutionInspectors |
The registered solution inspectors, and whether they are active. | |
QSlider * | scaleBar |
The scale bar. | |
Statistics | stats |
Statistics about the search tree. | |
double | scale |
Current scale factor. | |
int | xtrans |
Offset on the x axis so that the tree is centered. | |
bool | autoHideFailed |
Whether to hide failed subtrees automatically. | |
bool | autoZoom |
Whether to zoom automatically. | |
bool | showCopies |
Whether to show copies in the tree. | |
int | refresh |
Refresh rate. | |
bool | smoothScrollAndZoom |
Whether to use smooth scrolling and zooming. | |
int | c_d |
The recomputation distance. | |
int | a_d |
The adaptive recomputation distance. | |
int | nextPit |
The next point in time. | |
int | targetZoom |
Target zoom value for smooth zooming. | |
double | metaZoomCurrent |
Meta current zoom value. | |
int | zoomTimerId |
Timer id for smooth zooming. | |
int | targetScrollX |
Target x coordinate for smooth scrolling. | |
int | targetScrollY |
Target y coordinate for smooth scrolling. | |
double | metaScrollXCurrent |
Meta current x coordinate. | |
double | metaScrollYCurrent |
Meta current y coordinate. | |
int | scrollTimerId |
Timer id for smooth scrolling. | |
int | targetW |
Target width after layout. | |
int | targetH |
Target height after layout. | |
int | targetScale |
Target scale after layout. | |
int | layoutDoneTimerId |
Timer id for delaying the update. |
Detailed Description
A canvas that displays the search tree.
Definition at line 87 of file treecanvas.hh.
Constructor & Destructor Documentation
Gecode::Gist::TreeCanvas::TreeCanvas | ( | Space * | rootSpace, | |
bool | bab, | |||
QWidget * | parent, | |||
const Options & | opt | |||
) |
Constructor.
Definition at line 55 of file treecanvas.cpp.
Gecode::Gist::TreeCanvas::~TreeCanvas | ( | void | ) |
Destructor.
Definition at line 106 of file treecanvas.cpp.
Member Function Documentation
void Gecode::Gist::TreeCanvas::addDoubleClickInspector | ( | Inspector * | i | ) |
Add inspector i.
Definition at line 109 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::activateDoubleClickInspector | ( | int | i, | |
bool | active | |||
) |
Set active inspector.
Definition at line 114 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::addSolutionInspector | ( | Inspector * | i | ) |
Add inspector i.
Definition at line 119 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::activateSolutionInspector | ( | int | i, | |
bool | active | |||
) |
Set active inspector.
Definition at line 124 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::scaleTree | ( | int | scale0 | ) | [slot] |
Set scale factor to scale0.
Definition at line 129 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::searchAll | ( | void | ) | [slot] |
Explore complete subtree of selected node.
Definition at line 336 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::searchOne | ( | void | ) | [slot] |
Find next solution below selected node.
Definition at line 342 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::toggleHidden | ( | void | ) | [slot] |
Toggle hidden state of selected node.
Definition at line 348 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::hideFailed | ( | void | ) | [slot] |
Hide failed subtrees of selected node.
Definition at line 357 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::unhideAll | ( | void | ) | [slot] |
Unhide all nodes below selected node.
Definition at line 366 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::exportPDF | ( | void | ) | [slot] |
Export pdf of the current subtree.
Definition at line 804 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::exportWholeTreePDF | ( | void | ) | [slot] |
Export pdf of the whole tree.
Definition at line 797 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::print | ( | void | ) | [slot] |
Print the tree.
Definition at line 811 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::zoomToFit | ( | void | ) | [slot] |
Zoom the canvas so that the whole tree fits.
Definition at line 423 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::centerCurrentNode | ( | void | ) | [slot] |
Center the view on the currently selected node.
Definition at line 457 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::inspectCurrentNode | ( | void | ) | [slot] |
Call the double click inspector for the currently selected node.
Definition at line 493 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::stopSearch | ( | void | ) | [slot] |
Stop current search.
Definition at line 580 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::reset | ( | void | ) | [slot] |
Reset.
Definition at line 586 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::navUp | ( | void | ) | [slot] |
Move selection to the parent of the selected node.
Definition at line 647 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::navDown | ( | void | ) | [slot] |
Move selection to the first child of the selected node.
Definition at line 660 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::navLeft | ( | void | ) | [slot] |
Move selection to the left sibling of the selected node.
Definition at line 685 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::navRight | ( | void | ) | [slot] |
Move selection to the right sibling of the selected node.
Definition at line 699 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::navRoot | ( | void | ) | [slot] |
Move selection to the root node.
Definition at line 713 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::navNextSol | ( | bool | back = false |
) | [slot] |
Move selection to next solution (in DFS order).
Definition at line 720 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::navPrevSol | ( | void | ) | [slot] |
Move selection to previous solution (in DFS order).
Definition at line 732 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::markCurrentNode | ( | int | pit | ) | [slot] |
Recall selection of point in time pit.
Definition at line 737 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::setPath | ( | void | ) | [slot] |
Set the current node to be the head of the path.
Definition at line 612 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::inspectPath | ( | void | ) | [slot] |
Call the double click inspector for all nodes on the path from root to head of the path.
Definition at line 626 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::emitStatusChanged | ( | void | ) | [slot] |
Re-emit status change information for current node.
Definition at line 642 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::setRecompDistances | ( | int | c_d, | |
int | a_d | |||
) | [slot] |
Set recomputation distances.
Definition at line 1013 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::setAutoHideFailed | ( | bool | b | ) | [slot] |
Set preference whether to automatically hide failed subtrees.
Definition at line 1018 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::setAutoZoom | ( | bool | b | ) | [slot] |
Set preference whether to automatically zoom to fit.
Definition at line 1023 of file treecanvas.cpp.
bool Gecode::Gist::TreeCanvas::getAutoHideFailed | ( | void | ) | [slot] |
Return preference whether to automatically hide failed subtrees.
Definition at line 1042 of file treecanvas.cpp.
bool Gecode::Gist::TreeCanvas::getAutoZoom | ( | void | ) | [slot] |
Return preference whether to automatically zoom to fit.
Definition at line 1047 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::setShowCopies | ( | bool | b | ) | [slot] |
Set preference whether to show copies in the tree.
Definition at line 1033 of file treecanvas.cpp.
bool Gecode::Gist::TreeCanvas::getShowCopies | ( | void | ) | [slot] |
Return preference whether to show copies in the tree.
Definition at line 1037 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::setRefresh | ( | int | i | ) | [slot] |
Set refresh rate.
Definition at line 1052 of file treecanvas.cpp.
bool Gecode::Gist::TreeCanvas::getSmoothScrollAndZoom | ( | void | ) | [slot] |
Return preference whether to use smooth scrolling and zooming.
Definition at line 1057 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::setSmoothScrollAndZoom | ( | bool | b | ) | [slot] |
Set preference whether to use smooth scrolling and zooming.
Definition at line 1062 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::resizeToOuter | ( | void | ) | [slot] |
Resize to the outer widget size if auto zoom is enabled.
Definition at line 901 of file treecanvas.cpp.
bool Gecode::Gist::TreeCanvas::finish | ( | void | ) | [slot] |
Stop search and wait for it to finish.
Definition at line 971 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::scaleChanged | ( | int | ) | [signal] |
The scale factor has changed.
void Gecode::Gist::TreeCanvas::autoZoomChanged | ( | bool | ) | [signal] |
The auto-zoom state was changed.
void Gecode::Gist::TreeCanvas::contextMenu | ( | QContextMenuEvent * | ) | [signal] |
Context menu triggered.
void Gecode::Gist::TreeCanvas::statusChanged | ( | VisualNode * | , | |
const Statistics & | , | |||
bool | ||||
) | [signal] |
Status bar update.
void Gecode::Gist::TreeCanvas::pointInTimeChanged | ( | int | pit | ) | [signal] |
The point in time changed to pit.
void Gecode::Gist::TreeCanvas::solution | ( | const Space * | ) | [signal] |
Signals that a solution has been found.
void Gecode::Gist::TreeCanvas::finished | ( | void | ) | [signal] |
Signals that Gist is finished.
VisualNode * Gecode::Gist::TreeCanvas::eventNode | ( | QEvent * | event | ) | [protected] |
Return the node corresponding to the event position.
Definition at line 844 of file treecanvas.cpp.
bool Gecode::Gist::TreeCanvas::event | ( | QEvent * | event | ) | [protected] |
General event handler, used for displaying tool tips.
Definition at line 882 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::paintEvent | ( | QPaintEvent * | event | ) | [protected] |
Paint the tree.
Definition at line 907 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::mousePressEvent | ( | QMouseEvent * | event | ) | [protected] |
Handle mouse press event.
Definition at line 996 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::mouseDoubleClickEvent | ( | QMouseEvent * | event | ) | [protected] |
Handle mouse double click event.
Definition at line 938 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::contextMenuEvent | ( | QContextMenuEvent * | event | ) | [protected] |
Handle context menu event.
Definition at line 955 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::setCurrentNode | ( | VisualNode * | n | ) | [protected] |
Set the selected node to n.
Definition at line 984 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::saveCurrentNode | ( | void | ) | [protected] |
Log the current node as new point in time.
Definition at line 747 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::timerEvent | ( | QTimerEvent * | e | ) | [protected, virtual] |
Timer invoked for smooth zooming and scrolling.
Definition at line 376 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::update | ( | void | ) | [slot] |
Update display.
Definition at line 147 of file treecanvas.cpp.
void Gecode::Gist::TreeCanvas::layoutDone | ( | int | w, | |
int | h, | |||
int | scale0 | |||
) | [slot] |
Layout done.
Definition at line 168 of file treecanvas.cpp.
Member Data Documentation
QMutex Gecode::Gist::TreeCanvas::mutex [protected] |
Mutex for synchronizing acccess to the tree.
Definition at line 209 of file treecanvas.hh.
QMutex Gecode::Gist::TreeCanvas::layoutMutex [protected] |
Mutex for synchronizing layout and drawing.
Definition at line 211 of file treecanvas.hh.
SearcherThread Gecode::Gist::TreeCanvas::searcher [protected] |
Search engine thread.
Definition at line 213 of file treecanvas.hh.
bool Gecode::Gist::TreeCanvas::stopSearchFlag [protected] |
Flag signalling the search to stop.
Definition at line 215 of file treecanvas.hh.
bool Gecode::Gist::TreeCanvas::finishedFlag [protected] |
Flag signalling that Gist is ready to be closed.
Definition at line 217 of file treecanvas.hh.
Node::NodeAllocator* Gecode::Gist::TreeCanvas::na [protected] |
Allocator for nodes.
Definition at line 219 of file treecanvas.hh.
VisualNode* Gecode::Gist::TreeCanvas::root [protected] |
The root node of the tree.
Definition at line 221 of file treecanvas.hh.
BestNode* Gecode::Gist::TreeCanvas::curBest [protected] |
The currently best solution (for branch-and-bound).
Definition at line 223 of file treecanvas.hh.
VisualNode* Gecode::Gist::TreeCanvas::currentNode [protected] |
The currently selected node.
Definition at line 225 of file treecanvas.hh.
VisualNode* Gecode::Gist::TreeCanvas::pathHead [protected] |
The head of the currently selected path.
Definition at line 227 of file treecanvas.hh.
QVector<VisualNode*> Gecode::Gist::TreeCanvas::nodeMap [protected] |
The history of inspected nodes.
Definition at line 229 of file treecanvas.hh.
QVector<QPair<Inspector*,bool> > Gecode::Gist::TreeCanvas::doubleClickInspectors [protected] |
The registered click inspectors, and whether they are active.
Definition at line 231 of file treecanvas.hh.
QVector<QPair<Inspector*,bool> > Gecode::Gist::TreeCanvas::solutionInspectors [protected] |
The registered solution inspectors, and whether they are active.
Definition at line 233 of file treecanvas.hh.
QSlider* Gecode::Gist::TreeCanvas::scaleBar [protected] |
The scale bar.
Definition at line 236 of file treecanvas.hh.
Statistics Gecode::Gist::TreeCanvas::stats [protected] |
Statistics about the search tree.
Definition at line 239 of file treecanvas.hh.
double Gecode::Gist::TreeCanvas::scale [protected] |
Current scale factor.
Definition at line 242 of file treecanvas.hh.
int Gecode::Gist::TreeCanvas::xtrans [protected] |
Offset on the x axis so that the tree is centered.
Definition at line 244 of file treecanvas.hh.
bool Gecode::Gist::TreeCanvas::autoHideFailed [protected] |
Whether to hide failed subtrees automatically.
Definition at line 247 of file treecanvas.hh.
bool Gecode::Gist::TreeCanvas::autoZoom [protected] |
Whether to zoom automatically.
Definition at line 249 of file treecanvas.hh.
bool Gecode::Gist::TreeCanvas::showCopies [protected] |
Whether to show copies in the tree.
Definition at line 251 of file treecanvas.hh.
int Gecode::Gist::TreeCanvas::refresh [protected] |
Refresh rate.
Definition at line 253 of file treecanvas.hh.
bool Gecode::Gist::TreeCanvas::smoothScrollAndZoom [protected] |
Whether to use smooth scrolling and zooming.
Definition at line 255 of file treecanvas.hh.
int Gecode::Gist::TreeCanvas::c_d [protected] |
The recomputation distance.
Definition at line 258 of file treecanvas.hh.
int Gecode::Gist::TreeCanvas::a_d [protected] |
The adaptive recomputation distance.
Definition at line 260 of file treecanvas.hh.
int Gecode::Gist::TreeCanvas::nextPit [protected] |
The next point in time.
Definition at line 263 of file treecanvas.hh.
int Gecode::Gist::TreeCanvas::targetZoom [protected] |
Target zoom value for smooth zooming.
Definition at line 283 of file treecanvas.hh.
double Gecode::Gist::TreeCanvas::metaZoomCurrent [protected] |
Meta current zoom value.
Definition at line 285 of file treecanvas.hh.
int Gecode::Gist::TreeCanvas::zoomTimerId [protected] |
Timer id for smooth zooming.
Definition at line 287 of file treecanvas.hh.
int Gecode::Gist::TreeCanvas::targetScrollX [protected] |
Target x coordinate for smooth scrolling.
Definition at line 290 of file treecanvas.hh.
int Gecode::Gist::TreeCanvas::targetScrollY [protected] |
Target y coordinate for smooth scrolling.
Definition at line 292 of file treecanvas.hh.
double Gecode::Gist::TreeCanvas::metaScrollXCurrent [protected] |
Meta current x coordinate.
Definition at line 294 of file treecanvas.hh.
double Gecode::Gist::TreeCanvas::metaScrollYCurrent [protected] |
Meta current y coordinate.
Definition at line 296 of file treecanvas.hh.
int Gecode::Gist::TreeCanvas::scrollTimerId [protected] |
Timer id for smooth scrolling.
Definition at line 298 of file treecanvas.hh.
int Gecode::Gist::TreeCanvas::targetW [protected] |
Target width after layout.
Definition at line 301 of file treecanvas.hh.
int Gecode::Gist::TreeCanvas::targetH [protected] |
Target height after layout.
Definition at line 303 of file treecanvas.hh.
int Gecode::Gist::TreeCanvas::targetScale [protected] |
Target scale after layout.
Definition at line 305 of file treecanvas.hh.
int Gecode::Gist::TreeCanvas::layoutDoneTimerId [protected] |
Timer id for delaying the update.
Definition at line 307 of file treecanvas.hh.
The documentation for this class was generated from the following files:
- gecode/gist/treecanvas.hh (Revision: 9107)
- gecode/gist/treecanvas.cpp (Revision: 9124)