Lines Registry

class LineSymbol(**data)

Bases: BaseModel

The LineSymbol class represents a line identified by a coll predicate in the symbolic registry. Its attributes are: - points: the set of Point objects known to belong to the line - num: the LineNum object that contains the numerical parameters of the line - justification: a Coll predicate that justifies the existence of this line in the symbols registry - symbol_type: a constant indicating that this is a line symbol (SymbolType.LINE).

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

points: set[Point]
num: LineNum
justification: Coll | None
symbol_type: Literal[SymbolType.LINE]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class LinesRegistry

Bases: object

create_line_thru_points(points, because=None)
Return type:

LineSymbol

line_thru_pair(p1, p2)
Return type:

LineSymbol

representent(line)
Return type:

LineSymbol

line_containing(pnames)
Return type:

LineSymbol | None

check_collinear(points)
Return type:

bool

make_collinear(points, justification)
Return type:

tuple[LineSymbol, list[LineSymbol]]

why_colllinear(coll)
Return type:

LineMerge

get_all_points_on_line_and_equivalent_lines(line)
Return type:

set[Point]

class LineMerge(**data)

Bases: BaseModel

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

predicate: Coll

The predicate that is justified by the symbols graph merge.

line: LineSymbol

The line symbol that was merged.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

direct_justification: Coll

The previous predicate that directly justifies the merge that has the predicate as a consequence.

dependency_type: Literal[JustificationType.LINE_MERGE]