public interface Entity extends ScenePose

Known direct subclasses
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.

PanelEntity

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

SurfaceEntity

SurfaceEntity is a concrete implementation of Entity that hosts a StereoSurface Canvas.

Known indirect subclasses
ActivityPanelEntity

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

MainPanelEntity

Represents the main spatialized panel in a Scene.


Interface for a spatial Entity. An Entity's Poses are represented as being relative to their parent. Applications create and manage Entity instances to construct spatial scenes.

Summary

Public methods

abstract void

Sets an Entity to be a child of this Entity in the scene graph.

abstract boolean

Adds a Component to this Entity.

abstract void

Disposes of any system resources held by this Entity, and transitively calls dispose() on all its children.

default @FloatRange(from = 0.0, to = 1.0) float

Returns the alpha transparency set for this Entity.

abstract @FloatRange(from = 0.0, to = 1.0) float
getAlpha(int relativeTo)

Returns the alpha transparency set for this Entity, relative to given Space.

abstract @NonNull List<@NonNull Component>

Retrieves all components attached to this Entity.

abstract @NonNull List<@NonNull T>

Retrieves all Components of the given type T and its sub-types attached to this Entity.

abstract @NonNull CharSequence

Alternate text for this Entity to be consumed by Accessibility systems.

abstract Entity

The parent of this Entity, from which this Entity will inherit most of its properties.

default @NonNull Pose

Returns the Pose for this Entity, relative to its parent.

abstract @NonNull Pose
getPose(int relativeTo)

Returns the Pose for this Entity, relative to the provided Space.

default @FloatRange(from = 0.0) float

Returns the local scale of this Entity, not inclusive of the parent's scale.

abstract @FloatRange(from = 0.0) float
getScale(int relativeTo)

Returns the scale of this entity, relative to given space.

abstract boolean
isEnabled(boolean includeParents)

Returns the enabled status of this Entity.

abstract void

Remove all components from this Entity.

abstract void

Removes the given Component from this Entity.

default void
setAlpha(@FloatRange(from = 0.0, to = 1.0) float alpha)

Sets the alpha transparency of the Entity and its children.

abstract void
setAlpha(@FloatRange(from = 0.0, to = 1.0) float alpha, int relativeTo)

Sets the alpha transparency of the Entity relative to given Space.

abstract void

Alternate text for this Entity to be consumed by Accessibility systems.

abstract void
setEnabled(boolean enabled)

Sets the local enabled state of this Entity.

abstract void
setParent(Entity parent)

The parent of this Entity, from which this Entity will inherit most of its properties.

default void

Sets the Pose for this Entity, relative to its parent.

abstract void
setPose(@NonNull Pose pose, int relativeTo)

Sets the Pose for this Entity.

default void
setScale(@FloatRange(from = 0.0) float scale)

Sets the scale of this Entity relative to its parent.

abstract void
setScale(@FloatRange(from = 0.0) float scale, int relativeTo)

Sets the scale of this Entity relative to given Space.

Inherited methods

From androidx.xr.scenecore.ScenePose
abstract @NonNull Pose

The current Pose relative to the activity space root.

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

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

abstract @NonNull 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.

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

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

Public methods

addChild

Added in 1.0.0-alpha05
abstract void addChild(@NonNull Entity child)

Sets an Entity to be a child of this Entity in the scene graph. The child Entity will inherit properties from the parent, and will be represented in the parent's coordinate space. From a User's perspective, as this Entity moves, the child Entity will move with it.

Parameters
@NonNull Entity child

The Entity to be attached.

addComponent

Added in 1.0.0-alpha05
abstract boolean addComponent(@NonNull Component component)

Adds a Component to this Entity.

Parameters
@NonNull Component component

the Component to be added to the Entity.

Returns
boolean

True if given Component was successfully added to the Entity.

dispose

Added in 1.0.0-alpha05
abstract void dispose()

Disposes of any system resources held by this Entity, and transitively calls dispose() on all its children. Once disposed, this Entity is invalid and cannot be used again.

getAlpha

Added in 1.0.0-alpha05
default @FloatRange(from = 0.0, to = 1.0) float getAlpha()

Returns the alpha transparency set for this Entity.

This does not necessarily equal the perceived alpha of the Entity, as the Entity may have some alpha difference applied from its parent or the system.

getAlpha

Added in 1.0.0-alpha05
abstract @FloatRange(from = 0.0, to = 1.0) float getAlpha(int relativeTo)

Returns the alpha transparency set for this Entity, relative to given Space.

Parameters
int relativeTo

Gets alpha relative to given Space. Default value is the parent space.

getComponents

Added in 1.0.0-alpha05
abstract @NonNull List<@NonNull ComponentgetComponents()

Retrieves all components attached to this Entity.

Returns
@NonNull List<@NonNull Component>

List attached to this Entity.

getComponentsOfType

Added in 1.0.0-alpha05
abstract @NonNull List<@NonNull T> <T extends Component> getComponentsOfType(@NonNull Class<@NonNull T> type)

Retrieves all Components of the given type T and its sub-types attached to this Entity.

Parameters
@NonNull Class<@NonNull T> type

The type of Component to retrieve.

Returns
@NonNull List<@NonNull T>

List of the given type attached to this Entity.

getContentDescription

Added in 1.0.0-alpha05
abstract @NonNull CharSequence getContentDescription()

Alternate text for this Entity to be consumed by Accessibility systems.

getParent

Added in 1.0.0-alpha05
abstract Entity getParent()

The parent of this Entity, from which this Entity will inherit most of its properties. For example, this Entity's Pose is defined in relation to the parent Entity's coordinate space, so as the parent moves, this Entity will move with it. Setting the parent to null will remove the Entity from the scene graph.

getPose

Added in 1.0.0-alpha05
default @NonNull Pose getPose()

Returns the Pose for this Entity, relative to its parent.

Returns
@NonNull Pose

Current Pose offset from the parent.

getPose

Added in 1.0.0-alpha05
abstract @NonNull Pose getPose(int relativeTo)

Returns the Pose for this Entity, relative to the provided Space.

Parameters
int relativeTo

Get the Pose relative to given Space. Default value is the parent space.

Returns
@NonNull Pose

Current Pose of the Entity relative to the given space.

getScale

Added in 1.0.0-alpha05
default @FloatRange(from = 0.0) float getScale()

Returns the local scale of this Entity, not inclusive of the parent's scale.

Returns
@FloatRange(from = 0.0) float

Current uniform scale applied to self and children.

getScale

Added in 1.0.0-alpha05
abstract @FloatRange(from = 0.0) float getScale(int relativeTo)

Returns the scale of this entity, relative to given space.

Parameters
int relativeTo

Get the scale relative to given Space. Default value is the parent space.

Returns
@FloatRange(from = 0.0) float

Current uniform scale applied to self and children.

isEnabled

Added in 1.0.0-alpha05
abstract boolean isEnabled(boolean includeParents)

Returns the enabled status of this Entity.

Parameters
boolean includeParents

Whether to include the enabled status of parents in the returned value.

Returns
boolean

If includeParents is true, the returned value will be true if this Entity or any of its ancestors is enabled. If includeParents is false, the local enabled state is returned. Regardless of the local enabled state, an Entity will be considered disabled if any of its ancestors are disabled.

removeAllComponents

Added in 1.0.0-alpha05
abstract void removeAllComponents()

Remove all components from this Entity.

removeComponent

Added in 1.0.0-alpha05
abstract void removeComponent(@NonNull Component component)

Removes the given Component from this Entity.

Parameters
@NonNull Component component

Component to be removed from this entity.

setAlpha

Added in 1.0.0-alpha05
default void setAlpha(@FloatRange(from = 0.0, to = 1.0) float alpha)

Sets the alpha transparency of the Entity and its children. Values are in the range 0, 1 with 0 being fully transparent and 1 being fully opaque.

This value will affect the rendering of this Entity's children. Children of this node will have their alpha levels multiplied by this value and any alpha of this Entity's ancestors.

setAlpha

Added in 1.0.0-alpha05
abstract void setAlpha(@FloatRange(from = 0.0, to = 1.0) float alpha, int relativeTo)

Sets the alpha transparency of the Entity relative to given Space. Values are in the range 0, 1 with 0 being fully transparent and 1 being fully opaque.

This value will affect the rendering of this Entity's children. Children of this node will have their alpha levels multiplied by this value and any alpha of this entity's ancestors.

Parameters
@FloatRange(from = 0.0, to = 1.0) float alpha

Alpha transparency level for the Entity.

int relativeTo

Sets alpha relative to given Space. Default value is the parent Space.

setContentDescription

Added in 1.0.0-alpha05
abstract void setContentDescription(@NonNull CharSequence contentDescription)

Alternate text for this Entity to be consumed by Accessibility systems.

setEnabled

Added in 1.0.0-alpha05
abstract void setEnabled(boolean enabled)

Sets the local enabled state of this Entity.

When false, this Entity and all descendants will not be rendered in the scene, and the Entity will not respond to input events. If an Entity's local enabled state is true, the Entity will still be considered not enabled if at least one of its ancestors is not enabled.

Parameters
boolean enabled

The new local enabled state of this Entity.

setParent

Added in 1.0.0-alpha05
abstract void setParent(Entity parent)

The parent of this Entity, from which this Entity will inherit most of its properties. For example, this Entity's Pose is defined in relation to the parent Entity's coordinate space, so as the parent moves, this Entity will move with it. Setting the parent to null will remove the Entity from the scene graph.

setPose

Added in 1.0.0-alpha05
default void setPose(@NonNull Pose pose)

Sets the Pose for this Entity, relative to its parent.

setPose

Added in 1.0.0-alpha05
abstract void setPose(@NonNull Pose pose, int relativeTo)

Sets the Pose for this Entity. The Pose given is set relative to the Space provided.

Parameters
@NonNull Pose pose

The Pose offset from the parent.

int relativeTo

Set the pose relative to given Space. Default value is the parent space.

setScale

Added in 1.0.0-alpha05
default void setScale(@FloatRange(from = 0.0) float scale)

Sets the scale of this Entity relative to its parent. This value will affect the rendering of this Entity's children. As the scale increases, this will uniformly stretch the content of the Entity.

Parameters
@FloatRange(from = 0.0) float scale

The uniform scale factor from the parent.

setScale

Added in 1.0.0-alpha05
abstract void setScale(@FloatRange(from = 0.0) float scale, int relativeTo)

Sets the scale of this Entity relative to given Space. This value will affect the rendering of this Entity's children. As the scale increases, this will uniformly stretch the content of the Entity.

Parameters
@FloatRange(from = 0.0) float scale

The uniform scale factor.

int relativeTo

Set the scale relative to given Space. Default value is the parent Space.