File size: 1,840 Bytes
1e3ce4c | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | """pixel_cursor β the cursor primitive that owns animation studio pixel mutation.
Public surface:
PixelCursor, open_cursor β the cursor type and entry point
Point, Region, Mask, Token, β selector types
Layer, Anchor3D, Selector
TemporalScope, FrameIndex, β temporal scope
FrameRange, ALL_FRAMES
DepthScope, OpacityProfile, β auxiliary scope
IdentityLock
Image, FrameStack, Artifact β artifacts (immutable; construct via cursor or loader)
load_image β disk loader
ease_between, step_on_stride, β timing primitives (A1 classical-animation layer)
hold_with_micro, AnimationSegment, interp_t, CURVES
ops β backend registration registry
Backends register concrete write_* via pixel_cursor.ops.register_backend(op, name, fn).
"""
from .cursor import PixelCursor, open_cursor
from .selectors import Point, Region, Mask, Token, Layer, Anchor3D, Selector
from .scope import (
TemporalScope,
FrameIndex,
FrameRange,
ALL_FRAMES,
DepthScope,
IdentityLock,
OpacityProfile,
)
from .artifact import Artifact, Image, FrameStack, load_image
from .timing import (
AnimationSegment,
ease_between,
step_on_stride,
hold_with_micro,
interp_t,
CURVES,
)
from . import ops
__all__ = [
"PixelCursor",
"open_cursor",
"Point",
"Region",
"Mask",
"Token",
"Layer",
"Anchor3D",
"Selector",
"TemporalScope",
"FrameIndex",
"FrameRange",
"ALL_FRAMES",
"DepthScope",
"OpacityProfile",
"IdentityLock",
"Artifact",
"Image",
"FrameStack",
"load_image",
"AnimationSegment",
"ease_between",
"step_on_stride",
"hold_with_micro",
"interp_t",
"CURVES",
"ops",
]
|