Skip to main content

Abstract Class: SceneBase<EntityType>

Defined in: livelink.clients/livelink.base/sources/scene/Scene.ts:119

The scene class.

It is the main entry point to interact with the entities in the scene. It is responsible for creating, finding, and deleting entities.

It is generic over the concrete entity type EntityType so each SDK gets its own entity flavour back from every scene method. The actual entity instantiation is delegated to the abstract _instantiateEntity factory implemented by each concrete Scene.

This class is not meant to be instantiated directly. Instead, it is created by the livelink instance and can be accessed through the scene property.

Extends

Extended by

Type Parameters

Type ParameterDefault type
EntityType extends EntityEntity

Methods

addEventListener()

addEventListener<_EventName>(
event_name: _EventName,
listener: (event: SceneEvents<EntityType>[_EventName]) => void,
options?: boolean | AddEventListenerOptions): void;

Defined in: livelink.clients/livelink.base/sources/TypedEventTarget.ts:10

Type Parameters

Type Parameter
_EventName extends | "on-entities-created" | "on-entities-deleted" | "on-scene-settings-updated"

Parameters

ParameterType
event_name_EventName
listener(event: SceneEvents<EntityType>[_EventName]) => void
options?boolean | AddEventListenerOptions

Returns

void

Inherited from

TypedEventTarget.addEventListener


removeEventListener()

removeEventListener<_EventName>(
event_name: _EventName,
listener: (event: SceneEvents<EntityType>[_EventName]) => void,
options?: boolean | EventListenerOptions): void;

Defined in: livelink.clients/livelink.base/sources/TypedEventTarget.ts:21

Type Parameters

Type Parameter
_EventName extends | "on-entities-created" | "on-entities-deleted" | "on-scene-settings-updated"

Parameters

ParameterType
event_name_EventName
listener(event: SceneEvents<EntityType>[_EventName]) => void
options?boolean | EventListenerOptions

Returns

void

Inherited from

TypedEventTarget.removeEventListener


newEntity()

newEntity(params: {
name: string;
components: ComponentsManifest;
options?: {
delete_on_client_disconnection?: boolean;
auto_broadcast?: boolean;
};
parent?: EntityType | null;
}): Promise<EntityType>;

Defined in: livelink.clients/livelink.base/sources/scene/Scene.ts:204

Create a new entity.

Parameters

ParameterTypeDescription
params{ name: string; components: ComponentsManifest; options?: { delete_on_client_disconnection?: boolean; auto_broadcast?: boolean; }; parent?: EntityType | null; }-
params.namestringThe name of the entity.
params.componentsComponentsManifestThe components to add to the entity with their initial values. If no initial values are provided, the default values are used.
params.options?{ delete_on_client_disconnection?: boolean; auto_broadcast?: boolean; }Additional options for the entity creation.
params.options.delete_on_client_disconnection?booleanWhether to delete the entity when the client disconnects.
params.options.auto_broadcast?booleanDeprecated Whether to broadcast the entity automatically.
params.parent?EntityType | null-

Returns

Promise<EntityType>

A promise that resolves to the created entity.

Example

const entity = await scene.newEntity({
name: "My Entity",
components: {
local_transform: {
position: [0, 2, 0],
// default values are used for scale and orientation
},
},
});

newEntities()

newEntities(params: {
components_array: ComponentsManifest[];
options?: {
delete_on_client_disconnection?: boolean;
auto_broadcast?: boolean;
};
}): Promise<EntityType[]>;

Defined in: livelink.clients/livelink.base/sources/scene/Scene.ts:237

Create multiple entities at once. This method is more efficient than calling newEntity multiple times. It creates all entities in a single call to the core.

Parameters

ParameterTypeDescription
params{ components_array: ComponentsManifest[]; options?: { delete_on_client_disconnection?: boolean; auto_broadcast?: boolean; }; }-
params.components_arrayComponentsManifest[]An array of objects with the name and components of each entity.
params.options?{ delete_on_client_disconnection?: boolean; auto_broadcast?: boolean; }Additional options for the entity creation.
params.options.delete_on_client_disconnection?booleanWhether to delete the entity when the client disconnects.
params.options.auto_broadcast?booleanDeprecated Whether to broadcast the entity automatically.

Returns

Promise<EntityType[]>

A promise that resolves to an array of the created entities.


findEntity()

findEntity(params: {
entity_uuid: UUID;
linkage?: UUID[];
}): Promise<EntityType | null>;

Defined in: livelink.clients/livelink.base/sources/scene/Scene.ts:265

Find an entity by its UUID and linkage.

Parameters

ParameterTypeDescription
params{ entity_uuid: UUID; linkage?: UUID[]; }-
params.entity_uuidUUIDThe UUID of the entity to find.
params.linkage?UUID[]The linkage of the entity to find.

Returns

Promise<EntityType | null>

A promise that resolves to the found entity or null if not found.


findEntities()

findEntities(params: {
entity_uuid: UUID;
}): Promise<EntityType[]>;

Defined in: livelink.clients/livelink.base/sources/scene/Scene.ts:307

Find entities by their UUID.

This can return multiple entities if the entity is a child of a Components.SceneRef that is instanced multiple times.

Parameters

ParameterTypeDescription
params{ entity_uuid: UUID; }-
params.entity_uuidUUIDThe UUID of the entity to find.

Returns

Promise<EntityType[]>

A promise that resolves to an array of entities with the given UUID.


deleteEntities()

deleteEntities(params: {
entities: EntityType[];
}): Promise<void>;

Defined in: livelink.clients/livelink.base/sources/scene/Scene.ts:328

Delete a batch of entities.

Parameters

ParameterTypeDescription
params{ entities: EntityType[]; }-
params.entitiesEntityType[]The entities to delete.

Returns

Promise<void>

A promise that resolves when the entities are deleted.


highlightEntities()

highlightEntities(params: {
entities: EntityType[];
keep_old_selection?: boolean;
}): Promise<void>;

Defined in: livelink.clients/livelink.base/sources/scene/Scene.ts:345

Highlight a batch of entities.

Parameters

ParameterTypeDescription
params{ entities: EntityType[]; keep_old_selection?: boolean; }-
params.entitiesEntityType[]The entities to highlight.
params.keep_old_selection?booleanWhether to keep the old selection or not.

Returns

Promise<void>

A promise that resolves when the message is sent.


fireEvent()

fireEvent(params: {
event_map_id: UUID;
event_name: string;
emitter_entity?: EntityType;
target_entities?: EntityType[];
data_object?: ScriptDataObject;
}): void;

Defined in: livelink.clients/livelink.base/sources/scene/Scene.ts:374

Experimental

Fire a script event.

Parameters

ParameterTypeDescription
params{ event_map_id: UUID; event_name: string; emitter_entity?: EntityType; target_entities?: EntityType[]; data_object?: ScriptDataObject; }-
params.event_map_idUUIDThe UUID of the event map.
params.event_namestringThe name of the event.
params.emitter_entity?EntityTypeThe entity that emits the event.
params.target_entities?EntityType[]The entities that are the target of the event. Leave empty for global events.
params.data_object?ScriptDataObjectThe data object to pass with the event.

Returns

void

A promise that resolves when the message is sent.


setFilter()

setFilter(__namedParameters: {
name: string;
value: string;
}): void;

Defined in: livelink.clients/livelink.base/sources/scene/Scene.ts:399

Experimental

Parameters

ParameterType
__namedParameters{ name: string; value: string; }
__namedParameters.namestring
__namedParameters.valuestring

Returns

void


toggleFilter()

toggleFilter(__namedParameters: {
name: string;
enabled: boolean;
}): void;

Defined in: livelink.clients/livelink.base/sources/scene/Scene.ts:407

Experimental

Parameters

ParameterType
__namedParameters{ name: string; enabled: boolean; }
__namedParameters.namestring
__namedParameters.enabledboolean

Returns

void


removeFilter()

removeFilter(__namedParameters: {
name: string;
}): void;

Defined in: livelink.clients/livelink.base/sources/scene/Scene.ts:414

Experimental

Parameters

ParameterType
__namedParameters{ name: string; }
__namedParameters.namestring

Returns

void


findEntitiesByNames()

findEntitiesByNames(__namedParameters: {
entity_names: string[];
}): Promise<EntityType[]>;

Defined in: livelink.clients/livelink.base/sources/scene/Scene.ts:421

Parameters

ParameterType
__namedParameters{ entity_names: string[]; }
__namedParameters.entity_namesstring[]

Returns

Promise<EntityType[]>

Deprecated


findEntitiesWithComponents()

findEntitiesWithComponents(__namedParameters: {
mandatory_components: keyof ComponentsRecord[];
forbidden_components?: keyof ComponentsRecord[];
}): Promise<EntityType[]>;

Defined in: livelink.clients/livelink.base/sources/scene/Scene.ts:432

Parameters

ParameterType
__namedParameters{ mandatory_components: keyof ComponentsRecord[]; forbidden_components?: keyof ComponentsRecord[]; }
__namedParameters.mandatory_componentskeyof ComponentsRecord[]
__namedParameters.forbidden_components?keyof ComponentsRecord[]

Returns

Promise<EntityType[]>

Deprecated


getSettings()

getSettings(): Promise<Readonly<SceneSettingsRecord>>;

Defined in: livelink.clients/livelink.base/sources/scene/Scene.ts:770

Get the current scene settings. These values can be updated in real-time by other clients. Altering these values locally will update the scene settings on the server and broadcast the changes to other connected clients.

Returns

Promise<Readonly<SceneSettingsRecord>>

The current scene settings.


getInfo()

getInfo(): Promise<SceneInfo<EntityType>>;

Defined in: livelink.clients/livelink.base/sources/scene/Scene.ts:780

Get scene information such as the entity count, triangle count, and scene bounding box.

Returns

Promise<SceneInfo<EntityType>>

The scene info.