diff --git a/src/vbl_aquarium/models/pinpoint.py b/src/vbl_aquarium/models/pinpoint.py index df529d3..bb725b6 100644 --- a/src/vbl_aquarium/models/pinpoint.py +++ b/src/vbl_aquarium/models/pinpoint.py @@ -1,6 +1,8 @@ from __future__ import annotations -from vbl_aquarium.models.unity import Vector2, Vector3 +from pydantic import Field + +from vbl_aquarium.models.unity import Vector2, Vector3, Color from vbl_aquarium.utils.vbl_base_model import VBLBaseModel # CRANIOTOMY @@ -10,17 +12,55 @@ class CraniotomyModel(VBLBaseModel): index: int size: Vector2 position: Vector3 - rectangle: bool = False - - -class CraniotomyGroup(VBLBaseModel): - atlas: str - data: list[CraniotomyModel] - # TRANSFORM class AffineTransformModel(VBLBaseModel): + name: str + prefix: str scaling: Vector3 rotation: Vector3 + + +# RIG + +class RigModel(VBLBaseModel): + name: str + image: str + position: Vector3 = Field(default=Vector3(x=0, y=0, z=0)) + rotation: Vector3 = Field(default=Vector3(x=0, y=0, z=0)) + active: bool + + +# Probes and insertions + +class InsertionModel(VBLBaseModel): + position: Vector3 + angles: Vector3 + atlas_name: str + transform_name: str + reference_coord: Vector3 + +class ProbeModel(VBLBaseModel): + insertion: InsertionModel + + uuid: str + name: str + + color: Color + + +# Full scene + +class SceneModel(VBLBaseModel): + atlas_name: str + transform_name: str + + probes: list[ProbeModel] + rigs: list[RigModel] + craniotomies: list[CraniotomyModel] + + scene_data: list[str] + + settings: str