Source code for fibomat.layout.groups.group
"""Provide the :class:`Group` class."""
# pylint: disable=protected-access
from __future__ import annotations
from typing import Optional, List, TypeVar
from fibomat.layout.groups.group_base import GroupBase
from fibomat.linalg import Vector, Transformable, BoundingBox, VectorLike
from fibomat.units import U_
[docs]class Group(GroupBase[Transformable, Vector, BoundingBox], Transformable):
[docs] def __init__(
self,
elements: List[Transformable],
description: Optional[str] = None
):
super().__init__(elements=elements, description=description)
def __mul__(self, other):
if isinstance(other, U_):
from fibomat.layout.groups.dim_group import DimGroup
return DimGroup([elem * other for elem in self.elements], description=self.description)
raise NotImplementedError