Vuer

vuer.rtc.operations.registry

Registry for operation apply functions.

Each operation type has a registered apply function that handles applying the operation to a scene node.

register_apply_fn

python
def register_apply_fn(otype: str) -> Callable[[ApplyFn], ApplyFn]

Source

Decorator to register an apply function for an operation type.

Usage: @register_apply_fn("vector3.set") def apply_vector3_set(node: SceneNode, op: Operation, lamport_time: int) -> None: ...

get_apply_fn

python
def get_apply_fn(otype: str) -> Optional[ApplyFn]

Source

Get the apply function for an operation type.

Registry

python
class Registry

Source

Registry providing access to all registered apply functions.

Registry.get

python
def get(self, otype: str) -> Optional[ApplyFn]

Source

Get apply function for operation type.

Registry.has

python
def has(self, otype: str) -> bool

Source

Check if operation type is registered.

Registry.apply

python
def apply(self, node: SceneNode, op: Operation, lamport_time: int) -> None

Source

Apply an operation to a node.

Args: node: The scene node to modify (mutated in place) op: The operation to apply lamport_time: Lamport timestamp for LWW operations

Registry.registered_types

python
def registered_types(self) -> list

Source

List all registered operation types.

apply_number_set

python
def apply_number_set(node: SceneNode, op: Operation, lamport_time: int) -> None

Source

Last-Write-Wins set for numbers.

apply_number_add

python
def apply_number_add(node: SceneNode, op: Operation, lamport_time: int) -> None

Source

Additive operation for numbers.

apply_number_multiply

python
def apply_number_multiply(node: SceneNode, op: Operation, lamport_time: int) -> None

Source

Multiplicative operation for numbers.

apply_number_min

python
def apply_number_min(node: SceneNode, op: Operation, lamport_time: int) -> None

Source

Take minimum of current and new value.

apply_number_max

python
def apply_number_max(node: SceneNode, op: Operation, lamport_time: int) -> None

Source

Take maximum of current and new value.

apply_string_set

python
def apply_string_set(node: SceneNode, op: Operation, lamport_time: int) -> None

Source

Last-Write-Wins set for strings.

apply_string_concat

python
def apply_string_concat(node: SceneNode, op: Operation, lamport_time: int) -> None

Source

Concatenate strings.

apply_boolean_set

python
def apply_boolean_set(node: SceneNode, op: Operation, lamport_time: int) -> None

Source

Last-Write-Wins set for booleans.

apply_boolean_or

python
def apply_boolean_or(node: SceneNode, op: Operation, lamport_time: int) -> None

Source

Logical OR (enable wins).

apply_boolean_and

python
def apply_boolean_and(node: SceneNode, op: Operation, lamport_time: int) -> None

Source

Logical AND (disable wins).

apply_vector3_set

python
def apply_vector3_set(node: SceneNode, op: Operation, lamport_time: int) -> None

Source

Last-Write-Wins set for Vector3.

apply_vector3_add

python
def apply_vector3_add(node: SceneNode, op: Operation, lamport_time: int) -> None

Source

Component-wise addition for Vector3.

apply_vector3_multiply

python
def apply_vector3_multiply(node: SceneNode, op: Operation, lamport_time: int) -> None

Source

Component-wise multiplication for Vector3.

apply_vector3_apply_euler

python
def apply_vector3_apply_euler(node: SceneNode, op: Operation, lamport_time: int) -> None

Source

Rotate vector by Euler angles (XYZ order).

apply_vector3_apply_quaternion

python
def apply_vector3_apply_quaternion(node: SceneNode, op: Operation, lamport_time: int) -> None

Source

Rotate vector by quaternion [x, y, z, w].

apply_euler_set

python
def apply_euler_set(node: SceneNode, op: Operation, lamport_time: int) -> None

Source

Last-Write-Wins set for Euler angles.

apply_euler_add

python
def apply_euler_add(node: SceneNode, op: Operation, lamport_time: int) -> None

Source

Component-wise addition for Euler angles.

apply_quaternion_set

python
def apply_quaternion_set(node: SceneNode, op: Operation, lamport_time: int) -> None

Source

Last-Write-Wins set for quaternions.

apply_quaternion_multiply

python
def apply_quaternion_multiply(node: SceneNode, op: Operation, lamport_time: int) -> None

Source

Quaternion multiplication (composition).

apply_color_set

python
def apply_color_set(node: SceneNode, op: Operation, lamport_time: int) -> None

Source

Last-Write-Wins set for colors.

apply_color_blend

python
def apply_color_blend(node: SceneNode, op: Operation, lamport_time: int) -> None

Source

Blend colors (average RGB values).

apply_array_set

python
def apply_array_set(node: SceneNode, op: Operation, lamport_time: int) -> None

Source

Last-Write-Wins set for arrays.

apply_array_push

python
def apply_array_push(node: SceneNode, op: Operation, lamport_time: int) -> None

Source

Append item to array.

apply_array_union

python
def apply_array_union(node: SceneNode, op: Operation, lamport_time: int) -> None

Source

Union of arrays (set-like, no duplicates).

apply_array_remove

python
def apply_array_remove(node: SceneNode, op: Operation, lamport_time: int) -> None

Source

Remove item from array by value.

apply_object_set

python
def apply_object_set(node: SceneNode, op: Operation, lamport_time: int) -> None

Source

Last-Write-Wins set for objects.

apply_object_merge

python
def apply_object_merge(node: SceneNode, op: Operation, lamport_time: int) -> None

Source

Deep merge objects (LWW per key at top level).

apply_text_init

python
def apply_text_init(node: SceneNode, op: Operation, lamport_time: int) -> None

Source

Initialize a text property.

apply_text_insert

python
def apply_text_insert(node: SceneNode, op: Operation, lamport_time: int) -> None

Source

Insert text at position.

apply_text_delete

python
def apply_text_delete(node: SceneNode, op: Operation, lamport_time: int) -> None

Source

Delete text at position.

Public imports

These symbols are available from this module. Their definitions are documented in the linked modules.