fibomat.pattern module#
Provides the Pattern
class.
- class fibomat.pattern.Pattern(dim_shape: DimShape, mill: MillBase, raster_style: RasterStyle, *, description: str | None = None, **kwargs)[source]#
Bases:
DimTransformable
,Generic
[DimTransformableT
]Class is used to collect a shape with a length unit, mill settings and optional settings.
- __init__(dim_shape: DimShape, mill: MillBase, raster_style: RasterStyle, *, description: str | None = None, **kwargs)[source]#
- Args:
- dim_shape (Tuple[ShapeType, units.LengthUnit]):
tuple of a shape type and its length unit. ShapeType can be any transformable, e.g. a layout.Group or shapes.Line, …
mill (Mill): mill object **kwargs: additional args
- property raster_style: RasterStyle#
Raster style of the pattern.
- Access:
get
- Returns:
RasterStyle
- property bounding_box: DimBoundingBox#
BoundingBox
: bounding box of transformable- Access:
get
- clone() T #
Create a deepcopy of the object.
- Returns:
Describable
- 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 theTransformable.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 theTransformable.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