# DO NOT EDIT! This file was auto-generated by crates/build/re_types_builder/src/codegen/python/mod.rs
# Based on "crates/store/re_sdk_types/definitions/rerun/components/rotation_quat.fbs".

# You can extend this class by creating a "RotationQuatExt" class in "rotation_quat_ext.py".

from __future__ import annotations

from .. import datatypes
from .._baseclasses import (
    ComponentBatchMixin,
    ComponentMixin,
)

__all__ = ["RotationQuat", "RotationQuatBatch"]


class RotationQuat(datatypes.Quaternion, ComponentMixin):
    """
    **Component**: A 3D rotation expressed as a quaternion.

    Note: although the x,y,z,w components of the quaternion will be passed through to the
    datastore as provided, when used in the Viewer, quaternions will always be normalized.
    If normalization fails the rotation is treated as an invalid transform.
    """

    _BATCH_TYPE = None
    # You can define your own __init__ function as a member of RotationQuatExt in rotation_quat_ext.py

    # Note: there are no fields here because RotationQuat delegates to datatypes.Quaternion


class RotationQuatBatch(datatypes.QuaternionBatch, ComponentBatchMixin):
    _COMPONENT_TYPE: str = "rerun.components.RotationQuat"


# This is patched in late to avoid circular dependencies.
RotationQuat._BATCH_TYPE = RotationQuatBatch  # type: ignore[assignment]
