Skip to content
  • LocalSceneWidget
  • class Esri::ArcGISRuntime::LocalSceneWidget

    A LocalScene view implemented as a QWidget component. More...

    Header: #include <LocalSceneWidget.h>
    Since: Esri::ArcGISRuntime 300.0
    Inherits: Esri::ArcGISRuntime::NativeWidget and Esri::ArcGISRuntime::LocalSceneView

    Public Functions

    LocalSceneWidget(QWidget *parent = nullptr)
    LocalSceneWidget(Esri::ArcGISRuntime::Scene *scene, QWidget *parent = nullptr)
    virtual ~LocalSceneWidget() override

    Signals

    void attributionRectChanged()
    void attributionTextChanged()
    void criticalErrorChanged(const Esri::ArcGISRuntime::Error &criticalError)
    void drawStatusChanged(Esri::ArcGISRuntime::DrawStatus status)
    void errorOccurred(const Esri::ArcGISRuntime::Error &error)
    (since Esri::ArcGISRuntime 300.0) void geoModelErrorChanged(const Esri::ArcGISRuntime::Error &error)
    void hoverEntered(QHoverEvent &hoverEvent)
    void hoverLeft(QHoverEvent &hoverEvent)
    void hoverMoved(QHoverEvent &hoverEvent)
    void keyPressed(QKeyEvent &keyEvent)
    void keyReleased(QKeyEvent &keyEvent)
    void layerViewStateChanged(Esri::ArcGISRuntime::Layer *layer, const Esri::ArcGISRuntime::LayerViewState &layerViewState)
    void mouseClicked(QMouseEvent &mouseEvent)
    void mouseDoubleClicked(QMouseEvent &mouseEvent)
    void mouseMoved(QMouseEvent &mouseEvent)
    void mousePressed(QMouseEvent &mouseEvent)
    void mousePressedAndHeld(QMouseEvent &mouseEvent)
    void mouseReleased(QMouseEvent &mouseEvent)
    void mouseWheelChanged(QWheelEvent &wheelEvent)
    void navigatingChanged()
    void rectChanged(const QRectF &rect)
    void sceneChanged()
    void spatialReferenceChanged()
    void touched(QTouchEvent &event)
    void viewpointChanged()
    void warningsChanged(const QList<Esri::ArcGISRuntime::Error> &warnings)

    Detailed Description

    LocalSceneWidget is a QWidget-based view that renders a 3D local scene and forwards user input (mouse, keyboard, touch) to the underlying view implementation. It emits signals for common GeoView events (for example, `viewpointChanged`, `drawStatusChanged` and input events).

    Use `LocalSceneWidget` when building QWidget-based user interfaces that require an embedded local scene. For QML/QtQuick-based UIs use `LocalSceneQuickView`.

    See also SceneGraphicsView and LocalSceneQuickView.

    Member Function Documentation

    [explicit] LocalSceneWidget::LocalSceneWidget(QWidget *parent = nullptr)

    Constructs a LocalSceneWidget with an optional parent.

    [explicit] LocalSceneWidget::LocalSceneWidget(Esri::ArcGISRuntime::Scene *scene, QWidget *parent = nullptr)

    Constructs a LocalSceneWidget with a scene and an optional parent.

    [override virtual noexcept] LocalSceneWidget::~LocalSceneWidget()

    Destroys the LocalSceneWidget.

    [signal] void LocalSceneWidget::attributionRectChanged()

    Emitted when the attribution bounding rectangle changes.

    [signal] void LocalSceneWidget::attributionTextChanged()

    Emitted when the attribution text changes.

    [signal] void LocalSceneWidget::criticalErrorChanged(const Esri::ArcGISRuntime::Error &criticalError)

    Signal emitted when a critical error has occurred on the view.

    A critical error means that the view has reached an unusable state from which it cannot recover. This signal is only emitted once.

    Examples of a critical error include:

    • The graphics driver doesn't meet the minimum requirements.
    • A critical rendering exception is thrown.
    • criticalError - The critical error on the view.

    [signal] void LocalSceneWidget::drawStatusChanged(Esri::ArcGISRuntime::DrawStatus status)

    Signal emitted when the DrawStatus changes.

    [signal] void LocalSceneWidget::errorOccurred(const Esri::ArcGISRuntime::Error &error)

    Signal emitted when an error occurs.

    • error - Details about the error.

    [signal, since Esri::ArcGISRuntime 300.0] void LocalSceneWidget::geoModelErrorChanged(const Esri::ArcGISRuntime::Error &error)

    Signal emitted when the geo model error changes.

    This error is used to indicate that the geo model assigned to the view had an issue loading or didn't meet the requirements after loading, resulting in nothing rendering on screen.

    This signal can be emitted multiple times but only one error can be active at a time. It will be emitted when there is an error and when that error gets cleared. When the error is cleared, then the error is represented as empty.

    Examples of a possible error include:

    • error - The geo model error associated with the view.

    This function was introduced in Esri::ArcGISRuntime 300.0.

    [signal] void LocalSceneWidget::hoverEntered(QHoverEvent &hoverEvent)

    Emitted when the cursor enters.

    • hoverEvent - The hover event.

    [signal] void LocalSceneWidget::hoverLeft(QHoverEvent &hoverEvent)

    Emitted when the cursor leaves.

    • hoverEvent - The hover event.

    [signal] void LocalSceneWidget::hoverMoved(QHoverEvent &hoverEvent)

    Emitted when the cursor moves.

    • hoverEvent - The hover event.

    [signal] void LocalSceneWidget::keyPressed(QKeyEvent &keyEvent)

    Emitted when a key pressed has been detected.

    • keyEvent - The key event.

    [signal] void LocalSceneWidget::keyReleased(QKeyEvent &keyEvent)

    Emitted when a key release has been detected.

    • keyEvent - The key event.

    [signal] void LocalSceneWidget::layerViewStateChanged(Esri::ArcGISRuntime::Layer *layer, const Esri::ArcGISRuntime::LayerViewState &layerViewState)

    Signal emitted when the LayerViewState changes.

    • layer - The layer that had a state change.
    • layerViewState - The LayerViewState with the new state information.

    The returned Layer object has the LocalSceneWidget as its parent.

    See also Returned QObjects Parenting.

    [signal] void LocalSceneWidget::mouseClicked(QMouseEvent &mouseEvent)

    Emitted when mouse is pressed and released over the same location.

    • mouseEvent - The mouse event.

    [signal] void LocalSceneWidget::mouseDoubleClicked(QMouseEvent &mouseEvent)

    Emitted when a double click even is detected.

    • mouseEvent - The mouse event.

    [signal] void LocalSceneWidget::mouseMoved(QMouseEvent &mouseEvent)

    Emitted when mouse is moved.

    • mouseEvent - The mouse event.

    [signal] void LocalSceneWidget::mousePressed(QMouseEvent &mouseEvent)

    Emitted when mouse is pressed.

    • mouseEvent - The mouse event.

    [signal] void LocalSceneWidget::mousePressedAndHeld(QMouseEvent &mouseEvent)

    Emitted when there is a long press and hold (currently 800ms) on the same point.

    • mouseEvent - The mouse event.

    [signal] void LocalSceneWidget::mouseReleased(QMouseEvent &mouseEvent)

    Emitted when mouse is release.

    • mouseEvent - The mouse event.

    [signal] void LocalSceneWidget::mouseWheelChanged(QWheelEvent &wheelEvent)

    Emitted when mouse wheel movement has been detected.

    • wheelEvent - The wheel event.

    Signal emitted when the view has started or completed navigating.

    [signal] void LocalSceneWidget::rectChanged(const QRectF &rect)

    Emitted when the visible area changes.

    • rect - The new rect representing the visible area.

    [signal] void LocalSceneWidget::sceneChanged()

    Emitted when the scene changes.

    [signal] void LocalSceneWidget::spatialReferenceChanged()

    Signal emitted when the SpatialReference changed.

    [signal] void LocalSceneWidget::touched(QTouchEvent &event)

    Emitted when a touch event has been detected.

    Accept the event to prevent the SceneQuickView from performing its default gesture interaction behavior.

    • event - The touch event.

    [signal] void LocalSceneWidget::viewpointChanged()

    Emitted when the viewpoint changes.

    [signal] void LocalSceneWidget::warningsChanged(const QList<Esri::ArcGISRuntime::Error> &warnings)

    Signal emitted when the warnings on the view change.

    • warnings - The warnings on the view.

    Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.