

# Generated by the protocol buffer compiler.  DO NOT EDIT!
# sources: blickfeld/video/config/visualization.proto
# plugin: python-betterproto
from dataclasses import dataclass

import blickfeld_qb2.betterproto as betterproto
import blickfeld_qb2.betterproto.lib.google.protobuf as betterproto_lib_google_protobuf

from ...base import geometry as __base_geometry__


class VisualizationRotation(betterproto.Enum):
    """
    Defines the clockwise rotation value for the frame in the video stream
    """

    ROTATION_UNSPECIFIED = 0
    """no video frame rotation"""

    ROTATION_90 = 1
    """rotate video frame 90 degrees"""

    ROTATION_180 = 2
    """rotate video frame 180 degrees"""

    ROTATION_270 = 3
    """rotate video frame 270 degrees"""


@dataclass(eq=False, repr=False)
class Visualization(betterproto.Message):
    """
    Message representing the visuals configuration of the RTSP video stream
    """

    frame: "VisualizationFrame" = betterproto.message_field(1)
    """frame configuration"""

    camera: "VisualizationCamera" = betterproto.message_field(3)
    """camera configuration"""


@dataclass(eq=False, repr=False)
class VisualizationColor(betterproto.Message):
    """
    RGB color used for coloring various elements and objects inside RTSP video
    frame
    """

    red: float = betterproto.float_field(1)
    """The amount of red in the color as a value in the interval [0, 1]."""

    green: float = betterproto.float_field(2)
    """The amount of green in the color as a value in the interval [0, 1]."""

    blue: float = betterproto.float_field(3)
    """The amount of blue in the color as a value in the interval [0, 1]."""

    alpha: float = betterproto.float_field(4)
    """
    The alpha channel (transparency) in the interval [0, 1]. 0 means
    transparent
    """


@dataclass(eq=False, repr=False)
class VisualizationFrame(betterproto.Message):
    """
    Visual configuration of point cloud frame. Element coloring can be disabled
    by unsetting the corresponding color.
    """

    background: "VisualizationColor" = betterproto.message_field(1)
    """color used to mark background point"""

    foreground: "VisualizationColor" = betterproto.message_field(2)
    """color used to mark foreground point - gray"""

    rotation: "VisualizationRotation" = betterproto.enum_field(7)
    """clockwise rotation value applied to the frame"""


@dataclass(eq=False, repr=False)
class VisualizationCamera(betterproto.Message):
    """Configuration of the camera"""

    position: "__base_geometry__.Vector3" = betterproto.message_field(1)
    """camera position - where camera is located"""

    target: "__base_geometry__.Vector3" = betterproto.message_field(2)
    """camera target - target at which camera looks"""
