Class SceneView

  • All Implemented Interfaces:
    android.graphics.drawable.Drawable.Callback, android.view.accessibility.AccessibilityEventSource, android.view.KeyEvent.Callback, android.view.ViewManager, android.view.ViewParent

    public final class SceneView
    extends GeoView
    A SceneView renders the data from an ArcGISScene in an Android layout, and allows users to interact with the scene.

    SceneView indirectly inherits from android's ViewGroup; in a Model View Controller (MVC) architecture, use it to represent the MVC view, and the ArcGISScene to represent the MVC model. You can define the size and layout properties of a SceneView in layout XML, or create it programmatically. In either case, call setScene to set the content to be displayed. The SceneView will automatically load the scene, its surface, basemap, operational layers, and display their contents on screen. Refer to the ArcGISScene class for more information.

    SceneView inherits from GeoView and adds 3D specific methods for scene navigation that set the viewpoint on the scene by setting a Camera. For example, setViewpointCamera(Camera). More setViewpointCamera methods are available, including overloads where an animation duration can be specified. Use isNavigating or NavigationChangedListener to determine if navigation is ongoing or completed. Once navigation is complete, get the new camera from getCurrentViewpointCamera().

    By default, you can pan, zoom, and rotate the scene using a set of standard gestures like double-tap and pinch; for more details see DefaultSceneViewOnTouchListener. You can also override standard gestures by creating your own touch listener class. To do this, either implement android.view.View.OnTouchListener, or inherit from DefaultSceneViewOnTouchListener, and pass an instance of your touch listener class to setOnTouchListener.

    Since:
    100.1.0
    See Also:
    ArcGISScene, Surface, Basemap, Layer, DefaultSceneViewOnTouchListener
    • Nested Class Summary

      • Nested classes/interfaces inherited from class android.view.ViewGroup

        android.view.ViewGroup.LayoutParams, android.view.ViewGroup.MarginLayoutParams, android.view.ViewGroup.OnHierarchyChangeListener
      • Nested classes/interfaces inherited from class android.view.View

        android.view.View.AccessibilityDelegate, android.view.View.BaseSavedState, android.view.View.DragShadowBuilder, android.view.View.MeasureSpec, android.view.View.OnApplyWindowInsetsListener, android.view.View.OnAttachStateChangeListener, android.view.View.OnCapturedPointerListener, android.view.View.OnClickListener, android.view.View.OnContextClickListener, android.view.View.OnCreateContextMenuListener, android.view.View.OnDragListener, android.view.View.OnFocusChangeListener, android.view.View.OnGenericMotionListener, android.view.View.OnHoverListener, android.view.View.OnKeyListener, android.view.View.OnLayoutChangeListener, android.view.View.OnLongClickListener, android.view.View.OnScrollChangeListener, android.view.View.OnSystemUiVisibilityChangeListener, android.view.View.OnTouchListener, android.view.View.OnUnhandledKeyEventListener
    • Field Summary

      • Fields inherited from class android.view.ViewGroup

        CLIP_TO_PADDING_MASK, FOCUS_AFTER_DESCENDANTS, FOCUS_BEFORE_DESCENDANTS, FOCUS_BLOCK_DESCENDANTS, LAYOUT_MODE_CLIP_BOUNDS, LAYOUT_MODE_OPTICAL_BOUNDS, PERSISTENT_ALL_CACHES, PERSISTENT_ANIMATION_CACHE, PERSISTENT_NO_CACHE, PERSISTENT_SCROLLING_CACHE
      • Fields inherited from class android.view.View

        ACCESSIBILITY_LIVE_REGION_ASSERTIVE, ACCESSIBILITY_LIVE_REGION_NONE, ACCESSIBILITY_LIVE_REGION_POLITE, ALPHA, AUTOFILL_FLAG_INCLUDE_NOT_IMPORTANT_VIEWS, AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_DATE, AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_DAY, AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_MONTH, AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_YEAR, AUTOFILL_HINT_CREDIT_CARD_NUMBER, AUTOFILL_HINT_CREDIT_CARD_SECURITY_CODE, AUTOFILL_HINT_EMAIL_ADDRESS, AUTOFILL_HINT_NAME, AUTOFILL_HINT_PASSWORD, AUTOFILL_HINT_PHONE, AUTOFILL_HINT_POSTAL_ADDRESS, AUTOFILL_HINT_POSTAL_CODE, AUTOFILL_HINT_USERNAME, AUTOFILL_TYPE_DATE, AUTOFILL_TYPE_LIST, AUTOFILL_TYPE_NONE, AUTOFILL_TYPE_TEXT, AUTOFILL_TYPE_TOGGLE, DRAG_FLAG_ACCESSIBILITY_ACTION, DRAG_FLAG_GLOBAL, DRAG_FLAG_GLOBAL_PERSISTABLE_URI_PERMISSION, DRAG_FLAG_GLOBAL_PREFIX_URI_PERMISSION, DRAG_FLAG_GLOBAL_URI_READ, DRAG_FLAG_GLOBAL_URI_WRITE, DRAG_FLAG_OPAQUE, DRAWING_CACHE_QUALITY_AUTO, DRAWING_CACHE_QUALITY_HIGH, DRAWING_CACHE_QUALITY_LOW, EMPTY_STATE_SET, ENABLED_FOCUSED_SELECTED_STATE_SET, ENABLED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, ENABLED_FOCUSED_STATE_SET, ENABLED_FOCUSED_WINDOW_FOCUSED_STATE_SET, ENABLED_SELECTED_STATE_SET, ENABLED_SELECTED_WINDOW_FOCUSED_STATE_SET, ENABLED_STATE_SET, ENABLED_WINDOW_FOCUSED_STATE_SET, FIND_VIEWS_WITH_CONTENT_DESCRIPTION, FIND_VIEWS_WITH_TEXT, FOCUS_BACKWARD, FOCUS_DOWN, FOCUS_FORWARD, FOCUS_LEFT, FOCUS_RIGHT, FOCUS_UP, FOCUSABLE, FOCUSABLE_AUTO, FOCUSABLES_ALL, FOCUSABLES_TOUCH_MODE, FOCUSED_SELECTED_STATE_SET, FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, FOCUSED_STATE_SET, FOCUSED_WINDOW_FOCUSED_STATE_SET, GONE, HAPTIC_FEEDBACK_ENABLED, IMPORTANT_FOR_ACCESSIBILITY_AUTO, IMPORTANT_FOR_ACCESSIBILITY_NO, IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS, IMPORTANT_FOR_ACCESSIBILITY_YES, IMPORTANT_FOR_AUTOFILL_AUTO, IMPORTANT_FOR_AUTOFILL_NO, IMPORTANT_FOR_AUTOFILL_NO_EXCLUDE_DESCENDANTS, IMPORTANT_FOR_AUTOFILL_YES, IMPORTANT_FOR_AUTOFILL_YES_EXCLUDE_DESCENDANTS, IMPORTANT_FOR_CONTENT_CAPTURE_AUTO, IMPORTANT_FOR_CONTENT_CAPTURE_NO, IMPORTANT_FOR_CONTENT_CAPTURE_NO_EXCLUDE_DESCENDANTS, IMPORTANT_FOR_CONTENT_CAPTURE_YES, IMPORTANT_FOR_CONTENT_CAPTURE_YES_EXCLUDE_DESCENDANTS, INVISIBLE, KEEP_SCREEN_ON, LAYER_TYPE_HARDWARE, LAYER_TYPE_NONE, LAYER_TYPE_SOFTWARE, LAYOUT_DIRECTION_INHERIT, LAYOUT_DIRECTION_LOCALE, LAYOUT_DIRECTION_LTR, LAYOUT_DIRECTION_RTL, MEASURED_HEIGHT_STATE_SHIFT, MEASURED_SIZE_MASK, MEASURED_STATE_MASK, MEASURED_STATE_TOO_SMALL, NO_ID, NOT_FOCUSABLE, OVER_SCROLL_ALWAYS, OVER_SCROLL_IF_CONTENT_SCROLLS, OVER_SCROLL_NEVER, PRESSED_ENABLED_FOCUSED_SELECTED_STATE_SET, PRESSED_ENABLED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_ENABLED_FOCUSED_STATE_SET, PRESSED_ENABLED_FOCUSED_WINDOW_FOCUSED_STATE_SET, PRESSED_ENABLED_SELECTED_STATE_SET, PRESSED_ENABLED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_ENABLED_STATE_SET, PRESSED_ENABLED_WINDOW_FOCUSED_STATE_SET, PRESSED_FOCUSED_SELECTED_STATE_SET, PRESSED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_FOCUSED_STATE_SET, PRESSED_FOCUSED_WINDOW_FOCUSED_STATE_SET, PRESSED_SELECTED_STATE_SET, PRESSED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_STATE_SET, PRESSED_WINDOW_FOCUSED_STATE_SET, ROTATION, ROTATION_X, ROTATION_Y, SCALE_X, SCALE_Y, SCREEN_STATE_OFF, SCREEN_STATE_ON, SCROLL_AXIS_HORIZONTAL, SCROLL_AXIS_NONE, SCROLL_AXIS_VERTICAL, SCROLL_CAPTURE_HINT_AUTO, SCROLL_CAPTURE_HINT_EXCLUDE, SCROLL_CAPTURE_HINT_EXCLUDE_DESCENDANTS, SCROLL_CAPTURE_HINT_INCLUDE, SCROLL_INDICATOR_BOTTOM, SCROLL_INDICATOR_END, SCROLL_INDICATOR_LEFT, SCROLL_INDICATOR_RIGHT, SCROLL_INDICATOR_START, SCROLL_INDICATOR_TOP, SCROLLBAR_POSITION_DEFAULT, SCROLLBAR_POSITION_LEFT, SCROLLBAR_POSITION_RIGHT, SCROLLBARS_INSIDE_INSET, SCROLLBARS_INSIDE_OVERLAY, SCROLLBARS_OUTSIDE_INSET, SCROLLBARS_OUTSIDE_OVERLAY, SELECTED_STATE_SET, SELECTED_WINDOW_FOCUSED_STATE_SET, SOUND_EFFECTS_ENABLED, STATUS_BAR_HIDDEN, STATUS_BAR_VISIBLE, SYSTEM_UI_FLAG_FULLSCREEN, SYSTEM_UI_FLAG_HIDE_NAVIGATION, SYSTEM_UI_FLAG_IMMERSIVE, SYSTEM_UI_FLAG_IMMERSIVE_STICKY, SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN, SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION, SYSTEM_UI_FLAG_LAYOUT_STABLE, SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR, SYSTEM_UI_FLAG_LIGHT_STATUS_BAR, SYSTEM_UI_FLAG_LOW_PROFILE, SYSTEM_UI_FLAG_VISIBLE, SYSTEM_UI_LAYOUT_FLAGS, TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_GRAVITY, TEXT_ALIGNMENT_INHERIT, TEXT_ALIGNMENT_TEXT_END, TEXT_ALIGNMENT_TEXT_START, TEXT_ALIGNMENT_VIEW_END, TEXT_ALIGNMENT_VIEW_START, TEXT_DIRECTION_ANY_RTL, TEXT_DIRECTION_FIRST_STRONG, TEXT_DIRECTION_FIRST_STRONG_LTR, TEXT_DIRECTION_FIRST_STRONG_RTL, TEXT_DIRECTION_INHERIT, TEXT_DIRECTION_LOCALE, TEXT_DIRECTION_LTR, TEXT_DIRECTION_RTL, TRANSLATION_X, TRANSLATION_Y, TRANSLATION_Z, VIEW_LOG_TAG, VISIBLE, WINDOW_FOCUSED_STATE_SET, X, Y, Z
    • Constructor Summary

      Constructors 
      Constructor Description
      SceneView​(android.content.Context context)
      Creates a SceneView using the given Context.
      SceneView​(android.content.Context context, android.util.AttributeSet attrs)
      Creates a SceneView using the given Context, called when the SceneView is inflated from XML.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      void dispose()
      Releases resources.
      int getAmbientLightColor()
      Gets the color of the ambient light.
      ListenableList<AnalysisOverlay> getAnalysisOverlays()
      Gets a modifiable list of the analysis overlays.
      AtmosphereEffect getAtmosphereEffect()
      Gets the atmosphere effect on the scene view.
      CameraController getCameraController()
      Gets the current camera controller.
      Camera getCurrentViewpointCamera()
      Gets the current viewpoint camera.
      double getFieldOfView()
      Gets the field of view on the scene view in degrees.
      double getFieldOfViewDistortionRatio()
      Returns the value representing how much the vertical field of view is distorted.
      java.util.List<ImageOverlay> getImageOverlays()
      Gets a modifiable list of overlays for displaying images in the scene view.
      static long getMemoryLimit()
      Gets the memory limit in bytes, that defines the total amount of memory a process can use to render scene data.
      ArcGISScene getScene()
      Gets the ArcGISScene displayed in this view.
      SpaceEffect getSpaceEffect()
      Gets the space effect on the scene view.
      SpatialReference getSpatialReference()
      Gets the SpatialReference of this GeoView.
      LightingMode getSunLighting()
      Gets the type of sun lighting applied to the scene view.
      java.util.Calendar getSunTime()
      Gets the time that indicates the position of the sun.
      protected void interactionActivateFlick()
      Activates a camera flick by performing an inertia based pan in the direction of the most recent pan operations.
      protected void interactionPan​(float deltaX, float deltaY)
      Pan the scene view relative to the screen point origin, set by calling interactionSetInteractionOrigin.
      protected void interactionPitch​(double pitchDelta)
      Rotate the camera around the origin that's set by interactionSetInteractionOrigin, only the pitch angle of the camera is updated, not the heading.
      protected void interactionRotate​(double rotationDelta)
      Rotate the camera around the origin that's set by interactionSetInteractionOrigin, only the heading angle of the camera is updated, not the pitch.
      protected void interactionSetInteracting​(boolean interacting)
      Sets if the view is being interacted with or not.
      protected void interactionSetInteractionOrigin​(float x, float y)
      Sets the interaction origin screen point, subsequent interactions pass delta changes from this point.
      protected void interactionZoomInAnimated​(float x, float y)
      Animated zoom in used for scene interaction e.g.
      protected void interactionZoomOutAnimated​(float x, float y)
      Animated zoom out used for scene interaction e.g.
      protected void interactionZoomToOrigin​(double factor)
      Zoom the camera towards or away from the origin that's set by interactionSetInteractionOrigin.
      boolean isManualRenderingEnabled()
      Indicates whether manual rendering is enabled.
      LocationToScreenResult locationToScreen​(Point location)
      Returns the result of converting a scene location to a screen point contained in a LocationToScreenResult.
      boolean onTouchEvent​(android.view.MotionEvent event)  
      void pause()
      Pauses the drawing of the GeoView.
      void renderFrame()
      Draws the scene based on a user defined pulse.
      void resume()
      Resumes the drawing of the GeoView that has been paused, restarting the display of the contained ArcGISMap.
      Point screenToBaseSurface​(android.graphics.Point screenPoint)
      Returns the scene location of a screen point on the base surface i.e.
      ListenableFuture<Point> screenToLocationAsync​(android.graphics.Point screenPoint)
      Asynchronously converts a screen coordinate to a location coordinate in the spatial reference of the scene view.
      void setAmbientLightColor​(int color)
      Sets the color of the ambient light.
      void setAtmosphereEffect​(AtmosphereEffect atmosphereEffect)
      Sets the effect to be applied to the scene view's atmosphere.
      void setCameraController​(CameraController cameraController)
      Sets the camera controller.
      void setFieldOfView​(double angle)
      Sets the field of view on the scene view in degrees.
      void setFieldOfViewAndDistortionRatio​(double fieldOfViewAngle, double distortionRatio)
      Sets the field of view on the scene view in degrees and sets the value representing how much the vertical field of view is distorted.
      void setFieldOfViewFromLensIntrinsics​(float focalLengthX, float focalLengthY, float principalX, float principalY, float imageSizeX, float imageSizeY, DeviceOrientation deviceOrientation)
      Sets the field of view of the scene view using characteristics of a camera lens to allow for matching of field of view between them.
      void setManualRenderingEnabled​(boolean isManualRenderingEnabled)
      Sets a boolean that indicates whether manual rendering is enabled or not.
      static void setMemoryLimit​(long memoryLimitBytes)
      Sets a memory limit in bytes, that defines the total amount of memory a process can use to render scene data.
      void setOnTouchListener​(android.view.View.OnTouchListener onTouchListener)
      Sets the listener that handles touch gestures for this SceneView.
      void setScene​(ArcGISScene scene)
      Sets the ArcGISScene to be displayed in this view.
      void setSpaceEffect​(SpaceEffect spaceEffect)
      Sets the effect to be applied to the scene view's background.
      void setSunLighting​(LightingMode lightingMode)
      Sets the type of sun lighting to be applied to the scene view.
      void setSunTime​(java.util.Calendar sunTime)
      Sets the position of the sun based on time.
      void setViewpointCamera​(Camera camera)
      Sets the viewpoint based on the given camera.
      ListenableFuture<java.lang.Boolean> setViewpointCameraAsync​(Camera camera)
      Sets the viewpoint asynchronously, based on the given camera.
      ListenableFuture<java.lang.Boolean> setViewpointCameraAsync​(Camera camera, float animationDuration)
      Sets the viewpoint asynchronously with a specified animation duration.
      void setZOrderMediaOverlay​(boolean isMediaOverlay)
      Deprecated.
      as of 100.8.0, it is no longer necessary to set z order to support media overlays so this method now does nothing
      • Methods inherited from class android.view.ViewGroup

        addChildrenForAccessibility, addExtraDataToAccessibilityNodeInfo, addFocusables, addKeyboardNavigationClusters, addStatesFromChildren, addTouchables, addView, addView, addView, addView, addView, addViewInLayout, addViewInLayout, attachLayoutAnimationParameters, attachViewToParent, bringChildToFront, canAnimate, checkLayoutParams, childDrawableStateChanged, childHasTransientStateChanged, cleanupLayoutState, clearChildFocus, clearDisappearingChildren, clearFocus, debug, detachAllViewsFromParent, detachViewFromParent, detachViewFromParent, detachViewsFromParent, dispatchApplyWindowInsets, dispatchCapturedPointerEvent, dispatchConfigurationChanged, dispatchCreateViewTranslationRequest, dispatchDisplayHint, dispatchDragEvent, dispatchDraw, dispatchDrawableHotspotChanged, dispatchFinishTemporaryDetach, dispatchFreezeSelfOnly, dispatchGenericFocusedEvent, dispatchGenericPointerEvent, dispatchHoverEvent, dispatchKeyEvent, dispatchKeyEventPreIme, dispatchKeyShortcutEvent, dispatchPointerCaptureChanged, dispatchProvideAutofillStructure, dispatchProvideStructure, dispatchRestoreInstanceState, dispatchSaveInstanceState, dispatchScrollCaptureSearch, dispatchSetActivated, dispatchSetPressed, dispatchSetSelected, dispatchStartTemporaryDetach, dispatchSystemUiVisibilityChanged, dispatchThawSelfOnly, dispatchTouchEvent, dispatchTrackballEvent, dispatchUnhandledMove, dispatchVisibilityChanged, dispatchWindowFocusChanged, dispatchWindowInsetsAnimationEnd, dispatchWindowInsetsAnimationPrepare, dispatchWindowInsetsAnimationProgress, dispatchWindowInsetsAnimationStart, dispatchWindowSystemUiVisiblityChanged, dispatchWindowVisibilityChanged, drawableStateChanged, drawChild, endViewTransition, findFocus, findViewsWithText, focusableViewAvailable, focusSearch, gatherTransparentRegion, generateDefaultLayoutParams, generateLayoutParams, generateLayoutParams, getAccessibilityClassName, getChildAt, getChildCount, getChildDrawingOrder, getChildDrawingOrder, getChildMeasureSpec, getChildStaticTransformation, getChildVisibleRect, getClipChildren, getClipToPadding, getDescendantFocusability, getFocusedChild, getLayoutAnimation, getLayoutAnimationListener, getLayoutMode, getLayoutTransition, getNestedScrollAxes, getOverlay, getPersistentDrawingCache, getTouchscreenBlocksFocus, hasFocus, hasTransientState, indexOfChild, invalidateChild, invalidateChildInParent, isAlwaysDrawnWithCacheEnabled, isAnimationCacheEnabled, isChildrenDrawingOrderEnabled, isChildrenDrawnWithCacheEnabled, isLayoutSuppressed, isMotionEventSplittingEnabled, isTransitionGroup, jumpDrawablesToCurrentState, layout, measureChild, measureChildren, measureChildWithMargins, notifySubtreeAccessibilityStateChanged, offsetDescendantRectToMyCoords, offsetRectIntoDescendantCoords, onAttachedToWindow, onCreateDrawableState, onDescendantInvalidated, onDetachedFromWindow, onInterceptHoverEvent, onInterceptTouchEvent, onNestedFling, onNestedPreFling, onNestedPrePerformAccessibilityAction, onNestedPreScroll, onNestedScroll, onNestedScrollAccepted, onRequestFocusInDescendants, onRequestSendAccessibilityEvent, onResolvePointerIcon, onStartNestedScroll, onStopNestedScroll, onViewAdded, onViewRemoved, recomputeViewAttributes, removeAllViews, removeAllViewsInLayout, removeDetachedView, removeView, removeViewAt, removeViewInLayout, removeViews, removeViewsInLayout, requestChildFocus, requestChildRectangleOnScreen, requestDisallowInterceptTouchEvent, requestFocus, requestSendAccessibilityEvent, requestTransparentRegion, restoreDefaultFocus, scheduleLayoutAnimation, setAddStatesFromChildren, setAlwaysDrawnWithCacheEnabled, setAnimationCacheEnabled, setChildrenDrawingCacheEnabled, setChildrenDrawingOrderEnabled, setChildrenDrawnWithCacheEnabled, setClipChildren, setClipToPadding, setDescendantFocusability, setLayoutAnimation, setLayoutAnimationListener, setLayoutMode, setLayoutTransition, setMotionEventSplittingEnabled, setOnHierarchyChangeListener, setPersistentDrawingCache, setStaticTransformationsEnabled, setTouchscreenBlocksFocus, setTransitionGroup, setWindowInsetsAnimationCallback, shouldDelayChildPressedState, showContextMenuForChild, showContextMenuForChild, startActionModeForChild, startActionModeForChild, startLayoutAnimation, startViewTransition, suppressLayout, updateViewLayout
      • Methods inherited from class android.view.View

        addFocusables, addOnAttachStateChangeListener, addOnLayoutChangeListener, addOnUnhandledKeyEventListener, animate, announceForAccessibility, autofill, autofill, awakenScrollBars, awakenScrollBars, awakenScrollBars, bringToFront, buildDrawingCache, buildDrawingCache, buildLayer, callOnClick, cancelDragAndDrop, cancelLongPress, cancelPendingInputEvents, canResolveLayoutDirection, canResolveTextAlignment, canResolveTextDirection, canScrollHorizontally, canScrollVertically, checkInputConnectionProxy, clearAnimation, clearViewTranslationCallback, combineMeasuredStates, computeHorizontalScrollExtent, computeHorizontalScrollOffset, computeHorizontalScrollRange, computeScroll, computeSystemWindowInsets, computeVerticalScrollExtent, computeVerticalScrollOffset, computeVerticalScrollRange, createAccessibilityNodeInfo, createContextMenu, destroyDrawingCache, dispatchGenericMotionEvent, dispatchNestedFling, dispatchNestedPreFling, dispatchNestedPrePerformAccessibilityAction, dispatchNestedPreScroll, dispatchNestedScroll, dispatchPopulateAccessibilityEvent, draw, drawableHotspotChanged, findViewById, findViewWithTag, fitSystemWindows, focusSearch, forceHasOverlappingRendering, forceLayout, generateDisplayHash, generateViewId, getAccessibilityDelegate, getAccessibilityLiveRegion, getAccessibilityNodeProvider, getAccessibilityPaneTitle, getAccessibilityTraversalAfter, getAccessibilityTraversalBefore, getAlpha, getAnimation, getAnimationMatrix, getApplicationWindowToken, getAttributeResolutionStack, getAttributeSourceResourceMap, getAutofillHints, getAutofillId, getAutofillType, getAutofillValue, getBackground, getBackgroundTintBlendMode, getBackgroundTintList, getBackgroundTintMode, getBaseline, getBottom, getBottomFadingEdgeStrength, getBottomPaddingOffset, getCameraDistance, getClipBounds, getClipBounds, getClipToOutline, getContentCaptureSession, getContentDescription, getContext, getContextMenuInfo, getDefaultFocusHighlightEnabled, getDefaultSize, getDisplay, getDrawableState, getDrawingCache, getDrawingCache, getDrawingCacheBackgroundColor, getDrawingCacheQuality, getDrawingRect, getDrawingTime, getElevation, getExplicitStyle, getFilterTouchesWhenObscured, getFitsSystemWindows, getFocusable, getFocusables, getFocusedRect, getForeground, getForegroundGravity, getForegroundTintBlendMode, getForegroundTintList, getForegroundTintMode, getGlobalVisibleRect, getGlobalVisibleRect, getHandler, getHasOverlappingRendering, getHeight, getHitRect, getHorizontalFadingEdgeLength, getHorizontalScrollbarHeight, getHorizontalScrollbarThumbDrawable, getHorizontalScrollbarTrackDrawable, getId, getImportantForAccessibility, getImportantForAutofill, getImportantForContentCapture, getKeepScreenOn, getKeyDispatcherState, getLabelFor, getLayerType, getLayoutDirection, getLayoutParams, getLeft, getLeftFadingEdgeStrength, getLeftPaddingOffset, getLocalVisibleRect, getLocationInSurface, getLocationInWindow, getLocationOnScreen, getMatrix, getMeasuredHeight, getMeasuredHeightAndState, getMeasuredState, getMeasuredWidth, getMeasuredWidthAndState, getMinimumHeight, getMinimumWidth, getNextClusterForwardId, getNextFocusDownId, getNextFocusForwardId, getNextFocusLeftId, getNextFocusRightId, getNextFocusUpId, getOnFocusChangeListener, getOutlineAmbientShadowColor, getOutlineProvider, getOutlineSpotShadowColor, getOverScrollMode, getPaddingBottom, getPaddingEnd, getPaddingLeft, getPaddingRight, getPaddingStart, getPaddingTop, getParent, getParentForAccessibility, getPivotX, getPivotY, getPointerIcon, getReceiveContentMimeTypes, getResources, getRevealOnFocusHint, getRight, getRightFadingEdgeStrength, getRightPaddingOffset, getRootSurfaceControl, getRootView, getRootWindowInsets, getRotation, getRotationX, getRotationY, getScaleX, getScaleY, getScrollBarDefaultDelayBeforeFade, getScrollBarFadeDuration, getScrollBarSize, getScrollBarStyle, getScrollCaptureHint, getScrollIndicators, getScrollX, getScrollY, getSolidColor, getSourceLayoutResId, getStateDescription, getStateListAnimator, getSuggestedMinimumHeight, getSuggestedMinimumWidth, getSystemGestureExclusionRects, getSystemUiVisibility, getTag, getTag, getTextAlignment, getTextDirection, getTooltipText, getTop, getTopFadingEdgeStrength, getTopPaddingOffset, getTouchables, getTouchDelegate, getTransitionAlpha, getTransitionName, getTranslationX, getTranslationY, getTranslationZ, getUniqueDrawingId, getVerticalFadingEdgeLength, getVerticalScrollbarPosition, getVerticalScrollbarThumbDrawable, getVerticalScrollbarTrackDrawable, getVerticalScrollbarWidth, getViewTranslationResponse, getViewTreeObserver, getVisibility, getWidth, getWindowAttachCount, getWindowId, getWindowInsetsController, getWindowSystemUiVisibility, getWindowToken, getWindowVisibility, getWindowVisibleDisplayFrame, getX, getY, getZ, hasExplicitFocusable, hasFocusable, hasNestedScrollingParent, hasOnClickListeners, hasOnLongClickListeners, hasOverlappingRendering, hasPointerCapture, hasWindowFocus, inflate, invalidate, invalidate, invalidate, invalidateDrawable, invalidateOutline, isAccessibilityFocused, isAccessibilityHeading, isActivated, isAttachedToWindow, isClickable, isContextClickable, isDirty, isDrawingCacheEnabled, isDuplicateParentStateEnabled, isEnabled, isFocusable, isFocusableInTouchMode, isFocused, isFocusedByDefault, isForceDarkAllowed, isHapticFeedbackEnabled, isHardwareAccelerated, isHorizontalFadingEdgeEnabled, isHorizontalScrollBarEnabled, isHovered, isImportantForAccessibility, isImportantForAutofill, isImportantForContentCapture, isInEditMode, isInLayout, isInTouchMode, isKeyboardNavigationCluster, isLaidOut, isLayoutDirectionResolved, isLayoutRequested, isLongClickable, isNestedScrollingEnabled, isOpaque, isPaddingOffsetRequired, isPaddingRelative, isPivotSet, isPressed, isSaveEnabled, isSaveFromParentEnabled, isScreenReaderFocusable, isScrollbarFadingEnabled, isScrollContainer, isSelected, isShowingLayoutBounds, isShown, isSoundEffectsEnabled, isTemporarilyDetached, isTextAlignmentResolved, isTextDirectionResolved, isVerticalFadingEdgeEnabled, isVerticalScrollBarEnabled, isVisibleToUserForAutofill, keyboardNavigationClusterSearch, measure, mergeDrawableStates, offsetLeftAndRight, offsetTopAndBottom, onAnimationEnd, onAnimationStart, onApplyWindowInsets, onCancelPendingInputEvents, onCapturedPointerEvent, onCheckIsTextEditor, onConfigurationChanged, onCreateContextMenu, onCreateInputConnection, onCreateViewTranslationRequest, onCreateVirtualViewTranslationRequests, onDisplayHint, onDragEvent, onDraw, onDrawForeground, onDrawScrollBars, onFilterTouchEventForSecurity, onFinishInflate, onFinishTemporaryDetach, onFocusChanged, onGenericMotionEvent, onHoverChanged, onHoverEvent, onInitializeAccessibilityEvent, onInitializeAccessibilityNodeInfo, onKeyDown, onKeyLongPress, onKeyMultiple, onKeyPreIme, onKeyShortcut, onKeyUp, onOverScrolled, onPointerCaptureChange, onPopulateAccessibilityEvent, onProvideAutofillStructure, onProvideAutofillVirtualStructure, onProvideContentCaptureStructure, onProvideStructure, onProvideVirtualStructure, onReceiveContent, onRestoreInstanceState, onRtlPropertiesChanged, onSaveInstanceState, onScreenStateChanged, onScrollCaptureSearch, onScrollChanged, onSetAlpha, onSizeChanged, onStartTemporaryDetach, onTrackballEvent, onViewTranslationResponse, onVirtualViewTranslationResponses, onVisibilityAggregated, onVisibilityChanged, onWindowFocusChanged, onWindowSystemUiVisibilityChanged, onWindowVisibilityChanged, overScrollBy, performAccessibilityAction, performClick, performContextClick, performContextClick, performHapticFeedback, performHapticFeedback, performLongClick, performLongClick, performReceiveContent, playSoundEffect, post, postDelayed, postInvalidate, postInvalidate, postInvalidateDelayed, postInvalidateDelayed, postInvalidateOnAnimation, postInvalidateOnAnimation, postOnAnimation, postOnAnimationDelayed, refreshDrawableState, releasePointerCapture, removeCallbacks, removeOnAttachStateChangeListener, removeOnLayoutChangeListener, removeOnUnhandledKeyEventListener, requestApplyInsets, requestFitSystemWindows, requestFocus, requestFocus, requestFocusFromTouch, requestLayout, requestPointerCapture, requestRectangleOnScreen, requestRectangleOnScreen, requestUnbufferedDispatch, requestUnbufferedDispatch, requireViewById, resetPivot, resolveSize, resolveSizeAndState, restoreHierarchyState, saveAttributeDataForStyleable, saveHierarchyState, scheduleDrawable, scrollBy, scrollTo, sendAccessibilityEvent, sendAccessibilityEventUnchecked, setAccessibilityDelegate, setAccessibilityHeading, setAccessibilityLiveRegion, setAccessibilityPaneTitle, setAccessibilityTraversalAfter, setAccessibilityTraversalBefore, setActivated, setAllowClickWhenDisabled, setAlpha, setAnimation, setAnimationMatrix, setAutofillHints, setAutofillId, setBackground, setBackgroundColor, setBackgroundDrawable, setBackgroundResource, setBackgroundTintBlendMode, setBackgroundTintList, setBackgroundTintMode, setBottom, setCameraDistance, setClickable, setClipBounds, setClipToOutline, setContentCaptureSession, setContentDescription, setContextClickable, setDefaultFocusHighlightEnabled, setDrawingCacheBackgroundColor, setDrawingCacheEnabled, setDrawingCacheQuality, setDuplicateParentStateEnabled, setElevation, setEnabled, setFadingEdgeLength, setFilterTouchesWhenObscured, setFitsSystemWindows, setFocusable, setFocusable, setFocusableInTouchMode, setFocusedByDefault, setForceDarkAllowed, setForeground, setForegroundGravity, setForegroundTintBlendMode, setForegroundTintList, setForegroundTintMode, setHapticFeedbackEnabled, setHasTransientState, setHorizontalFadingEdgeEnabled, setHorizontalScrollBarEnabled, setHorizontalScrollbarThumbDrawable, setHorizontalScrollbarTrackDrawable, setHovered, setId, setImportantForAccessibility, setImportantForAutofill, setImportantForContentCapture, setKeepScreenOn, setKeyboardNavigationCluster, setLabelFor, setLayerPaint, setLayerType, setLayoutDirection, setLayoutParams, setLeft, setLeftTopRightBottom, setLongClickable, setMeasuredDimension, setMinimumHeight, setMinimumWidth, setNestedScrollingEnabled, setNextClusterForwardId, setNextFocusDownId, setNextFocusForwardId, setNextFocusLeftId, setNextFocusRightId, setNextFocusUpId, setOnApplyWindowInsetsListener, setOnCapturedPointerListener, setOnClickListener, setOnContextClickListener, setOnCreateContextMenuListener, setOnDragListener, setOnFocusChangeListener, setOnGenericMotionListener, setOnHoverListener, setOnKeyListener, setOnLongClickListener, setOnReceiveContentListener, setOnScrollChangeListener, setOnSystemUiVisibilityChangeListener, setOutlineAmbientShadowColor, setOutlineProvider, setOutlineSpotShadowColor, setOverScrollMode, setPadding, setPaddingRelative, setPivotX, setPivotY, setPointerIcon, setPressed, setRenderEffect, setRevealOnFocusHint, setRight, setRotation, setRotationX, setRotationY, setSaveEnabled, setSaveFromParentEnabled, setScaleX, setScaleY, setScreenReaderFocusable, setScrollBarDefaultDelayBeforeFade, setScrollBarFadeDuration, setScrollbarFadingEnabled, setScrollBarSize, setScrollBarStyle, setScrollCaptureCallback, setScrollCaptureHint, setScrollContainer, setScrollIndicators, setScrollIndicators, setScrollX, setScrollY, setSelected, setSoundEffectsEnabled, setStateDescription, setStateListAnimator, setSystemGestureExclusionRects, setSystemUiVisibility, setTag, setTag, setTextAlignment, setTextDirection, setTooltipText, setTop, setTouchDelegate, setTransitionAlpha, setTransitionName, setTransitionVisibility, setTranslationX, setTranslationY, setTranslationZ, setVerticalFadingEdgeEnabled, setVerticalScrollBarEnabled, setVerticalScrollbarPosition, setVerticalScrollbarThumbDrawable, setVerticalScrollbarTrackDrawable, setViewTranslationCallback, setVisibility, setWillNotCacheDrawing, setWillNotDraw, setX, setY, setZ, showContextMenu, showContextMenu, startActionMode, startActionMode, startAnimation, startDrag, startDragAndDrop, startNestedScroll, stopNestedScroll, toString, transformMatrixToGlobal, transformMatrixToLocal, unscheduleDrawable, unscheduleDrawable, updateDragShadow, verifyDrawable, willNotCacheDrawing, willNotDraw
      • Methods inherited from class java.lang.Object

        clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface android.view.ViewParent

        canResolveLayoutDirection, canResolveTextAlignment, canResolveTextDirection, createContextMenu, getLayoutDirection, getParent, getParentForAccessibility, getTextAlignment, getTextDirection, isLayoutDirectionResolved, isLayoutRequested, isTextAlignmentResolved, isTextDirectionResolved, keyboardNavigationClusterSearch, requestFitSystemWindows, requestLayout
    • Constructor Detail

      • SceneView

        public SceneView​(android.content.Context context)
        Creates a SceneView using the given Context. Call this constructor when creating a SceneView programmatically.
        Parameters:
        context - the Context the view is running in
        Since:
        100.1.0
      • SceneView

        public SceneView​(android.content.Context context,
                         android.util.AttributeSet attrs)
        Creates a SceneView using the given Context, called when the SceneView is inflated from XML.
        Parameters:
        context - the Context the view is running in
        attrs - the attributes of the XML tag that is inflating the view
        Since:
        100.1.0
    • Method Detail

      • dispose

        public void dispose()
        Description copied from class: GeoView
        Releases resources. Call this when you are finished with a view.
        Specified by:
        dispose in class GeoView
      • pause

        public void pause()
        Description copied from class: GeoView
        Pauses the drawing of the GeoView.

        This can be used to save resources when your application is minimized for example. Call this in the parent activity's onPause method. Ensure you have a corresponding call to GeoView.resume().

        Specified by:
        pause in class GeoView
      • resume

        public void resume()
        Description copied from class: GeoView
        Resumes the drawing of the GeoView that has been paused, restarting the display of the contained ArcGISMap. You can call this in the parent activity's onResume method, after a corresponding call to GeoView.pause().
        Specified by:
        resume in class GeoView
      • isManualRenderingEnabled

        public boolean isManualRenderingEnabled()
        Indicates whether manual rendering is enabled. If set to true, the SceneView won't use its own pulse mechanism to draw the scene. The user of the SceneView will have to call renderFrame() to cause the SceneView to draw.
        Returns:
        a boolean that indicates whether manual rendering is enabled or not, the default is false
        Since:
        100.6.0
      • setManualRenderingEnabled

        public void setManualRenderingEnabled​(boolean isManualRenderingEnabled)
        Sets a boolean that indicates whether manual rendering is enabled or not. If set to true, the SceneView won't use its own pulse mechanism to draw the scene. The user of the SceneView will have to call renderFrame() to cause the SceneView to draw.
        Parameters:
        isManualRenderingEnabled - indicates whether manual rendering is enabled or not
        Since:
        100.6.0
      • renderFrame

        public void renderFrame()
        Draws the scene based on a user defined pulse. In order for this method to have any effect, setManualRenderingEnabled(boolean) has to be set to true.
        Since:
        100.6.0
      • getMemoryLimit

        public static long getMemoryLimit()
        Gets the memory limit in bytes, that defines the total amount of memory a process can use to render scene data. Note, the default value is determined upon initialization of the first SceneView instance that is being created by the process. Before any SceneView instance has been created, zero is returned. For some use cases you might want to choose to set a custom limit. See setMemoryLimit(long) for details.

        The default value is determined as follows:

        • If ActivityManager.getLargeMemoryClass() is greater than 1 gigabyte, this value is used.
        • Otherwise, check whether 45% of total system memory (ActivityManager.MemoryInfo.totalMem) is less than 1 gigabyte. If so, this value is used.
        • Otherwise, use 1 gigabyte as the memory limit.
        Returns:
        the memory limit in bytes, that defines the total amount of memory a process can use to render scene data
        Since:
        100.3.0
      • setMemoryLimit

        public static void setMemoryLimit​(long memoryLimitBytes)
        Sets a memory limit in bytes, that defines the total amount of memory a process can use to render scene data.

        The memory limit is set by default and this should be sufficient for most use cases. For more details of how the default limit is determined see getMemoryLimit(). For some use cases you might want to choose to override the default to increase or reduce the limit. In this case, you need to set this value before instantiating any SceneView objects. If you choose to override this limit it is recommended to take into account the device's recommended memory limits that can be obtained from ActivityManager.getLargeMemoryClass().

        Parameters:
        memoryLimitBytes - the memory limit in bytes, that defines the total amount of memory a process can use to render scene data
        Throws:
        java.lang.IllegalArgumentException - if memoryLimitBytes is zero or negative
        Since:
        100.3.0
      • getAnalysisOverlays

        public ListenableList<AnalysisOverlay> getAnalysisOverlays()
        Gets a modifiable list of the analysis overlays. Add or remove analysis overlays from this list to modify what is displayed. The list returned can be empty but not null. You can add listeners to this list to monitor changes to the list.

        An analysis overlay can only be in the list once.

        Returns:
        the analysis overlays
        Since:
        100.2.0
      • onTouchEvent

        public boolean onTouchEvent​(android.view.MotionEvent event)
        Overrides:
        onTouchEvent in class android.view.View
      • setOnTouchListener

        public void setOnTouchListener​(android.view.View.OnTouchListener onTouchListener)
        Sets the listener that handles touch gestures for this SceneView. For more information about the default gestures, see DefaultSceneViewOnTouchListener.

        To change the way that the SceneView responds to default gestures, for example by performing an identify on a single-tap, or disabling interactive panning, use this method to set a custom touch listener onto the SceneView.

        The easiest way to change only some of the default gestures is to create a custom touch listener that inherits DefaultSceneViewOnTouchListener, and override only the methods you want to change. Alternatively, directly implement the android.view.View.OnTouchListener interface, and provide the behaviour for all touch events. Then pass an instance to this method to replace the default listener with your custom listener.

        Overrides:
        setOnTouchListener in class android.view.View
        Parameters:
        onTouchListener - the new listener that will handle touch events for this SceneView
        Throws:
        java.lang.IllegalArgumentException - if onTouchListener is null
        Since:
        100.1.0
      • setZOrderMediaOverlay

        @Deprecated
        public void setZOrderMediaOverlay​(boolean isMediaOverlay)
        Deprecated.
        as of 100.8.0, it is no longer necessary to set z order to support media overlays so this method now does nothing
        Controls whether the SceneView is placed on top of another SceneView, MapView, or SurfaceView in the window (but still behind the window itself). This could be used to place a SceneView on top of a MapView for example. Note that this must be set before the SceneView's containing window is attached to the window manager.
        Parameters:
        isMediaOverlay - true if this SceneView is placed on top of another regular surface view, otherwise false
        Since:
        100.2.0
      • getScene

        public ArcGISScene getScene()
        Gets the ArcGISScene displayed in this view.

        Setting a non-loaded scene to a view starts the load process of the scene so the scene can be displayed once loaded.

        Returns:
        the ArcGISScene
        Since:
        100.1.0
      • setScene

        public void setScene​(ArcGISScene scene)
        Sets the ArcGISScene to be displayed in this view.

        Setting a non-loaded scene to a view starts the load process of the scene so the scene can be displayed once loaded.

        Parameters:
        scene - the new ArcGISScene, can be null
        Since:
        100.1.0
      • getAmbientLightColor

        public int getAmbientLightColor()
        Gets the color of the ambient light.
        Returns:
        an integer representing the color of the ambient light as 0xAARRGGBB
        Since:
        100.1.0
      • setAmbientLightColor

        public void setAmbientLightColor​(int color)
        Sets the color of the ambient light.
        Parameters:
        color - the color of the ambient light as 0xAARRGGBB
        Since:
        100.1.0
      • getAtmosphereEffect

        public AtmosphereEffect getAtmosphereEffect()
        Gets the atmosphere effect on the scene view. The default value is AtmosphereEffect.HORIZON_ONLY.
        Returns:
        the atmosphere effect on the scene view
        Since:
        100.1.0
      • setAtmosphereEffect

        public void setAtmosphereEffect​(AtmosphereEffect atmosphereEffect)
        Sets the effect to be applied to the scene view's atmosphere.
        Parameters:
        atmosphereEffect - the atmosphere effect
        Throws:
        java.lang.IllegalArgumentException - if atmosphereEffect is null
        Since:
        100.1.0
      • getCurrentViewpointCamera

        public Camera getCurrentViewpointCamera()
        Gets the current viewpoint camera.
        Returns:
        the current viewpoint camera
        Since:
        100.1.0
      • setViewpointCamera

        public void setViewpointCamera​(Camera camera)
        Sets the viewpoint based on the given camera.
        Parameters:
        camera - the camera to set
        Throws:
        java.lang.IllegalArgumentException - if camera is null
        Since:
        100.1.0
      • setViewpointCameraAsync

        public ListenableFuture<java.lang.Boolean> setViewpointCameraAsync​(Camera camera)
        Sets the viewpoint asynchronously, based on the given camera. This method uses the standard animation duration; alternatively use setViewpointCameraAsync(Camera, float) to control the animation duration.
        Parameters:
        camera - the new viewpoint camera
        Returns:
        a ListenableFuture for tracking when the operation is done and getting the result. Add a listener to the future to be notified when animation is finished. The result of the future indicates if the operation completed successfully (true) or has been interrupted before the given camera location has been reached (false), for example if the user interrupts the animation by interacting with the SceneView.
        Throws:
        java.lang.IllegalArgumentException - if the camera is null
        Since:
        100.1.0
      • setViewpointCameraAsync

        public ListenableFuture<java.lang.Boolean> setViewpointCameraAsync​(Camera camera,
                                                                           float animationDuration)
        Sets the viewpoint asynchronously with a specified animation duration.
        Parameters:
        camera - the new viewpoint camera
        animationDuration - the animation duration in seconds
        Returns:
        a ListenableFuture for tracking when the operation is done and getting the result. Add a listener to the future to be notified when animation is finished. The result of the future indicates if the operation completed successfully (true) or has been interrupted before the given camera location has been reached (false), for example if the user interrupts the animation by interacting with the SceneView.
        Throws:
        java.lang.IllegalArgumentException - if the camera is null
        Since:
        100.1.0
      • getSunLighting

        public LightingMode getSunLighting()
        Gets the type of sun lighting applied to the scene view.
        Returns:
        the type of sun lighting, default is LightingMode.NO_LIGHT
        Since:
        100.1.0
      • setSunLighting

        public void setSunLighting​(LightingMode lightingMode)
        Sets the type of sun lighting to be applied to the scene view. Note that LightingMode.LIGHT_AND_SHADOWS is currently not supported on Android and behaves the same as setting LightingMode.LIGHT.
        Parameters:
        lightingMode - the lighting mode to be applied for this scene view
        Throws:
        java.lang.IllegalArgumentException - if lightingMode is null
        Since:
        100.1.0
        See Also:
        setSunTime(java.util.Calendar)
      • getSunTime

        public java.util.Calendar getSunTime()
        Gets the time that indicates the position of the sun.
        Returns:
        the time that indicates the position of the sun, default is Fri Sep 22 2000 12:00:00 GMT+0000.
        Since:
        100.1.0
      • setSunTime

        public void setSunTime​(java.util.Calendar sunTime)
        Sets the position of the sun based on time.
        Parameters:
        sunTime - the time to use to calculate the sun's position
        Throws:
        java.lang.IllegalArgumentException - if sunTime is null
        Since:
        100.1.0
        See Also:
        setSunLighting(com.esri.arcgisruntime.mapping.view.LightingMode)
      • locationToScreen

        public LocationToScreenResult locationToScreen​(Point location)
        Returns the result of converting a scene location to a screen point contained in a LocationToScreenResult.
        Parameters:
        location - the scene location to convert to a screen point
        Returns:
        the location to screen result
        Throws:
        java.lang.IllegalArgumentException - if location is null
        Since:
        100.1.0
      • screenToBaseSurface

        public Point screenToBaseSurface​(android.graphics.Point screenPoint)
        Returns the scene location of a screen point on the base surface i.e. ignoring any elevation.
        Parameters:
        screenPoint - the screen point
        Returns:
        the scene location on the base surface
        Throws:
        java.lang.IllegalArgumentException - if screenPoint is null
        Since:
        100.1.0
      • screenToLocationAsync

        public ListenableFuture<Point> screenToLocationAsync​(android.graphics.Point screenPoint)
        Asynchronously converts a screen coordinate to a location coordinate in the spatial reference of the scene view.

        This is a high performance calculation executed on the GPU using a triangular mesh. Note that elevation values are approximated, and as the distance between the camera and the surface increases, the precision of the elevation value decreases.

        Parameters:
        screenPoint - the screen point to use
        Returns:
        a ListenableFuture for tracking when the operation is done and getting the result
        Throws:
        java.lang.IllegalArgumentException - if screenPoint is null
        Since:
        100.1.0
      • setCameraController

        public void setCameraController​(CameraController cameraController)
        Sets the camera controller. The default is an instance of GlobeCameraController.
        Parameters:
        cameraController - camera controller
        Throws:
        java.lang.IllegalArgumentException - if cameraController is null
        Since:
        100.1.0
      • getCameraController

        public CameraController getCameraController()
        Gets the current camera controller. The default is an instance of GlobeCameraController.
        Returns:
        the current camera controller
        Since:
        100.1.0
      • getSpaceEffect

        public SpaceEffect getSpaceEffect()
        Gets the space effect on the scene view. The default value is SpaceEffect.STARS.
        Returns:
        the space effect on the scene view
        Since:
        100.6.0
      • setSpaceEffect

        public void setSpaceEffect​(SpaceEffect spaceEffect)
        Sets the effect to be applied to the scene view's background. Can be used for Augmented Reality functionality to allow a View underneath the SceneView to be visible to the user.
        Parameters:
        spaceEffect - the space effect
        Throws:
        java.lang.IllegalArgumentException - if spaceEffect is null
        Since:
        100.6.0
      • getFieldOfView

        public double getFieldOfView()
        Gets the field of view on the scene view in degrees.
        Returns:
        the field of view in degrees
        Since:
        100.6.0
      • setFieldOfView

        public void setFieldOfView​(double angle)
        Sets the field of view on the scene view in degrees. This value must be greater than 0.0 and less than or equal to 120.0.
        Parameters:
        angle - the field of view in degrees. This value must be greater than 0.0 and less than or equal to 120.0
        Throws:
        java.lang.IllegalArgumentException - if value is not greater than Double.MIN_VALUE and less than or equal to 120.0
        Since:
        100.6.0
      • getFieldOfViewDistortionRatio

        public double getFieldOfViewDistortionRatio()
        Returns the value representing how much the vertical field of view is distorted. A distortion factor of 1.0 is default. A distortion factor less than 1.0 will cause the visuals to be stretched taller in comparison to their width. A distortion factor greater than 1.0 will cause the visuals to be shrunk shorter in comparison to their width.
        Returns:
        the value representing how much the vertical field of view is distorted
        Since:
        100.6.0
        See Also:
        setFieldOfViewAndDistortionRatio(double, double)
      • setFieldOfViewAndDistortionRatio

        public void setFieldOfViewAndDistortionRatio​(double fieldOfViewAngle,
                                                     double distortionRatio)
        Sets the field of view on the scene view in degrees and sets the value representing how much the vertical field of view is distorted. A distortion factor of 1.0 is default. A distortion factor less than 1.0 will cause the visuals to be stretched taller in comparison to their width. A distortion factor greater than 1.0 will cause the visuals to be shrunk shorter in comparison to their width.
        Parameters:
        fieldOfViewAngle - the field of view in degrees. This value must be greater than 0.0 and less than or equal to 120.0
        distortionRatio - the distortion ratio. Must be between 0.1 and 10.0.
        Throws:
        java.lang.IllegalArgumentException - if fieldOfViewAngle is not greater than Double.MIN_VALUE and less than or equal to 120.0
        java.lang.IllegalArgumentException - if distortionRatio is not in range of 0.1 and 10.0
        Since:
        100.6.0
      • getImageOverlays

        public java.util.List<ImageOverlay> getImageOverlays()
        Gets a modifiable list of overlays for displaying images in the scene view.

        An image overlay collection cannot belong to more that one SceneView. If the collection contains multiple image overlays, they display in the order in which they were added to the collection. So the first overlay in the collection (at index 0) displays at the bottom and each one that follows displays on top of the previous ones. If the SceneView also has a GraphicsOverlay, it displays on top of the ImageOverlay.

        Returns:
        the image overlays
        Since:
        100.8.0
      • setFieldOfViewFromLensIntrinsics

        public void setFieldOfViewFromLensIntrinsics​(float focalLengthX,
                                                     float focalLengthY,
                                                     float principalX,
                                                     float principalY,
                                                     float imageSizeX,
                                                     float imageSizeY,
                                                     DeviceOrientation deviceOrientation)
        Sets the field of view of the scene view using characteristics of a camera lens to allow for matching of field of view between them.
        Parameters:
        focalLengthX - the pixel focal length along the x axis. The units are in pixels. focalLengthX and focalLengthY should be identical for square pixels.
        focalLengthY - the pixel focal length along the y axis. The units are in pixels. focalLengthX and focalLengthY should be identical for square pixels.
        principalX - the distance along the x axis between the principal point and the top-left corner of the image frame. The units are in pixels.
        principalY - the distance along the y axis between the principal point and the top-left corner of the image frame. The units are in pixels.
        imageSizeX - the x value of the image size captured by the camera. The units are in pixels.
        imageSizeY - the y value of the image size captured by the camera. The units are in pixels.
        deviceOrientation - describes the orientation of the device.
        Throws:
        java.lang.IllegalArgumentException - if focalLengthX is not greater than Double.MIN_VALUE
        java.lang.IllegalArgumentException - if focalLengthY is not greater than Double.MIN_VALUE
        java.lang.IllegalArgumentException - if principalX is not greater than Double.MIN_VALUE or is greater than imageSizeX
        java.lang.IllegalArgumentException - if principalY is not greater than Double.MIN_VALUE or is greater than imageSizeY
        java.lang.IllegalArgumentException - if imageSizeX is not greater than Double.MIN_VALUE
        java.lang.IllegalArgumentException - if imageSizeY is not greater than Double.MIN_VALUE
        java.lang.IllegalArgumentException - if deviceOrientation is null
        Since:
        100.6.0
      • interactionSetInteractionOrigin

        protected final void interactionSetInteractionOrigin​(float x,
                                                             float y)
        Sets the interaction origin screen point, subsequent interactions pass delta changes from this point.
        Parameters:
        x - the x value of the screen coordinate
        y - the y value of the screen coordinate
        Since:
        100.1.0
      • interactionZoomInAnimated

        protected final void interactionZoomInAnimated​(float x,
                                                       float y)
        Animated zoom in used for scene interaction e.g. double tap.
        Parameters:
        x - the x value of the screen coordinate to zoom in on
        y - the y value of the screen coordinate to zoom in on
        Since:
        100.1.0
      • interactionZoomOutAnimated

        protected final void interactionZoomOutAnimated​(float x,
                                                        float y)
        Animated zoom out used for scene interaction e.g. multi-pointer tap tap.
        Parameters:
        x - the x value of the screen coordinate to zoom out on
        y - the y value of the screen coordinate to zoom out on
        Since:
        100.1.0
      • interactionPan

        protected final void interactionPan​(float deltaX,
                                            float deltaY)
        Pan the scene view relative to the screen point origin, set by calling interactionSetInteractionOrigin.
        Parameters:
        deltaX - the x delta in screen coordinates
        deltaY - the y delta in screen coordinates
        Since:
        100.1.0
      • interactionPitch

        protected final void interactionPitch​(double pitchDelta)
        Rotate the camera around the origin that's set by interactionSetInteractionOrigin, only the pitch angle of the camera is updated, not the heading.
        Parameters:
        pitchDelta - change in pitch
        Since:
        100.1.0
      • interactionRotate

        protected final void interactionRotate​(double rotationDelta)
        Rotate the camera around the origin that's set by interactionSetInteractionOrigin, only the heading angle of the camera is updated, not the pitch.
        Parameters:
        rotationDelta - change in heading
        Since:
        100.1.0
      • interactionZoomToOrigin

        protected final void interactionZoomToOrigin​(double factor)
        Zoom the camera towards or away from the origin that's set by interactionSetInteractionOrigin.
        Parameters:
        factor - the factor to zoom by
        Since:
        100.1.0
      • interactionActivateFlick

        protected final void interactionActivateFlick()
        Activates a camera flick by performing an inertia based pan in the direction of the most recent pan operations.

        This method triggers an automated inertia based pan as a result of previous calls to interactionSetInteractionOrigin and interactionPan. The direction and velocity of the inertia is calculated using a weighted average of the most recent pan operations. Note that flick will not activate if there were no recent pan operations or the velocity of those pans were deemed too slow.

        Since:
        100.1.0
      • interactionSetInteracting

        protected final void interactionSetInteracting​(boolean interacting)
        Sets if the view is being interacted with or not.
        Parameters:
        interacting - true to indicate interaction is happening, otherwise false
        Since:
        100.1.0