Source code for gdsfactory.components.copy_layers
from __future__ import annotations
from typing import Any
import gdsfactory as gf
from gdsfactory.cell import cell
from gdsfactory.component import Component
from gdsfactory.components.cross import cross
from gdsfactory.typings import ComponentSpec, LayerSpecs
[docs]
@cell
def copy_layers(
factory: ComponentSpec = cross, layers: LayerSpecs = ((1, 0), (2, 0)), **kwargs: Any
) -> Component:
"""Returns a component with the geometry copied in different layers.
Args:
factory: component spec.
layers: iterable of layers.
kwargs: keyword arguments.
"""
c = Component()
for layer in layers:
ci = gf.get_component(factory, layer=layer, **kwargs)
_ = c << ci
c.copy_child_info(ci)
return c
if __name__ == "__main__":
c = copy_layers(gf.components.rectangle)
c.show()