Source code for qiskit_metal.qlibrary.sample_shapes.rectangle
# -*- coding: utf-8 -*-
# This code is part of Qiskit.
#
# (C) Copyright IBM 2017, 2021.
#
# This code is licensed under the Apache License, Version 2.0. You may
# obtain a copy of this license in the LICENSE.txt file in the root directory
# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.
#
# Any modifications or derivative works of this code must retain this
# copyright notice, and modified files need to carry a notice indicating
# that they have been altered from the originals.
"""File contains dictionary for Rectangle and the make()."""
from qiskit_metal import draw, Dict
from qiskit_metal.qlibrary.core import QComponent
[docs]
class Rectangle(QComponent):
"""A single configurable square.
Inherits QComponent class.
The class will add default_options class Dict to QComponent class before calling make.
.. image::
Rectangle.png
.. meta::
:description: Rectangle
Default Options:
* width: '500um'
* height: '300um'
* subtract: 'False'
* helper: 'False'
"""
default_options = Dict(
width="500um", height="300um", subtract="False", helper="False"
)
"""Default drawing options"""
TOOLTIP = """A single configurable square"""
[docs]
def make(self):
"""The make function implements the logic that creates the geometry
(poly, path, etc.) from the qcomponent.options dictionary of
parameters, and the adds them to the design, using
qcomponent.add_qgeometry(...), adding in extra needed information, such
as layer, subtract, etc."""
p = self.p # p for parsed parameters. Access to the parsed options.
# create the geometry
rect = draw.rectangle(p.width, p.height, p.pos_x, p.pos_y)
rect = draw.rotate(rect, p.orientation)
##############################################
# add qgeometry
self.add_qgeometry(
"poly",
{"rectangle": rect},
subtract=p.subtract,
helper=p.helper,
layer=p.layer,
chip=p.chip,
)