BaseScenePose


public abstract class BaseScenePose<RtScenePoseType extends ScenePose> implements ScenePose

Known direct subclasses
BaseEntity

The BaseEntity is an implementation of Entity interface that wraps a platform entity.

PerceptionSpace

PerceptionSpace is an ScenePose used to track the origin of the space used by ARCore for Jetpack XR APIs.

Known indirect subclasses
ActivityPanelEntity

ActivityPanelEntity creates a spatial panel for embedding an Activity in Android XR.

ActivitySpace

ActivitySpace is an Entity used to track the system-managed pose and boundary of the volume associated with a spatialized Activity.

AnchorEntity

An AnchorEntity tracks a androidx.xr.runtime.math.Pose relative to some position or surface in the "Real World." Children of this Entity will remain positioned relative to that location in the real world, for the purposes of creating Augmented Reality experiences.

GltfModelEntity

GltfModelEntity is a concrete implementation of Entity that hosts a glTF model.

GroupEntity

An Entity that contains no content, but can have an arbitrary number of children.

MainPanelEntity

Represents the main spatialized panel in a Scene.

PanelEntity

PanelEntity contains an arbitrary 2D Android View, within a spatialized XR scene.

SurfaceEntity

SurfaceEntity is an Entity that hosts a Surface, which will be texture mapped onto the Shape.


The BaseScenePose implements the ScenePose interface.

Summary

Protected constructors

<RtScenePoseType extends ScenePose> BaseScenePose(
    @NonNull RtScenePoseType rtScenePose
)

Public methods

@NonNull Pose

The current Pose relative to the activity space root.

HitTestResult
hitTest(@NonNull Vector3 origin, @NonNull Vector3 direction)

Perform a hit test from the specified origin in the specified direction into the Scene.

HitTestResult
hitTest(
    @NonNull Vector3 origin,
    @NonNull Vector3 direction,
    int hitTestFilter
)

Creates a hit test from the specified origin in the specified direction into the scene.

@NonNull Vector3
transformDirectionTo(
    @NonNull Vector3 direction,
    @NonNull ScenePose destination
)

Transforms a direction from this ScenePose's local space to the destination ScenePose's local space.

@NonNull Pose
transformPoseTo(@NonNull Pose pose, @NonNull ScenePose destination)

Returns a Pose relative to this ScenePose, transformed into a Pose relative to the destination.

@NonNull Vector3
transformPositionTo(
    @NonNull Vector3 position,
    @NonNull ScenePose destination
)

Transforms a position from this ScenePose's local space to the destination ScenePose's local space.

@NonNull Vector3

Transforms a vector from this ScenePose's local space to the destination ScenePose's local space.

Protected constructors

BaseScenePose

protected <RtScenePoseType extends ScenePose> BaseScenePose(
    @NonNull RtScenePoseType rtScenePose
)

Public methods

getActivitySpacePose

public @NonNull Pose getActivitySpacePose()

The current Pose relative to the activity space root.

hitTest

public HitTestResult hitTest(@NonNull Vector3 origin, @NonNull Vector3 direction)

Perform a hit test from the specified origin in the specified direction into the Scene.

Parameters
@NonNull Vector3 origin

The translation of the origin of the hit test relative to this ScenePose.

@NonNull Vector3 direction

The direction for the hit test ray from the origin.

Returns
HitTestResult

The HitTestResult, or null if the hit test did not find an intersection. The HitTestResult describes the location and normal of the object closest to the hit, relative to this ScenePose.

hitTest

public HitTestResult hitTest(
    @NonNull Vector3 origin,
    @NonNull Vector3 direction,
    int hitTestFilter
)

Creates a hit test from the specified origin in the specified direction into the scene.

Parameters
@NonNull Vector3 origin

The translation of the origin of the hit test relative to this ScenePose.

@NonNull Vector3 direction

The direction for the hit test ray from the origin

int hitTestFilter

Filter for which scenes to hit test. Hitting other scenes is only allowed for apps with the com.android.extensions.xr.ACCESS_XR_OVERLAY_SPACE permission.

Returns
HitTestResult

The HitTestResult, or null if the hit test did not find an intersection. The HitTestResult describes the location and normal of the object closest to the hit, relative to this ScenePose.

transformDirectionTo

public @NonNull Vector3 transformDirectionTo(
    @NonNull Vector3 direction,
    @NonNull ScenePose destination
)

Transforms a direction from this ScenePose's local space to the destination ScenePose's local space. This operation ignores relative scaling; the output vector will have the same magnitude as direction.

This operation is not affected by either ScenePose's scale or position.

Parameters
@NonNull Vector3 direction

The direction in this ScenePose's local coordinate space

@NonNull ScenePose destination

The ScenePose which the returned direction will be relative to.

Returns
@NonNull Vector3

The direction in the destination ScenePose's local space. It will have the same magnitude as the input direction.

transformPoseTo

public @NonNull Pose transformPoseTo(@NonNull Pose pose, @NonNull ScenePose destination)

Returns a Pose relative to this ScenePose, transformed into a Pose relative to the destination.

Parameters
@NonNull Pose pose

A Pose in this ScenePose's local coordinate space.

@NonNull ScenePose destination

The ScenePose which the returned Pose will be relative to.

Returns
@NonNull Pose

The Pose relative to the destination ScenePose.

transformPositionTo

public @NonNull Vector3 transformPositionTo(
    @NonNull Vector3 position,
    @NonNull ScenePose destination
)

Transforms a position from this ScenePose's local space to the destination ScenePose's local space.

This operation is affected by both ScenePose's position, rotation, and scale.

Parameters
@NonNull Vector3 position

The position in this ScenePose's local coordinate space

@NonNull ScenePose destination

The ScenePose which the returned position will be relative to.

Returns
@NonNull Vector3

The position in the destination ScenePose's local space.

transformVectorTo

public @NonNull Vector3 transformVectorTo(@NonNull Vector3 vector, @NonNull ScenePose destination)

Transforms a vector from this ScenePose's local space to the destination ScenePose's local space. This operation accounts for scale. The magnitude of the output vector might be different from the magnitude of the input vector.

This operation is not affected by either ScenePose's position.

Parameters
@NonNull Vector3 vector

The vector in this ScenePose's local coordinate space

@NonNull ScenePose destination

The ScenePose which the returned vector will be relative to.

Returns
@NonNull Vector3

The vector in the destination ScenePose's local space. The returned magnitude will be affected by destination scale.