"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import avikom.unity.transpose_pb2
import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import sys

if sys.version_info >= (3, 8):
    import typing as typing_extensions
else:
    import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing_extensions.final
class GameObject(google.protobuf.message.Message):
    """*
    This message describes a (virtual) object in the current scene.
    Properties have been chosen to allo Unity-based peers to create instances from such a message.
    However, this message might also be used in contexts where rendering is not necessary.
    @author: Alexander Neumann <alneuman@techfak.uni-bielefeld.de>
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NAME_FIELD_NUMBER: builtins.int
    TRANSPOSE_FIELD_NUMBER: builtins.int
    PREFAB_FIELD_NUMBER: builtins.int
    PARENT_FIELD_NUMBER: builtins.int
    CHILDREN_FIELD_NUMBER: builtins.int
    name: builtins.str
    """/ scene name of the object"""
    @property
    def transpose(self) -> avikom.unity.transpose_pb2.Transpose:
        """/ the pose of the object relative to its parent"""
    prefab: builtins.str
    """/ addressable uri of the (audio)visual appearance blueprint/prefab"""
    parent: builtins.str
    """/ the parent's name; if not set, an object will be attached to the scene's root or an equivalent group"""
    @property
    def children(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___GameObject]:
        """/ a list of nested `GameObjects`; parent will be this object if not stated differently"""
    def __init__(
        self,
        *,
        name: builtins.str = ...,
        transpose: avikom.unity.transpose_pb2.Transpose | None = ...,
        prefab: builtins.str = ...,
        parent: builtins.str = ...,
        children: collections.abc.Iterable[global___GameObject] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["transpose", b"transpose"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["children", b"children", "name", b"name", "parent", b"parent", "prefab", b"prefab", "transpose", b"transpose"]) -> None: ...

global___GameObject = GameObject
