diff --git a/src/models.py b/src/models.py index 3a6cabf..405393e 100644 --- a/src/models.py +++ b/src/models.py @@ -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."""