ResizableComponent
public final class ResizableComponent implements Component
This Component can be attached to a single instance of an Entity. When attached, this Component will enable the user to resize the Entity by selecting and dragging along the boundaries of a user-resize affordance. While resizing an overlay will appear indicating the proposed updated size.
This component cannot be attached to an AnchorEntity or to the ActivitySpace. Calling Entity.addComponent to an Entity with these types will return false.
Note: This Component is currently unsupported on GltfModelEntity.
Summary
Public methods |
|
|---|---|
final void |
addResizeEventListener(Adds the listener to the set of listeners that are invoked through the resize operation, such as start, ongoing and end. |
static final @NonNull ResizableComponent |
create(Public factory function for creating a ResizableComponent. |
final @NonNull FloatSize3d |
The current size of the affordance for the |
final @NonNull FloatSize3d |
An upper bound for the User's resize actions, in meters. |
final @NonNull FloatSize3d |
A lower bound for the User's resize actions, in meters. |
final boolean |
Whether a resize overlay will be shown even if the entity is not being resized. |
final boolean |
Whether the content of the |
final boolean |
Whether the aspect ratio is maintained during resizing. |
boolean |
Called by an |
void |
Called by an |
final void |
removeResizeEventListener(Removes a listener from the set listening to resize events. |
final void |
setAffordanceSize(@NonNull FloatSize3d affordanceSize)The current size of the affordance for the |
final void |
setAlwaysShowOverlayEnabled(boolean isAlwaysShowOverlayEnabled)Whether a resize overlay will be shown even if the entity is not being resized. |
final void |
setAutoHideContentWhileResizingEnabled(Whether the content of the |
final void |
setFixedAspectRatioEnabled(boolean isFixedAspectRatioEnabled)Whether the aspect ratio is maintained during resizing. |
final void |
setMaximumEntitySize(@NonNull FloatSize3d maximumEntitySize)An upper bound for the User's resize actions, in meters. |
final void |
setMinimumEntitySize(@NonNull FloatSize3d minimumEntitySize)A lower bound for the User's resize actions, in meters. |
Public methods
addResizeEventListener
public final void addResizeEventListener(
@NonNull Executor executor,
@NonNull Consumer<@NonNull ResizeEvent> resizeEventListener
)
Adds the listener to the set of listeners that are invoked through the resize operation, such as start, ongoing and end.
The listener is invoked on the provided Executor if provided.
create
public static final @NonNull ResizableComponent create(
@NonNull Session session,
@NonNull FloatSize3d minimumSize,
@NonNull FloatSize3d maximumSize,
@NonNull Executor executor,
@NonNull Consumer<@NonNull ResizeEvent> resizeEventListener
)
Public factory function for creating a ResizableComponent.
This Component can be attached to a single instance of an Entity. When attached, this Component will enable the user to resize the Entity by dragging along the boundaries of a user-resize affordance.
This component cannot be attached to an AnchorEntity or to the ActivitySpace. Calling Entity.addComponent to an Entity with these types will return false.
| Parameters | |
|---|---|
@NonNull Session session |
The |
@NonNull FloatSize3d minimumSize |
A lower bound for the User's resize actions, in meters. This value is used to set constraints on how small the user can resize the bounding box of the entity down to. The size of the content inside that bounding box is fully controlled by the application. The default value is 0 meters. |
@NonNull FloatSize3d maximumSize |
An upper bound for the User's resize actions, in meters. This value is used to set constraints on how large the user can resize the bounding box of the entity up to. The size of the content inside that bounding box is fully controlled by the application. The default value is 10 meters. |
@NonNull Executor executor |
The Executor to run the listener on. By default listener is invoked on the main thread. |
@NonNull Consumer<@NonNull ResizeEvent> resizeEventListener |
A resize event listener for the event. The application should set the size of a PanelEntity using |
| Returns | |
|---|---|
@NonNull ResizableComponent |
|
getAffordanceSize
public final @NonNull FloatSize3d getAffordanceSize()
The current size of the affordance for the Entity, in meters. This property is automatically updated after resize events to match the resize affordance to the newly suggested size of the content. The apps can still override it. The default value is set to 1 meter. If attached to a PanelEntity, this is updated to the size of the Entity when attached.
getMaximumEntitySize
public final @NonNull FloatSize3d getMaximumEntitySize()
An upper bound for the User's resize actions, in meters. This value constrains large the user can resize the bounding box of the Entity. The size of the content inside that bounding box is fully controlled by the application.
getMinimumEntitySize
public final @NonNull FloatSize3d getMinimumEntitySize()
A lower bound for the User's resize actions, in meters. This value constrains how small the user can resize the bounding box of the Entity. The size of the content inside that bounding box is fully controlled by the application.
isAlwaysShowOverlayEnabled
public final boolean isAlwaysShowOverlayEnabled()
Whether a resize overlay will be shown even if the entity is not being resized.
This is useful for resizing multiple panels at once.
isAutoHideContentWhileResizingEnabled
public final boolean isAutoHideContentWhileResizingEnabled()
Whether the content of the Entity, and all child Entities, will be automatically hidden while it is being resized.
isFixedAspectRatioEnabled
public final boolean isFixedAspectRatioEnabled()
Whether the aspect ratio is maintained during resizing.
If true the affordance will maintain its current aspect ratio being resized and all suggested sizes will maintain the current aspect ratio. This defaults to false.
onAttach
public boolean onAttach(@NonNull Entity entity)
Called by an Entity when it attempts to add this Component to itself.
This method is restricted because it is only called from Entity.addComponent.
| Returns | |
|---|---|
boolean |
True if the Component was attached to the given Entity. False if the Entity did not support having this Component attached. |
onDetach
public void onDetach(@NonNull Entity entity)
Called by an Entity when it attempts to detach this Component from itself.
This method is restricted because it is only called from Entity.removeComponent.
removeResizeEventListener
public final void removeResizeEventListener(
@NonNull Consumer<@NonNull ResizeEvent> resizeEventListener
)
Removes a listener from the set listening to resize events.
| Parameters | |
|---|---|
@NonNull Consumer<@NonNull ResizeEvent> resizeEventListener |
The listener to be removed. |
setAffordanceSize
public final void setAffordanceSize(@NonNull FloatSize3d affordanceSize)
The current size of the affordance for the Entity, in meters. This property is automatically updated after resize events to match the resize affordance to the newly suggested size of the content. The apps can still override it. The default value is set to 1 meter. If attached to a PanelEntity, this is updated to the size of the Entity when attached.
setAlwaysShowOverlayEnabled
public final void setAlwaysShowOverlayEnabled(boolean isAlwaysShowOverlayEnabled)
Whether a resize overlay will be shown even if the entity is not being resized.
This is useful for resizing multiple panels at once.
setAutoHideContentWhileResizingEnabled
public final void setAutoHideContentWhileResizingEnabled(
boolean isAutoHideContentWhileResizingEnabled
)
Whether the content of the Entity, and all child Entities, will be automatically hidden while it is being resized.
setFixedAspectRatioEnabled
public final void setFixedAspectRatioEnabled(boolean isFixedAspectRatioEnabled)
Whether the aspect ratio is maintained during resizing.
If true the affordance will maintain its current aspect ratio being resized and all suggested sizes will maintain the current aspect ratio. This defaults to false.
setMaximumEntitySize
public final void setMaximumEntitySize(@NonNull FloatSize3d maximumEntitySize)
An upper bound for the User's resize actions, in meters. This value constrains large the user can resize the bounding box of the Entity. The size of the content inside that bounding box is fully controlled by the application.
setMinimumEntitySize
public final void setMinimumEntitySize(@NonNull FloatSize3d minimumEntitySize)
A lower bound for the User's resize actions, in meters. This value constrains how small the user can resize the bounding box of the Entity. The size of the content inside that bounding box is fully controlled by the application.