Some more work on models

This commit is contained in:
Maximilian Giller 2025-09-13 03:46:29 +02:00
parent 91deb3fc20
commit 393730a2b2

View file

@ -23,22 +23,25 @@ class Capabilities(Enum):
@dataclass
class Fixture:
"""Definition of a fixture that generates light, its capabilities and positioning."""
id: str
"""Unique identifier for fixture."""
name: str
"""Human readable name."""
capabilities: Capabilities
"""Which dynamic capabilities does the fixture have."""
position: SpaceVector
"""Position of the fixture in the space in meters."""
target: SpaceVector
"""Position of the light generated by the ficture in the space in meters."""
spread: SpaceVector
"""Spread of the light in the space at the target in meters."""
exposure: float
"""In range [0,1], how exposed is the light source of the fixture. 0: no exposure. 1: full exposure."""
@ -48,9 +51,36 @@ class Space:
id: str
"""Unique identifier for space."""
name: str
"""Human readable name."""
fixtures: list[Fixture]
"""All fixtures present in the space."""
center: SpaceVector
"""A reference point in the space from which the audience perspective might be assumed."""
@dataclass
class Sequence:
"""A sequence of light events described over fixtures."""
id: str
"""A unique identifier for this sequence."""
name: str
"""Human readable name."""
@dataclass
class Event:
"""A collection of sequences and spaces."""
spaces: list[Space]
"""A collection of spaces."""
sequences: list[Sequence]
"""A collection of sequences."""