ShapeElement

class ShapeElement(carrier: D_co, attributes: ElementAttributes)

A ShapeElement is a transformable (see TransformableMixin) geometric construct that composes a design (see Shape).

Parameters:

carrier – The Carrier underlying this element.

Attributes

carrier

The Carrier underlying this element.

attributes

The ElementAttributes of this element.

Methods

boolean_subtract

Returns the boolean difference between this element and another.

bulk_subtract

coincident_with

Returns True if this element is coincident with another.

contains_point

Returns True if point is coincident to this element.

equivalent_to

Returns True if this element is equivalent to another.

is_embedded_in

Returns True if this element is embedded in another.

transform

Transform this TransformableMixin by a given Transformation.

__le__(other)

Calls is_embedded_in().

__rmatmul__(transformation: Transformation) T_co

Computes transformable.transform(t) when performing t @ transformable for a Transformation t and TransformableMixin transformable.

__sub__(other)

Calls boolean_subtract().

abstract boolean_subtract(other: E_co) List[E_co]

Returns the boolean difference between this element and another.

classmethod bulk_subtract(lhs: Sequence[E_co], rhs: Sequence[E_co]) List[E_co]
abstract coincident_with(other: E_co) bool

Returns True if this element is coincident with another. This occurs when the result of maximizing the two elements returns an element that both are embedded in (see is_embedded_in()).

Specifically, the two elements must be coequal and at least one part of the boundary of one element must be contained within the boundary of the other.

Fuzzy with tolerance.

abstract contains_point(point: ArrayLike) bool

Returns True if point is coincident to this element. Fuzzy with tolerance.

abstract equivalent_to(other: E_co) bool

Returns True if this element is equivalent to another. They must be coequal and have equivalent boundaries. Fuzzy with tolerance.

abstract is_embedded_in(other: E_co) bool

Returns True if this element is embedded in another. This occurs when the result of maximizing the two elements returns an element equivalent to the other.

Specifically, the two elements must be coequal and the boundary of this element must be entirely contained within the boundary of the other.

Fuzzy with tolerance.

abstract transform(transformation: Transformation) T_co

Transform this TransformableMixin by a given Transformation.

attributes

The ElementAttributes of this element. These must be equatable and hashable and are made to be immutable upon carrier initialization.

carrier

The Carrier underlying this element.