manimgeo.components.multiple.args 源代码

from __future__ import annotations

from ..base import ArgsModelBase
from typing import TYPE_CHECKING, Union, Literal, List, Callable, Sequence

type Number = Union[float, int]

if TYPE_CHECKING:
    from .multiple import MultipleComponents

from ..base import BaseGeometry

[文档] class MultipleArgs(ArgsModelBase): construct_type: Literal["Multiple"] = "Multiple" geometry_objects: List[BaseGeometry]
[文档] class FilteredMultipleArgs(MultipleArgs): """ 通过指定过滤器过滤,从而在保持依赖的同时构建新 MultipleComponents """ construct_type: Literal["FilteredMultiple"] = "FilteredMultiple" filter_func: Callable[[List[BaseGeometry]], List[bool]] geometry_objects: List[BaseGeometry]
[文档] class FilteredMultipleMonoArgs(ArgsModelBase): """ 通过指定过滤器过滤,从而在保持依赖的同时构建新 MultipleComponents 不考虑多个对象的相对关系的前提下,该构造方式相较而言更快一些 """ construct_type: Literal["FilteredMultipleMono"] = "FilteredMultipleMono" filter_func: Callable[[BaseGeometry], bool] geometry_objects: List[BaseGeometry]
[文档] class UnionArgs(ArgsModelBase): """ 并集 """ construct_type: Literal["Union"] = "Union" multiples: Sequence[MultipleComponents]
[文档] class IntersectionArgs(ArgsModelBase): """ 交集 """ construct_type: Literal["Intersection"] = "Intersection" multiples: Sequence[MultipleComponents]
type MultipleConstructArgs = Union[ MultipleArgs, FilteredMultipleArgs, FilteredMultipleMonoArgs, UnionArgs, IntersectionArgs, ] MultipleConstructArgsList = [ MultipleConstructArgs, FilteredMultipleArgs, FilteredMultipleMonoArgs, UnionArgs, IntersectionArgs, ] type MultipleConstructType = Literal[ "Multiple", "FilteredMultiple", "FilteredMultipleMono", "Union", "Intersection", ]