Skip to main content

extend_face

Function extend_face 

Source
pub fn extend_face(
    model: &mut Model,
    shape: &Shape,
    edge: &Shape,
    length: f64,
    mode: Extension,
    tol: Tolerances,
) -> OgeomResult<Built>
Expand description

Grow the face shape past its boundary edge edge by length.

The length is measured along the surface, square to the edge: on a plane every point of the edge moves that far, square to it; elsewhere it is the arc length of the crossing parameter line through the edge’s middle, which is square to the edge on every analytic surface. The result is a new face on the same surface (an analytic one with its domain widened where the extension needs it) or on the patch continued as mode says. The edges the face kept are the same nodes, carrying a trim on the new surface where it is a new one.

A placed face, or a face with placed edges (a prism’s far end edges are its profile’s edges under the prism’s translation), is first rebuilt with its placements baked in, and that rebuilt face is extended: its edges are new nodes on the same geometry, which sew to the old ones.

History: the face is modified into the new face; edge is modified into the far edge and generates the two sides; where the face was baked first, every other edge is modified into its baked twin.

§Errors

OgeomError::Construction, by name, where:

  • length is not positive and finite;
  • shape is not a face, or edge is not an edge of its outer boundary (an edge on no boundary of it, an edge bounding a hole, a seam the boundary runs along twice, a degenerate edge);
  • the surface is neither a plane, a cylinder, a cone, a sphere, a torus nor a B-spline patch;
  • on a plane, the edge is not straight;
  • elsewhere, the edge does not run along a parameter line, has no trim on the surface, or the face’s boundary cannot be walked in its chart;
  • the extension would wrap the face round a periodic direction onto itself, or reach a cone’s apex or a sphere’s pole;
  • a B-spline edge is not on a side of the patch’s domain, or the patch closes on itself across it;
  • a linear extension asks Continuity::CInfinity, or crosses a curved parameter line of an analytic surface.