![]() |
ACloudViewer
3.9.4
A Modern Library for 3D Data Processing
|
Dialog for managing measurement tools (Distance, Contour, Protractor) More...
#include <ecvMeasurementTool.h>


Public Member Functions | |
| ecvMeasurementTool (QWidget *parent) | |
| Default constructor. More... | |
| virtual | ~ecvMeasurementTool () |
| Default destructor. More... | |
| virtual bool | linkWith (QWidget *win) override |
| Links the overlay dialog with a MDI window. More... | |
| virtual bool | start () override |
| Starts process. More... | |
| virtual void | stop (bool state) override |
| Stops process/dialog. More... | |
| void | setMeasurementTool (ecvGenericMeasurementTools *tool) |
| ecvGenericMeasurementTools * | getMeasurementTool () const |
| bool | addAssociatedEntity (ccHObject *anObject) |
| Adds an entity. More... | |
| unsigned | getNumberOfAssociatedEntity () const |
| Returns the current number of associated entities. More... | |
| ccHObject::Container | getOutputs () const |
| void | onItemPicked (const PickedItem &pi) override |
| Inherited from ccPickingListener. More... | |
Public Member Functions inherited from ccOverlayDialog | |
| ccOverlayDialog (QWidget *parent=nullptr, Qt::WindowFlags flags=Qt::FramelessWindowHint|Qt::Tool) | |
| Default constructor. More... | |
| ~ccOverlayDialog () override | |
| Destructor. More... | |
| void | reject () override |
| void | addOverridenShortcut (Qt::Key key) |
| bool | started () const |
| Returns whether the tool is currently started or not. More... | |
Public Member Functions inherited from ccPickingListener | |
| virtual | ~ccPickingListener ()=default |
Protected Slots | |
| void | reset () |
| void | closeDialog () |
| void | updateMeasurementDisplay () |
| void | toggleWidget (bool state) |
| void | exportMeasurement () |
| void | onInstanceChanged (int index) |
| void | addInstance () |
| void | removeInstance () |
| void | onPointPickingRequested (int pointIndex) |
| void | onPointPickingCancelled () |
| void | onColorButtonClicked () |
| void | onFontPropertiesChanged () |
Protected Slots inherited from ccOverlayDialog | |
| virtual void | onLinkedWindowDeletion (QObject *object=nullptr) |
| Slot called when the linked window is deleted (calls 'onClose') More... | |
Protected Member Functions | |
| void | updateResultDisplay () |
| Updates the measurement result display. More... | |
| void | updateUIFromTool () |
| Updates UI from current tool. More... | |
| void | updateToolFromUI () |
| Updates tool from UI. More... | |
| void | releaseAssociatedEntities () |
| Releases all associated entities. More... | |
| ecvGenericMeasurementTools * | createMeasurementTool (ecvGenericMeasurementTools::MeasurementType type) |
| Creates a new measurement tool instance. More... | |
| void | updateInstancesComboBox () |
| Updates instances combo box. More... | |
| void | switchToToolUI (ecvGenericMeasurementTools *tool) |
| Switches to the specified tool's UI. More... | |
| void | updateColorButtonAppearance (const QColor &color=QColor()) |
| void | applyColorToAllTools (const QColor &color=QColor()) |
| void | applyFontToTools () |
Protected Member Functions inherited from ccOverlayDialog | |
| bool | eventFilter (QObject *obj, QEvent *e) override |
Protected Attributes | |
| ecvGenericMeasurementTools * | m_tool |
| Current measurement tool. More... | |
| QList< ecvGenericMeasurementTools * > | m_toolInstances |
| List of all measurement tool instances. More... | |
| ecvGenericMeasurementTools::MeasurementType | m_measurementType |
| ccHObject | m_entityContainer |
| Associated entities container. More... | |
| ccHObject::Container | m_out_entities |
| bool | m_updatingFromTool |
| Flag to prevent recursive updates. More... | |
| ccPickingHub * | m_pickingHub |
| Picking hub for point selection. More... | |
| int | m_pickPointMode |
| Current point selection mode (0=none, 1=point1, 2=point2, 3=center) More... | |
| QColor | m_currentColor |
| Current measurement color (default: green) More... | |
| ecvFontPropertyWidget * | m_fontPropertyWidget = nullptr |
| Font property widget. More... | |
| QWidget * | m_linkedWidget = nullptr |
Protected Attributes inherited from ccOverlayDialog | |
| QWidget * | m_associatedWin |
| Associated (MDI) window. More... | |
| bool | m_processing |
| Running/processing state. More... | |
| QList< int > | m_overriddenKeys |
| Overridden keys. More... | |
Additional Inherited Members | |
Signals inherited from ccOverlayDialog | |
| void | processFinished (bool accepted) |
| Signal emitted when process is finished. More... | |
| void | shortcutTriggered (int key) |
| Signal emitted when an overridden key shortcut is pressed. More... | |
| void | shown () |
| Signal emitted when a 'show' event is detected. More... | |
Dialog for managing measurement tools (Distance, Contour, Protractor)
Definition at line 29 of file ecvMeasurementTool.h.
|
explicit |
Default constructor.
Definition at line 40 of file ecvMeasurementTool.cpp.
References addInstance(), ccOverlayDialog::addOverridenShortcut(), closeDialog(), exportMeasurement(), ecvFontPropertyWidget::fontPropertiesChanged(), m_fontPropertyWidget, m_pickingHub, onColorButtonClicked(), onFontPropertiesChanged(), onInstanceChanged(), MainWindow::pickingHub(), removeInstance(), reset(), ecvFontPropertyWidget::setColorPickerVisible(), ccOverlayDialog::shortcutTriggered(), MainWindow::TheInstance(), and updateColorButtonAppearance().
|
virtual |
Default destructor.
Definition at line 99 of file ecvMeasurementTool.cpp.
References m_pickingHub, m_toolInstances, and ccPickingHub::removeListener().
| bool ecvMeasurementTool::addAssociatedEntity | ( | ccHObject * | anObject | ) |
Adds an entity.
Definition at line 477 of file ecvMeasurementTool.cpp.
References ccHObject::addChild(), ccHObject::DP_NONE, CVLog::Error(), ccHObject::getChild(), ccHObject::getChildrenNumber(), ccHObject::isGroup(), m_entityContainer, m_toolInstances, ccObject::setEnabled(), and ccDrawableObject::setVisible().
|
protectedslot |
Definition at line 398 of file ecvMeasurementTool.cpp.
References createMeasurementTool(), m_linkedWidget, m_measurementType, CVLog::PrintDebug(), setMeasurementTool(), ecvGenericMeasurementTools::setupShortcuts(), and CVLog::Warning().
Referenced by ecvMeasurementTool().
|
protected |
Applies color to all tool instances (or current tool if "Apply all" is unchecked)
| color | Optional color to apply. If not provided, uses m_currentColor |
Definition at line 883 of file ecvMeasurementTool.cpp.
References color, m_measurementType, m_tool, m_toolInstances, and ecvGenericMeasurementTools::setColor().
Referenced by onColorButtonClicked().
|
protected |
Applies font properties to tool instances (all or current based on checkbox)
Definition at line 919 of file ecvMeasurementTool.cpp.
References ecvFontPropertyWidget::fontProperties(), m_fontPropertyWidget, m_measurementType, m_tool, m_toolInstances, ecvGenericMeasurementTools::setBold(), ecvGenericMeasurementTools::setFontColor(), ecvGenericMeasurementTools::setFontFamily(), ecvGenericMeasurementTools::setFontOpacity(), ecvGenericMeasurementTools::setFontSize(), ecvGenericMeasurementTools::setHorizontalJustification(), ecvGenericMeasurementTools::setItalic(), ecvGenericMeasurementTools::setShadow(), and ecvGenericMeasurementTools::setVerticalJustification().
Referenced by onFontPropertiesChanged().
|
protectedslot |
Definition at line 606 of file ecvMeasurementTool.cpp.
References stop().
Referenced by ecvMeasurementTool().
|
protected |
Creates a new measurement tool instance.
Definition at line 114 of file ecvMeasurementTool.cpp.
References CVLog::Error(), ccHObject::getChildrenNumber(), ccHObject::getFirstChild(), ecvGenericMeasurementTools::getMeasurementType(), ecvDisplayTools::GetVisualizer3D(), m_entityContainer, m_toolInstances, ecvGenericMeasurementTools::measurementChanged(), ecvGenericMeasurementTools::setBold(), ecvGenericMeasurementTools::setColor(), ecvGenericMeasurementTools::setFontColor(), ecvGenericMeasurementTools::setFontFamily(), ecvGenericMeasurementTools::setFontOpacity(), ecvGenericMeasurementTools::setFontSize(), ecvGenericMeasurementTools::setHorizontalJustification(), ecvGenericMeasurementTools::setInputData(), ecvGenericMeasurementTools::setItalic(), ecvGenericMeasurementTools::setShadow(), ecvGenericMeasurementTools::setVerticalJustification(), ecvGenericMeasurementTools::start(), type, and updateMeasurementDisplay().
Referenced by addInstance().
|
protectedslot |
Definition at line 684 of file ecvMeasurementTool.cpp.
References MainWindow::addToDB(), ecvGenericMeasurementTools::CONTOUR_WIDGET, ecvGenericMeasurementTools::DISTANCE_WIDGET, CVLog::Error(), ccObject::getName(), ecvGenericMeasurementTools::getOutput(), m_measurementType, m_out_entities, m_tool, m_toolInstances, CVLog::Print(), ecvGenericMeasurementTools::PROTRACTOR_WIDGET, ccObject::setEnabled(), ccObject::setName(), MainWindow::TheInstance(), and CVLog::Warning().
Referenced by ecvMeasurementTool().
|
inline |
Definition at line 46 of file ecvMeasurementTool.h.
References m_tool.
| unsigned ecvMeasurementTool::getNumberOfAssociatedEntity | ( | ) | const |
Returns the current number of associated entities.
Definition at line 512 of file ecvMeasurementTool.cpp.
References ccHObject::getChildrenNumber(), and m_entityContainer.
|
inline |
Definition at line 56 of file ecvMeasurementTool.h.
References m_out_entities.
|
overridevirtual |
Links the overlay dialog with a MDI window.
Warning: link can't be modified while dialog is displayed/process is running!
Reimplemented from ccOverlayDialog.
Definition at line 516 of file ecvMeasurementTool.cpp.
References ccOverlayDialog::linkWith(), m_linkedWidget, and m_toolInstances.
|
protectedslot |
Definition at line 839 of file ecvMeasurementTool.cpp.
References applyColorToAllTools(), m_tool, and updateUIFromTool().
Referenced by ecvMeasurementTool().
|
protectedslot |
Definition at line 909 of file ecvMeasurementTool.cpp.
References applyFontToTools(), and updateUIFromTool().
Referenced by ecvMeasurementTool().
|
protectedslot |
Definition at line 383 of file ecvMeasurementTool.cpp.
References ecvGenericMeasurementTools::getMeasurementType(), m_measurementType, m_tool, m_toolInstances, switchToToolUI(), and updateUIFromTool().
Referenced by ecvMeasurementTool().
|
overridevirtual |
Inherited from ccPickingListener.
Implements ccPickingListener.
Definition at line 737 of file ecvMeasurementTool.cpp.
References ccPickingListener::PickedItem::entity, m_measurementType, m_pickingHub, m_pickPointMode, ccOverlayDialog::m_processing, m_tool, ccPickingListener::PickedItem::P3D, CVLog::Print(), ecvGenericMeasurementTools::PROTRACTOR_WIDGET, ccPickingHub::removeListener(), ecvGenericMeasurementTools::setCenter(), ecvGenericMeasurementTools::setPoint1(), ecvGenericMeasurementTools::setPoint2(), updateUIFromTool(), CVLog::Warning(), Tuple3Tpl< Type >::x, Tuple3Tpl< Type >::y, and Tuple3Tpl< Type >::z.
|
protectedslot |
Definition at line 832 of file ecvMeasurementTool.cpp.
References m_pickingHub, m_pickPointMode, and ccPickingHub::removeListener().
Referenced by setMeasurementTool().
|
protectedslot |
Definition at line 811 of file ecvMeasurementTool.cpp.
References ccPickingHub::addListener(), m_pickingHub, m_pickPointMode, MainWindow::pickingHub(), ecvDisplayTools::POINT_PICKING, MainWindow::TheInstance(), and CVLog::Warning().
Referenced by setMeasurementTool().
|
protected |
Releases all associated entities.
Definition at line 732 of file ecvMeasurementTool.cpp.
References m_entityContainer, m_out_entities, and ccHObject::removeAllChildren().
Referenced by stop().
|
protectedslot |
Definition at line 427 of file ecvMeasurementTool.cpp.
References ecvGenericMeasurementTools::clear(), ecvGenericMeasurementTools::disableShortcuts(), ecvGenericMeasurementTools::getMeasurementWidget(), m_tool, m_toolInstances, switchToToolUI(), updateInstancesComboBox(), ecvDisplayTools::UpdateScreen(), updateUIFromTool(), and CVLog::Warning().
Referenced by ecvMeasurementTool().
|
protectedslot |
Definition at line 600 of file ecvMeasurementTool.cpp.
References m_tool, and ecvGenericMeasurementTools::reset().
Referenced by ecvMeasurementTool().
| void ecvMeasurementTool::setMeasurementTool | ( | ecvGenericMeasurementTools * | tool | ) |
Definition at line 177 of file ecvMeasurementTool.cpp.
References ecvGenericMeasurementTools::getMeasurementType(), ecvGenericMeasurementTools::getMeasurementWidget(), ecvGenericMeasurementTools::lockInteraction(), m_measurementType, m_tool, m_toolInstances, ecvGenericMeasurementTools::measurementChanged(), onPointPickingCancelled(), onPointPickingRequested(), ecvGenericMeasurementTools::pointPickingCancelled(), ecvGenericMeasurementTools::pointPickingRequested(), ecvGenericMeasurementTools::setBold(), ecvGenericMeasurementTools::setColor(), ecvGenericMeasurementTools::setFontColor(), ecvGenericMeasurementTools::setFontFamily(), ecvGenericMeasurementTools::setFontOpacity(), ecvGenericMeasurementTools::setFontSize(), ecvGenericMeasurementTools::setHorizontalJustification(), ecvGenericMeasurementTools::setItalic(), ecvGenericMeasurementTools::setShadow(), ecvGenericMeasurementTools::setVerticalJustification(), switchToToolUI(), updateInstancesComboBox(), updateMeasurementDisplay(), and updateUIFromTool().
Referenced by addInstance().
|
overridevirtual |
Starts process.
Reimplemented from ccOverlayDialog.
Definition at line 534 of file ecvMeasurementTool.cpp.
References ccHObject::getChildrenNumber(), ccHObject::getFirstChild(), m_entityContainer, m_pickingHub, ccOverlayDialog::m_processing, m_tool, m_toolInstances, MainWindow::pickingHub(), ccOverlayDialog::start(), MainWindow::TheInstance(), and CVLog::Warning().
|
overridevirtual |
Stops process/dialog.
Automatically emits the 'processFinished' signal (with input state as argument).
| accepted | process/dialog result |
Reimplemented from ccOverlayDialog.
Definition at line 572 of file ecvMeasurementTool.cpp.
References m_pickingHub, m_pickPointMode, m_tool, m_toolInstances, releaseAssociatedEntities(), ccPickingHub::removeListener(), and ccOverlayDialog::stop().
Referenced by closeDialog().
|
protected |
Switches to the specified tool's UI.
Definition at line 293 of file ecvMeasurementTool.cpp.
References ecvGenericMeasurementTools::getMeasurementWidget(), m_toolInstances, cloudViewer::core::Minimum(), ecvGenericMeasurementTools::unlockInteraction(), and updateUIFromTool().
Referenced by onInstanceChanged(), removeInstance(), and setMeasurementTool().
|
protectedslot |
Definition at line 675 of file ecvMeasurementTool.cpp.
References ecvGenericMeasurementTools::getMeasurementWidget(), and m_tool.
|
protected |
Updates color button appearance based on current color
| color | Optional color to display. If not provided, uses m_currentColor |
Definition at line 869 of file ecvMeasurementTool.cpp.
References color, and m_currentColor.
Referenced by ecvMeasurementTool(), and updateUIFromTool().
|
protected |
Updates instances combo box.
Definition at line 347 of file ecvMeasurementTool.cpp.
References ecvGenericMeasurementTools::CONTOUR_WIDGET, ecvGenericMeasurementTools::DISTANCE_WIDGET, m_tool, m_toolInstances, and ecvGenericMeasurementTools::PROTRACTOR_WIDGET.
Referenced by removeInstance(), and setMeasurementTool().
|
protectedslot |
Definition at line 608 of file ecvMeasurementTool.cpp.
References m_tool, and updateUIFromTool().
Referenced by createMeasurementTool(), and setMeasurementTool().
|
protected |
Updates the measurement result display.
|
protected |
Updates tool from UI.
|
protected |
Updates UI from current tool.
Definition at line 614 of file ecvMeasurementTool.cpp.
References ecvFontPropertyWidget::FontProperties::bold, ecvFontPropertyWidget::FontProperties::color, ecvFontPropertyWidget::FontProperties::family, ecvFontPropertyWidget::FontProperties::horizontalJustification, ecvFontPropertyWidget::FontProperties::italic, m_fontPropertyWidget, m_tool, m_updatingFromTool, ecvFontPropertyWidget::FontProperties::opacity, ecvFontPropertyWidget::setFontProperties(), ecvFontPropertyWidget::FontProperties::shadow, ecvFontPropertyWidget::FontProperties::size, updateColorButtonAppearance(), and ecvFontPropertyWidget::FontProperties::verticalJustification.
Referenced by onColorButtonClicked(), onFontPropertiesChanged(), onInstanceChanged(), onItemPicked(), removeInstance(), setMeasurementTool(), switchToToolUI(), and updateMeasurementDisplay().
|
protected |
Current measurement color (default: green)
Definition at line 136 of file ecvMeasurementTool.h.
Referenced by updateColorButtonAppearance().
|
protected |
Associated entities container.
Definition at line 122 of file ecvMeasurementTool.h.
Referenced by addAssociatedEntity(), createMeasurementTool(), getNumberOfAssociatedEntity(), releaseAssociatedEntities(), and start().
|
protected |
Font property widget.
Definition at line 139 of file ecvMeasurementTool.h.
Referenced by applyFontToTools(), ecvMeasurementTool(), and updateUIFromTool().
|
protected |
VTK widget reference from linkWith (for creating shortcuts in new instances)
Definition at line 143 of file ecvMeasurementTool.h.
Referenced by addInstance(), and linkWith().
|
protected |
Definition at line 119 of file ecvMeasurementTool.h.
Referenced by addInstance(), applyColorToAllTools(), applyFontToTools(), exportMeasurement(), onInstanceChanged(), onItemPicked(), and setMeasurementTool().
|
protected |
Definition at line 124 of file ecvMeasurementTool.h.
Referenced by exportMeasurement(), getOutputs(), and releaseAssociatedEntities().
|
protected |
Picking hub for point selection.
Definition at line 130 of file ecvMeasurementTool.h.
Referenced by ecvMeasurementTool(), onItemPicked(), onPointPickingCancelled(), onPointPickingRequested(), start(), stop(), and ~ecvMeasurementTool().
|
protected |
Current point selection mode (0=none, 1=point1, 2=point2, 3=center)
Definition at line 133 of file ecvMeasurementTool.h.
Referenced by onItemPicked(), onPointPickingCancelled(), onPointPickingRequested(), and stop().
|
protected |
Current measurement tool.
Definition at line 114 of file ecvMeasurementTool.h.
Referenced by applyColorToAllTools(), applyFontToTools(), exportMeasurement(), getMeasurementTool(), onColorButtonClicked(), onInstanceChanged(), onItemPicked(), removeInstance(), reset(), setMeasurementTool(), start(), stop(), toggleWidget(), updateInstancesComboBox(), updateMeasurementDisplay(), and updateUIFromTool().
|
protected |
List of all measurement tool instances.
Definition at line 117 of file ecvMeasurementTool.h.
Referenced by addAssociatedEntity(), applyColorToAllTools(), applyFontToTools(), createMeasurementTool(), exportMeasurement(), linkWith(), onInstanceChanged(), removeInstance(), setMeasurementTool(), start(), stop(), switchToToolUI(), updateInstancesComboBox(), and ~ecvMeasurementTool().
|
protected |
Flag to prevent recursive updates.
Definition at line 127 of file ecvMeasurementTool.h.
Referenced by updateUIFromTool().