Line

class Line(start: ndarray[3], end: ndarray[3], attributes: ElementAttributes, rectify_endpoints: bool = True)

A Line represents a line segment in space.

Attributes

start

The start of the line.

end

The end of the line.

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.

from_carrier_and_range

Returns the Line specified by the given LineCarrier and the given range.

is_embedded_in

Returns True if this element is embedded in another.

transform

Transform this Line 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().

boolean_subtract(other: Line) List[Line]

Returns the boolean difference between this element and another.

classmethod bulk_subtract(lhs: Sequence[E_co], rhs: Sequence[E_co]) List[E_co]
coincident_with(other: Line) 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.

contains_point(point: ArrayLike) bool

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

equivalent_to(other: Line) bool

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

classmethod from_carrier_and_range(carrier: LineCarrier, projected_range: Tuple[float, float], attributes: ElementAttributes) Line

Returns the Line specified by the given LineCarrier and the given range. This range is equivalent to (carrier.project(start), carrier.project(end)).

is_embedded_in(other: Line) 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.

transform(transformation: Transformation) Line

Transform this Line 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.

end

The end of the line.

start

The start of the line.