Skip to main content

solve

Function solve 

Source
pub fn solve(
    rerun: &mut Rerun<'_>,
    state: &StateValues,
    pulls: &[Pull],
    only: Option<&str>,
    prove: bool,
    known: Option<&Structure>,
) -> GeopResult<(StateValues, Report)>
Expand description

Where the state has to be for every constraint of the program rerun runs to hold, as little away from where state has it as the constraints allow, after pulls pulled it — of the placed parts, only the one the step only placed moving, if given — every value within its limits and those pulls set held there: the values of the state that changed — the poses of the parts it moved, each relative to the part it is placed in, and the unknowns the steps declared — and how the solve went.

The program was last run with state; it is left so, for the caller to run at the state found. A part no solve may move — fixed, or not only — goes where its pulls take it, alone: to a pose pulled to, or moved as far as a point pulled goes.

A true solution near there is enclosed only where prove asks: an event of a drag is solved again at the next, and only the state it is let go at is kept (see solve::solve). It is solved in the groups known — those a solve of the same program found a hair away, the last event’s of a drag (Report::structure) — where given, rather than finding them again.