Skip to main content

combine_tools

Function combine_tools 

Source
pub fn combine_tools(
    model: &mut NamedModel,
    namer: &Namer,
    step: &str,
    tools: &[Tool],
    how: &Combine,
) -> GeopResult<Reach<()>>
Expand description

Combines the tools built, one after the other, as how says, as the step step, whose names namer builds: the result is named namer’s root, and what the k-th tool’s combination creates is named after combine(E) — scoped by the tool’s own scope, if it has one. An empty result — an intersection with a solid the new one does not touch — leaves no solid, and no tool. A tool going up to the next face that nothing stops all round Reach::RunsOn, and leaves model part way through: a caller going another way tries on a copy.

A new body is the tools as built — a tool going up to the next face of whichever other solid it meets first (see piece_up_to_next), those solids left as they are — joined into one.

Combined with a target, each tool is recorded, as built, as the feature of the step (see geop_ops_model::Feature): what a pattern of the feature copies and combines the same way. A new body is no feature: it is a body, patterned as one.