"""Scope: WHERE in time, depth, identity, and opacity the cursor extends.""" from __future__ import annotations from dataclasses import dataclass from typing import Optional, Union import numpy as np @dataclass(frozen=True, slots=True) class FrameIndex: index: int @dataclass(frozen=True, slots=True) class FrameRange: start: int end: int class _AllFrames: __slots__ = () def __repr__(self) -> str: return "ALL_FRAMES" ALL_FRAMES = _AllFrames() TemporalScope = Union[FrameIndex, FrameRange, _AllFrames] @dataclass(frozen=True, slots=True) class DepthScope: layer_id: Optional[str] = None @dataclass(frozen=True, slots=True, eq=False) class OpacityProfile: kind: str = "hard" falloff: Optional[np.ndarray] = None @dataclass(frozen=True, slots=True, eq=False) class IdentityLock: embedding: np.ndarray source: str = ""