# 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_axis_angle.fbs".

# You can extend this class by creating a "RotationAxisAngleExt" class in "rotation_axis_angle_ext.py".

from __future__ import annotations

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

__all__ = ["RotationAxisAngle", "RotationAxisAngleBatch"]


class RotationAxisAngle(datatypes.RotationAxisAngle, ComponentMixin):
    """
    **Component**: 3D rotation represented by a rotation around a given axis.

    If normalization of the rotation axis fails the rotation is treated as an invalid transform, unless the
    angle is zero in which case it is treated as an identity.
    """

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

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


class RotationAxisAngleBatch(datatypes.RotationAxisAngleBatch, ComponentBatchMixin):
    _COMPONENT_TYPE: str = "rerun.components.RotationAxisAngle"


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