public class Entity extends BaseScenePose

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 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.

MeshEntity

A renderable entity in the scene graph that renders a CustomMesh.

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.

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.


An Entity is the fundamental building block of a SceneCore Scene. Entities have a parent-child relationship with each other and are used to build a spatial scene graph.

There are several different Entity types with Entity being the base class. The position of most Entity types can be updated within the scene graph by updating their Pose. Additionally, the Entity's scale, and alpha can be updated. Components can be attached to Entities to enable additional behaviors.

There are several subtypes of Entities. These include Entities with special positions, (e.g. ActivitySpace and AnchorEntity) as well as those which are used to render different types of content (e.g. PanelEntity and GltfModelEntity).

Summary

Public methods

final void

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

final boolean

Adds a Component to this Entity.

static final @NonNull Entity
create(
    @NonNull Session session,
    String name,
    @NonNull Pose pose,
    Entity parent
)

Public factory method for creating an Entity.

final @FloatRange(from = 0.0, to = 1.0) float
getAlpha(@NonNull Space relativeTo)

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

final @NonNull List<@NonNull Entity>

Provides the list of all children of this entity.

final @NonNull List<@NonNull Component>

Retrieves all components attached to this Entity.

final @NonNull List<@NonNull T>

Retrieves all Components of the given type T and its subtypes attached to this Entity.

final @NonNull CharSequence

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

final Entity

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

@NonNull Pose
getPose(@NonNull Space relativeTo)

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

@FloatRange(from = 0.0) float
getScale(@NonNull Space relativeTo)

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

final boolean
isEnabled(boolean includeParents)

Returns the enabled status of this Entity.

final void

Remove all components from this Entity.

final void

Removes the given Component from this Entity.

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

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

final void

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

final void
setEnabled(boolean enabled)

Sets the local enabled state of this Entity.

final void

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

void
setPose(@NonNull Pose pose, @NonNull Space relativeTo)

Sets the Pose for this Entity.

void
setScale(@FloatRange(from = 0.0) float scale, @NonNull Space relativeTo)

Sets the scale of this Entity relative to the given Space.

Inherited methods

From androidx.xr.scenecore.BaseScenePose
@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.

Public methods

addChild

Added in 1.0.0-alpha16
public final 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-alpha16
public final 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. This can be false for certain components if an Entity already has a component of that type or does not support the component type.

create

Added in 1.0.0-alpha16
public static final @NonNull Entity create(
    @NonNull Session session,
    String name,
    @NonNull Pose pose,
    Entity parent
)

Public factory method for creating an Entity.

Parameters
@NonNull Session session

Session to create the Entity in.

String name

Name of the entity. This is unset by default.

@NonNull Pose pose

Initial pose of the entity. The default value is Pose.Identity.

Entity parent

Parent entity. Defaults to null. If null, the entity is created but not attached to the scene graph, meaning it will be invisible. If a parent entity (e.g., ActivitySpace or any other Entity already present in the scene) is assigned later, the entity will become visible (provided it is enabled). This allows for Entity pre-configuration before making it visible.

getAlpha

Added in 1.0.0-alpha16
public final @FloatRange(from = 0.0, to = 1.0) float getAlpha(@NonNull Space relativeTo)

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

Parameters
@NonNull Space relativeTo

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

getChildren

Added in 1.0.0-alpha16
public final @NonNull List<@NonNull EntitygetChildren()

Provides the list of all children of this entity. Adding children can be done using addChild or by setting the parent property of the child Entity. To remove a child, set the child's parent property to another Entity or null.

Returns
@NonNull List<@NonNull Entity>

List of all children of this entity.

getComponents

Added in 1.0.0-alpha16
public final @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-alpha16
public final @NonNull List<@NonNull T> <T extends Component> getComponentsOfType(@NonNull Class<@NonNull T> type)

Retrieves all Components of the given type T and its subtypes 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. This list will be empty if no components of the given type are attached to this Entity.

getContentDescription

Added in 1.0.0-alpha16
public final @NonNull CharSequence getContentDescription()

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

getParent

Added in 1.0.0-alpha16
public final 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-alpha16
public @NonNull Pose getPose(@NonNull Space relativeTo)

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

Parameters
@NonNull Space 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-alpha16
public @FloatRange(from = 0.0) float getScale(@NonNull Space relativeTo)

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

Parameters
@NonNull Space 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-alpha16
public final boolean isEnabled(boolean includeParents)

Returns the enabled status of this Entity.

If includeParents is true, the returned value will be false if this Entity or any of its ancestors is disabled. 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.

Parameters
boolean includeParents

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

Returns
boolean

True if this Entity is enabled, possibly including the enabled status of its parents.

removeAllComponents

Added in 1.0.0-alpha16
public final void removeAllComponents()

Remove all components from this Entity.

removeComponent

Added in 1.0.0-alpha16
public final void removeComponent(@NonNull Component component)

Removes the given Component from this Entity.

setAlpha

Added in 1.0.0-alpha16
public final void setAlpha(@FloatRange(from = 0.0, to = 1.0) float alpha)

Sets the alpha transparency of the Entity relative to the parent 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. As a result, the effective alpha of a child cannot exceed the effective alpha of its parent.

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

Alpha transparency level for the Entity.

setContentDescription

Added in 1.0.0-alpha16
public final void setContentDescription(@NonNull CharSequence value)

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

setEnabled

Added in 1.0.0-alpha16
public final 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-alpha16
public final void setParent(Entity value)

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-alpha16
public void setPose(@NonNull Pose pose, @NonNull Space 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.

@NonNull Space relativeTo

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

setScale

Added in 1.0.0-alpha16
public void setScale(@FloatRange(from = 0.0) float scale, @NonNull Space relativeTo)

Sets the scale of this Entity relative to the 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.

@NonNull Space relativeTo

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