![]() |
ImFusion C++ SDK 4.5.0
|
#include <ImFusion/US/GeometryDetectionController.h>
GUI controller for BaseGeometryDetectionAlgorithm used for real-time ultrasound video content detection, and its derived algorithms (GeometryDetectionAlgorithm, LiveGeometryDetectionAlgorithm). More...
GUI controller for BaseGeometryDetectionAlgorithm used for real-time ultrasound video content detection, and its derived algorithms (GeometryDetectionAlgorithm, LiveGeometryDetectionAlgorithm).
Extends DefaultAlgorithmController with detection-specific UI: GeometryDetection parameters from the algorithm, a detected frame-geometry outline on the main ImageView2D, an optional second ImageView2D for the debug image when enableDebugImage is on, and for UltrasoundSweep input an Assign Geometry to Sweep button that copies geometry() to the sweep and optionally applies a FanMask when p_mask is enabled.
Use showComputeButton = false for LiveGeometryDetectionAlgorithm, where detection runs on incoming stream frames and the Compute button is hidden. For clip-based GeometryDetectionAlgorithm the default true leaves Compute visible.
Public Member Functions | |
| GeometryDetectionController (BaseGeometryDetectionAlgorithm *alg, bool showComputeButton=true) | |
| void | init () override |
| Initializes DefaultAlgorithmController, optionally hides Compute, and adds Assign Geometry to Sweep for UltrasoundSweep input. | |
| void | onAlgorithmOutputChanged () override |
| Schedules updateFan() when the algorithm signals new output (e.g. after live stream detection). | |
| void | onSelectedDataChanged (const DataList &list) override |
| Shows or hides the GlFanGeometry outline depending on whether the algorithm input data is selected in the DataModel. | |
| Public Member Functions inherited from ImFusion::DefaultAlgorithmController | |
| DefaultAlgorithmController (Algorithm *algo, const QString &uiTemplate="", bool configureOnChanged=false, bool autoDeleteAfterCompute=false) | |
| void | setAutoDeleteAfterCompute (bool enable) |
| Sets if the algorithm will be deleted after onCompute() was called. | |
| void | setConfigureOnChanged (bool enable) |
| Sets if the algorithm should be re-configured with each changed value. | |
| void | hideComputeButton (bool hide) |
| Hides or shows the compute button. | |
| void | setAddAlgorithmToHistory (bool toggle) |
| Enable/disable algorithm registration on compute. | |
| virtual void | copyAlgorithmConfiguration () const |
| Copy the algorithm configuration as currently shown in the controller to the clipboard. | |
| virtual void | pasteAlgorithmConfiguration () |
| Paste the algorithm configuration from the clipboard. | |
| void | setSplitCamelCase (bool enable) |
| Calls PropertiesWidget::setSplitCamelCase(enabled) on m_propertiesWidget. | |
| void | setCustomWidget (const std::string &subPropertyName, std::unique_ptr< QWidget > widget) |
| Assign a custom widget to the subproperty. | |
| OptimizationDialog * | optimizationDialog () const |
| Getter for the OptimizationDialog. | |
| Public Member Functions inherited from ImFusion::AlgorithmController | |
| AlgorithmController (Algorithm *algorithm) | |
| Creates a new AlgorithmController wrapping the given algorithm, which must not be null. | |
| const Algorithm * | algorithm () const |
| Returns the underlying Algorithm instance. | |
| Algorithm * | algorithm () |
| void | showInputData () |
| Shows the input data in the DisplayWidget. | |
| InputDataVisibility | showsInputData () |
| Checks if the input data is currently visible in the DisplayWidget. | |
| void | showHelp () |
| Attempts to open the user documentation page for the underlying algorithm. | |
| std::optional< Filesystem::Path > | helpPath () const |
| Returns the path to the user documentation page if it is available, std::nullopt otherwise. | |
| std::string | title () const override |
| Returns the original factory name of the underlying Algorithm. | |
| Public Member Functions inherited from ImFusion::Controller | |
| void | setMainWindowBase (MainWindowBase *mw) |
| Complete the initialization by providing the parent MainWindowBase instance hosting the controller by setting m_main and m_disp and eventually call init(). | |
| virtual void | onVisibleDataChanged (const DataList &) |
| Called by MainWindowBase in the case that the currently visible data has changed. | |
| virtual std::vector< Location > | supportedLocations () const |
| Returns the list of locations in which this controller is allowed to be placed by the parent MainWindowBase. | |
| virtual Location | preferredLocation () const |
| Returns the preferred location in which the parent MainWindowBase should place this controller. | |
| virtual void | onLocationChanged (Location newLocation) |
| Callback function called by the parent MainWindowBase/ControllerDecorator whenever the place was changed. | |
| Location | location () const |
| Convenience function to query the current controller Location from the parent ControllerDecorator. | |
| ControllerDecorator * | getDecorator () const |
| Convenience function to return m_main->getControllerDecorator(this) if m_main is set or nullptr otherwise. | |
| template<typename T> | |
| T * | getDecorator () const |
| Convenience function to dynamic_cast the return value of getDecorator() to a derived type. | |
| Public Member Functions inherited from ImFusion::Configurable | |
| virtual void | configure (const Properties *p) |
| Configure this object instance by de-serializing the given Properties. | |
| virtual void | configuration (Properties *p) const |
| Serialize the current object configuration into the given Properties object. | |
| virtual void | configureDefaults () |
| Retrieve the properties of this object, replaces values with their defaults and sets it again. | |
| void | registerParameter (ParameterBase *param) |
| Register the given Parameter or SubProperty, so that it will be configured during configure()/configuration(). | |
| void | unregisterParameter (const ParameterBase *param) |
| Remove the given Parameter or SubProperty from the list of registered parameters. | |
| Configurable (const Configurable &rhs) | |
| Configurable (Configurable &&rhs) noexcept | |
| Configurable & | operator= (const Configurable &) |
| Configurable & | operator= (Configurable &&) noexcept |
| Public Member Functions inherited from ImFusion::SignalReceiver | |
| SignalReceiver ()=default | |
| Default constructor. | |
| SignalReceiver (const SignalReceiver &other) | |
| Copy constructor, does not copy any existing signal connections from other. | |
| SignalReceiver & | operator= (SignalReceiver rhs) |
| Assignment operator, disconnects all existing connections, does not copy any existing signal connections from rhs. | |
| virtual | ~SignalReceiver () |
| Virtual destructor disconnects from all connected signals. | |
Additional Inherited Members | |
| Public Types inherited from ImFusion::AlgorithmController | |
| enum class | InputDataVisibility { None = 0 , All = 1 , Some = 2 } |
| Enumeration of possible return values for showsInputData(). More... | |
| Public Types inherited from ImFusion::Controller | |
| enum class | Location : int { Unknown = -1 , Naked = 0 , PrimaryDock = 1 , SecondaryDock = 2 , Detached = 3 , ToolBar = 4 , UserLocation = 100 } |
| Enumeration of possible placement/decoration options of a Controller. More... | |
| Public Slots inherited from ImFusion::DefaultAlgorithmController | |
| virtual void | onCompute () |
| virtual void | updatePropertiesWidget () |
| Public Attributes inherited from ImFusion::Controller | |
| Signal | signalTitleChanged |
| Signal emitted when the title() has changed. | |
| Public Attributes inherited from ImFusion::Configurable | |
| Signal | signalParametersChanged |
| Emitted whenever one of the registered Parameters' or SubPropertys' signalValueChanged signal was emitted. | |
| Protected Slots inherited from ImFusion::DefaultAlgorithmController | |
| virtual void | onParameterChanged (const std::string ¶mName) |
| Protected Member Functions inherited from ImFusion::DefaultAlgorithmController | |
| void | addButton (const QString &title, const std::function< void()> &callback, int position=-1) |
| Adds a button at the end of the widget One can pass a position to indicate the order of the added buttons, by passing nothing, the button is added to the end Note: Buttons must be added before the init method is called. | |
| virtual void | fillActionMenu (QMenu &menu) |
| Fill a QMenu with all available actions. | |
| void | onAlgorithmParametersChanged () override |
| Callback called when the Algorithm's signalParametersChanged signal was emitted. | |
| QVBoxLayout * | layout () const |
| Return the main layout of the controller. | |
| virtual OwningDataList | postprocessOutput (OwningDataList output) |
| This function will be called directly on the output generated by the algorithm. | |
| void | duplicateAlgorithmOnSelectedData () const override |
| Instantiates a new copy of underlying Algorithm on the currently selected Data in the DataModel and adds it to the ApplicationController. | |
| Protected Member Functions inherited from ImFusion::AlgorithmController | |
| virtual void | closeAlgorithm (bool executed=false) |
| Removes the algorithm from the ApplicationController and closes the controller. | |
| void | addToDataAndAnnotationModels (OwningDataList data) |
| Adds the contents of data to the DataModel of the parent MainWindowBase. | |
| Protected Member Functions inherited from ImFusion::SignalReceiver | |
| void | disconnectAll () |
| Disconnects all existing connections. | |
| Protected Attributes inherited from ImFusion::DefaultAlgorithmController | |
| bool | m_autoDeleteAfterCompute |
| bool | m_configureOnChanged |
| bool | m_isInitialized = false |
| bool | m_addAlgorithmToHistory = true |
| enable/disable register algorithm on compute() | |
| bool | m_optUpdatesDisplay = false |
| enable/disable display updates from the optimizer | |
| PropertiesWidget * | m_propertiesWidget = nullptr |
| OptimizationDialog * | m_optDialog = nullptr |
| QVBoxLayout * | m_layout = nullptr |
| QPushButton * | m_optDialogButton = nullptr |
| QPushButton * | m_computeButton = nullptr |
| QList< QPushButton * > | m_buttons |
| Protected Attributes inherited from ImFusion::AlgorithmController | |
| Algorithm * | m_algorithm = nullptr |
| The underlying algorithm. | |
| Protected Attributes inherited from ImFusion::Controller | |
| MainWindowBase * | m_main = nullptr |
| The parent MainWindowBase instance hosting this Controller. | |
| DisplayWidgetMulti * | m_disp = nullptr |
| The main DisplayWidget instance, convenience shortcut for m_main->display(). | |
| Protected Attributes inherited from ImFusion::Configurable | |
| std::vector< Param > | m_params |
| List of all registered Parameter and SubProperty instances. | |
|
explicit |
| alg | Geometry detection algorithm instance controlled by this controller. |
| showComputeButton | If false, hides the default Compute button (live stream workflows). |
|
overridevirtual |
Initializes DefaultAlgorithmController, optionally hides Compute, and adds Assign Geometry to Sweep for UltrasoundSweep input.
Reimplemented from ImFusion::DefaultAlgorithmController.
|
overridevirtual |
Schedules updateFan() when the algorithm signals new output (e.g. after live stream detection).
Reimplemented from ImFusion::DefaultAlgorithmController.
|
overridevirtual |
Shows or hides the GlFanGeometry outline depending on whether the algorithm input data is selected in the DataModel.
Reimplemented from ImFusion::Controller.