OrbitGeoElementCameraController

Support Orbital Camera navigation around a stationary or moving point GeoElement object. Orbit camera controller provides orbital navigation around a point object.

Since

200.1.0

See also

Constructors

Link copied to clipboard
fun OrbitGeoElementCameraController(targetGeoElement: GeoElement, distance: Double)

Creates an OrbitGeoElementCameraController using a distance to specified GeoElement. An Orbit camera controller is used associate camera navigation and movement with a GeoElement point object. This can take the form of a Graphic, a Feature, or a DynamicEntity. When the controller is set on the Scene View using SceneView.cameraController the interaction mode for will change for the active navigation model be focused on the input GeoElement allowing the user to rotation around and zoom in an out from the object. For a moving GeoElement the camera will move in synchronization with it. Adjusting it position, heading, pitch and roll with the object by simply changing the object with no requirement to change the camera.

Properties

Link copied to clipboard
val cameraDistance: StateFlow<Double>

The distance from the target object to the camera.

Link copied to clipboard
val cameraHeadingOffset: StateFlow<Double>

The heading of the camera relative to the target object.

Link copied to clipboard
val cameraPitchOffset: StateFlow<Double>

The pitch of the camera relative to the target object.

Link copied to clipboard

Determines if CameraHeadingOffset is updated with target's heading. If true, the camera will maintain its heading offset when the target's heading changes. Defaults to true. The graphic's heading can be controlled using an expression in the renderer class.

Link copied to clipboard

Determines if CameraPitchOffset is updated with target's pitch. If true, the camera will maintain its pitch offset when the target's pitch changes. Defaults to true. The graphic's pitch can be controlled using an expression in the renderer class.

Link copied to clipboard

Determines if CameraRollOffset is updated with target's roll. If true, the camera will maintain its roll offset when the target's roll changes. Defaults to true. The graphic's roll can be controlled using an expression in the renderer class

Link copied to clipboard

The interactive distance value indicating if user interactions are enabled supporting distance changes/zoom interactions. When enabled the user can interactively change the distance between the camera and the target object.

Link copied to clipboard

The interactive heading value indicating if user interactions are enabled. When interactive heading is enabled the user is able to manually change the relative heading between the target focal point and the camera.

Link copied to clipboard

The interactive pitch value indicating if user interactions are enabled. When interactive pitch is enabled the user is able to manually change the relative pitch between the target focal point and the camera.

Link copied to clipboard

The maximum distance from the camera to the target. No limit on maximum distance. Animations and interactions are bounded by this limit.

Link copied to clipboard

The maximum camera heading. Any angle, positive or negative. Will be wrapped to a clockwise angle in 0, 360. Animations and interactions are bounded by this limit.

Link copied to clipboard

The maximum camera pitch. The maximum camera Pitch. Must be between (MinCameraPitchOffset, 90]. Defaults to 90. Animations and interactions are bounded by this limit.

Link copied to clipboard

The minimum distance from the camera to the target. Must be greater than 0. Defaults to 0. Animations and interactions are bounded by this limit.

Link copied to clipboard

The minimum camera heading. Any angle, positive or negative. Will be wrapped to a clockwise angle in 0, 360. Animations and interactions are bounded by this limit.

Link copied to clipboard

The minimum camera pitch. The minimum camera Pitch. Must be between [-90, MaxCameraPitchOffset). Defaults to -90. Animations and interactions are bounded by this limit.

Link copied to clipboard

The target geo element of the camera controller. The target GeoElement can represent either point Graphic, a point Feature, or a point DynamicEntity. the target determines the focal point of the camera managed by the orbit camera controller

Link copied to clipboard

The X Offset of the target focus point relative the target object in the X axis in the symbol coordinate system. Setting the offsets for the target allows the user to move the focal point from the target's geometry to any point on the symbol.

Link copied to clipboard

The Y Offset of the target focus point relative the target object in the Y axis in the symbol coordinate system. Setting the offsets for the target allows the user to move the focal point from the graphic's geometry to any point on the symbol.

Link copied to clipboard

The Z Offset of the target focus point relative the target object in the Z axis in the symbol coordinate system. Setting the offsets for the target allows the user to move the focal point from the graphic's geometry to any point on the symbol.

Link copied to clipboard

The target screen vertical factor of the orbit camera controller. The target screen vertical factor value indicates the position of the target object on the screen. The default values is 0.5 representing the vertical center of the screen.

Functions

Link copied to clipboard
suspend fun moveCamera(distanceDelta: Double, headingDelta: Double, pitchDelta: Double, duration: Float): Result<Boolean>

Animate the camera to the new position relative to the target.

Link copied to clipboard
fun setCameraDistance(cameraDistance: Double)

Sets the value of the cameraDistance StateFlow property.

Link copied to clipboard
fun setCameraHeadingOffset(cameraHeadingOffset: Double)

Sets the value of the cameraHeadingOffset StateFlow property.

Link copied to clipboard
fun setCameraPitchOffset(cameraPitchOffset: Double)

Sets the value of the cameraPitchOffset StateFlow property.

Link copied to clipboard
suspend fun setTargetOffsets(x: Double, y: Double, z: Double, duration: Float): Result<Boolean>

Animate the camera target offsets of the camera. By default the camera focus's on the target's geometry center point. Using the offsets you can move the focal point to a new position relative to that center point.