Equal Angles

class EqAngle(**data)

Bases: PredicateInterface

eqangle AB CD EF GH - Represent that one can rigidly move the crossing of lines AB and CD to get on top of the crossing of EF and GH, respectively (no reflections allowed).

In particular, eqangle AB CD CD AB is only true if AB is perpendicular or parallel to CD.

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_type: Literal[PredicateType.EQUAL_ANGLES]
angle1: tuple[Segment, Segment]
angle2: tuple[Segment, Segment]
static preparse(args)

Preparse the predicate arguments.

Return type:

tuple[NewType(PredicateArgument, str), ...] | None

check_numerical()

Check numerically the predicate.

Return type:

bool

symbols(symbols)

Make symbols for the predicate in the symbols graph.

Return type:

tuple[LineSymbol | CircleSymbol, ...]

static to_constructive(point, args)
Return type:

str

to_tokens()

Convert the predicate to a tuple of strings.

Return type:

tuple[NewType(PredicateArgument, str), ...]

model_config: ClassVar[ConfigDict] = {}

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