fibomat.site module#

Provides the Site class.

class fibomat.site.Site(dim_center: DimVector | Quantity, dim_fov: DimVector | Quantity | None = None, *, description: str | None = None)[source]#

Bases: DimTransformable

The Site class is used to collect shapes with its patterning settings.

Note

All shape positions added to each site are interpreted relative to the site’s position!

Note

If fov is not passed, it will be determined by the bounding box of the added patterns. But if a fixed FOV is given, it is not checked if the added shapes fit inside the fov.

__init__(dim_center: DimVector | Quantity, dim_fov: DimVector | Quantity | None = None, *, description: str | None = None)[source]#
Args:

dim_center (DimVectorLike): Center coordinate of the site. dim_fov (DimVectorLike, optional): The fov (field of view) to be used. If not given, the fov will be

calculated automatically.

description (str, optional): description

property fov: DimVector#

Field-of-view of the site.

Access:

get

Returns:

DimVector

property square_fov: DimVector#

Squared field-of-view of the site.

Access:

get

Returns:

DimVector

property fov_bounding_box: DimBoundingBox#

Bounding box given by fov and center rather from the contained patterns.

Returns:

DimBoundingBox

property empty: bool#

If True, site does not contain any shapes

Access:

get

Returns:

bool

property bounding_box: DimBoundingBox#

Bounding box of the added patterns.

Access:

get

Returns:

DimBoundingBox

property patterns#

Contained patterns in site

Access:

get

Returns:

List[Pattern]

property patterns_absolute#

Return a list of all patterns contained in the side which are shifted by the side’s center. Hence, these patterns’ positions are not relative to the site’s center anymore but absolute to the coordinate origin.

Access:

get

Returns:

List[Pattern]

create_pattern(dim_shape: DimShape, mill: MillBase, raster_style: RasterStyle, description: str | None = None, **kwargs) Pattern[source]#

Creates a pattern in-place (returned pattern is automatically added to the site). The parameters are identical to the __init__method of the fibomat.pattern.Pattern class.

Args:

dim_shape: mill: raster_style: description: **kwargs:

Returns:

Pattern

add_pattern(ptn: Pattern | LayoutBase) None[source]#

Adds a fibomat.pattern.Pattern or Layoutbase[Pattern] to the site.

Args:

ptn (Pattern): new pattern

Returns:

None

property center: DimVector#

Center of the site.

Access:

get

Returns:

DimVector

clone() T#

Create a deepcopy of the object.

Returns:

Describable

property description: str | None#

Description str.

Access:

get

Returns:

Optional[str]

mirrored(mirror_plane: VectorT) SelfT#

Return a mirrored object mirrored about mirror_plane.

Args:

mirror_plane (VectorLike): mirror plane to be used.

Returns:

TransformableBase

property pivot: VectorT#

Origin of the (geometric) object. If origin is set to None, Transformable.center will be returned.

Pivot must be set to a callable function without parameters.

transformable_obj = ...
transformable_obj.pivot = lambda: return Vector(1, 2)
print(transformable_obj.pivot)  # will print Vector(1, 2)
Access:

get/set

Returns:

Vector

rotated(theta: float, origin: VectorT | str | None = None) SelfT#

Return a rotated copy around origin with angle theta in math. positive direction (counterclockwise).

Args:

theta (float): rotation angle in rad origin (Optional[Union[linalg.VectorLike, str]], optional):

origin of rotation. If not set, (0,0) is used as origin. If origin == ‘center’, the Transformable.center of the object will be used. The same applies for the case that origin == ‘origin’ with the Transformable.origin property. Default to None.

Returns:

TransformableBase

scaled(fac: float, origin: VectorT | str | None = None) SelfT#

Return a scale object homogeneously about origin with factor s.

Args:

fac (float): rotation angle in rad origin (Optional[Union[linalg.VectorLike, str]], optional):

origin of rotation. If not set, (0,0) is used as origin. If origin == ‘center’, the Transformable.center of the object will be used. The same applies for the case that origin == ‘origin’ with the Transformable.origin property. Default to None.

Returns:

TransformableBase

transformed(transformations: _TransformationBuilder[VectorT]) SelfT#
Return a transformed object. the transformation can be build by the following functions:
  • translate()

  • rotate()

  • scale()

  • mirror()

E.g.

transformable_obj.transform(translate([1, 2]) | rotate(np.pi/3) | mirror([3,4])
Args:

transformations (_TransformationBuilder): transformation

Returns:

TransformableBase

translated(trans_vec: VectorT) SelfT#

Return a translated copy of the object by trans_vec.

Args:

trans_vec (VectorLike): translation vector

Returns:

TransformableBase

translated_to(pos: VectorT) SelfT#

Return a translated copy of the object so that self.pivot == pos

Args:

pos: new position of object

Returns:

TransformableBase

with_changed_description(new_descr: str) T#

Clones the object and set the description to new_descr.

Args:

new_descr: new description

Returns:

Describable