Skip to content

Add interactionMode description to model #2345

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Apr 23, 2025
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 24 additions & 8 deletions source/presentation/4.0/model.md
Original file line number Diff line number Diff line change
Expand Up @@ -1113,18 +1113,34 @@ The `value` property of the UnitValue _MUST_ be between 0.0 and 1.0.
### interactionMode
{: #interactionMode}

*within* the Scene, whereas viewingDirection and behavior are across containers.
A set of features that guide or limit user interaction with Cameras viewing 3D content within a Scene that the publisher of the content would prefer the client to use when presenting the resource. This specification defines the values in the table below. Others may be defined externally as an [extension][prezi30-ldce]. The client _SHOULD_ use `interactionMode` to determine the user experience features and approaches whereby users are permitted to change or adjust Camera perspectives when viewing content within a Scene (e.g., orbiting around the scene or locking the user to a first-person perspective).

* Containers _MAY_ have the `interactionMode`
When more than one interaction mode is present, the client _SHOULD_ pick the first interaction mode that the client is capable of supporting.

Table here with values
For interaction modes that involve a Camera orbiting around a target point, the target point _SHOULD_ be the same as the Camera's `lookAt` property.

The value _MUST_ be an array of strings.

* A Container (scene?) _MAY_ have the `interactionMode` property.<br/>
Clients _SHOULD_ process `interactionMode` on a Container.
* Other types of resource _MUST NOT_ have the `interactionMode` property.<br/>
Clients _SHOULD_ ignore `interactionMode` on other types of resource.

| Value | Description |
| ----- | ----------- |
| `locked` | Camera is locked. User interaction _MUST NOT_ modify Camera. |
| `orbit` | Camera orbits around a target point in response to user interaction. A client _MAY_ allow user interacton to truck, dolly, or zoom Camera. |
| `hemisphere-orbit` | Camera orbits around a target point in response to user interaction, but orbital freedom is limited to a hemisphere. A client _MAY_ allow Camera truck, dolly, or zoom. |
| `free` | Camera mimics a first-person perspective. User interaction pans or tilts Camera perspective, trucks Camera position, and/or dollies or zooms Camera. |
| `free-direction` | Camera mimics a first-person perspective, but Camera position is fixed. User interaction pans or tilts Camera perspective. |
{: .api-table #table-interaction}

locked
orbit
hemisphere-orbit
free
free-direction
?: Allow dolly/zoom in `locked` or `free-direction`?

{% include api/code_header.html %}
``` json-doc
{ "interactionMode": [ "hemisphere-orbit", "orbit" ] }
```

other examples: no-zoom, no-scrub, rti-mode
### items
Expand Down
Loading