![]() |
ACloudViewer
3.9.4
A Modern Library for 3D Data Processing
|
Point/triangle picking hub. More...
#include <ecvPickingHub.h>


Public Slots | |
| void | onActiveWindowChanged (QMdiSubWindow *) |
| void | onActiveWindowDeleted (QObject *) |
| void | processPickedItem (ccHObject *, unsigned, int, int, const CCVector3 &) |
Public Member Functions | |
| ccPickingHub (ecvMainAppInterface *app, QObject *parent=nullptr) | |
| Default constructor. More... | |
| ~ccPickingHub () override=default | |
| size_t | listenerCount () const |
| Returns the number of currently registered listeners. More... | |
| bool | addListener (ccPickingListener *listener, bool exclusive=false, bool autoStartPicking=true, ecvDisplayTools::PICKING_MODE mode=ecvDisplayTools::POINT_OR_TRIANGLE_PICKING) |
| Adds a listener. More... | |
| void | removeListener (ccPickingListener *listener, bool autoStopPickingIfLast=true) |
| Removes a listener. More... | |
| void | togglePickingMode (bool state) |
| Manual start / stop of the picking mode on the active window. More... | |
| QWidget * | activeWindow () const |
| Returns the currently active window. More... | |
| bool | isLocked () const |
Protected Attributes | |
| std::set< ccPickingListener * > | m_listeners |
| Listeners. More... | |
| ecvMainAppInterface * | m_app |
| Associated application. More... | |
| QWidget * | m_activeWindow |
| Active window. More... | |
| ecvDisplayTools::PICKING_MODE | m_pickingMode |
| Default picking mode. More... | |
| bool | m_autoEnableOnActivatedWindow |
| Automatically enables the picking mechanism on activated GL windows. More... | |
| bool | m_exclusive |
| Exclusive mode. More... | |
Point/triangle picking hub.
Definition at line 29 of file ecvPickingHub.h.
| ccPickingHub::ccPickingHub | ( | ecvMainAppInterface * | app, |
| QObject * | parent = nullptr |
||
| ) |
Default constructor.
Definition at line 19 of file ecvPickingHub.cpp.
|
overridedefault |
|
inline |
Returns the currently active window.
Definition at line 74 of file ecvPickingHub.h.
Referenced by RgbDialog::onItemPicked(), and ScalarDialog::onItemPicked().
| bool ccPickingHub::addListener | ( | ccPickingListener * | listener, |
| bool | exclusive = false, |
||
| bool | autoStartPicking = true, |
||
| ecvDisplayTools::PICKING_MODE | mode = ecvDisplayTools::POINT_OR_TRIANGLE_PICKING |
||
| ) |
Adds a listener.
| listener | listener to be registered |
| exclusive | prevents new listeners from registering |
| autoStartPicking | automatically enables the picking mode on the active window (if any) |
| mode | sets the picking mode (warning: may be rejected if another listener is currently registered with another mode) |
Definition at line 104 of file ecvPickingHub.cpp.
References m_exclusive, m_listeners, m_pickingMode, togglePickingMode(), and CVLog::Warning().
Referenced by ecvAnimationParamDlg::enableListener(), MainWindow::enablePickingOperation(), ccWaveDialog::onPointPickingButtonToggled(), ecvMeasurementTool::onPointPickingRequested(), HSVDialog::pickPoint(), RgbDialog::pickPoint_first(), ScalarDialog::pickPoint_first(), RgbDialog::pickPoint_second(), ScalarDialog::pickPoint_second(), ccPlaneEditDlg::pickPointAsCenter(), ccTracePolylineTool::restart(), ccPointPairRegistrationDlg::start(), ccPointPickingGenericInterface::start(), and ccCompass::startPicking().
|
inline |
Returns whether the picking mechanism is currently locked (i.e. an exclusive listener is registered)
Definition at line 78 of file ecvPickingHub.h.
|
inline |
Returns the number of currently registered listeners.
Definition at line 38 of file ecvPickingHub.h.
|
slot |
Definition at line 37 of file ecvPickingHub.cpp.
References ecvDisplayTools::itemPicked(), m_activeWindow, m_autoEnableOnActivatedWindow, m_listeners, onActiveWindowDeleted(), processPickedItem(), ecvDisplayTools::TheInstance(), and togglePickingMode().
|
slot |
Definition at line 70 of file ecvPickingHub.cpp.
References m_activeWindow.
Referenced by onActiveWindowChanged().
|
slot |
Definition at line 76 of file ecvPickingHub.cpp.
References ccPickingListener::PickedItem::clickPoint, ccPickingListener::PickedItem::entity, ccPickingListener::PickedItem::itemIndex, m_listeners, and ccPickingListener::PickedItem::P3D.
Referenced by onActiveWindowChanged().
| void ccPickingHub::removeListener | ( | ccPickingListener * | listener, |
| bool | autoStopPickingIfLast = true |
||
| ) |
Removes a listener.
| listener | listener to be removed |
| autoStopPickingIfLast | automatically disables the picking mode on the active window (if any) if no other listener is registered |
Definition at line 165 of file ecvPickingHub.cpp.
References m_exclusive, m_listeners, and togglePickingMode().
Referenced by MainWindow::cancelPreviousPickingOperation(), ccTracePolylineTool::closePolyLine(), ecvAnimationParamDlg::enableListener(), HSVDialog::HSVDialog(), ccPointPickingGenericInterface::linkWith(), ecvMeasurementTool::onItemPicked(), ccWaveDialog::onPointPickingButtonToggled(), ecvMeasurementTool::onPointPickingCancelled(), HSVDialog::pickPoint(), RgbDialog::pickPoint_first(), ScalarDialog::pickPoint_first(), RgbDialog::pickPoint_second(), ScalarDialog::pickPoint_second(), ccPlaneEditDlg::pickPointAsCenter(), ccTracePolylineTool::start(), ccTracePolylineTool::stop(), ecvMeasurementTool::stop(), ccPointPairRegistrationDlg::stop(), ccPointPickingGenericInterface::stop(), ccCompass::stopPicking(), and ecvMeasurementTool::~ecvMeasurementTool().
| void ccPickingHub::togglePickingMode | ( | bool | state | ) |
Manual start / stop of the picking mode on the active window.
Definition at line 27 of file ecvPickingHub.cpp.
References ecvDisplayTools::DEFAULT_PICKING, m_activeWindow, m_pickingMode, and ecvDisplayTools::SetPickingMode().
Referenced by addListener(), onActiveWindowChanged(), and removeListener().
|
protected |
Active window.
Definition at line 94 of file ecvPickingHub.h.
Referenced by onActiveWindowChanged(), onActiveWindowDeleted(), and togglePickingMode().
|
protected |
Associated application.
Definition at line 91 of file ecvPickingHub.h.
|
protected |
Automatically enables the picking mechanism on activated GL windows.
Definition at line 100 of file ecvPickingHub.h.
Referenced by onActiveWindowChanged().
|
protected |
Exclusive mode.
Definition at line 103 of file ecvPickingHub.h.
Referenced by addListener(), and removeListener().
|
protected |
Listeners.
Definition at line 88 of file ecvPickingHub.h.
Referenced by addListener(), onActiveWindowChanged(), processPickedItem(), and removeListener().
|
protected |
Default picking mode.
Definition at line 97 of file ecvPickingHub.h.
Referenced by addListener(), and togglePickingMode().