pub fn round_vertex(
model: &mut Model,
solid: &Shape,
vertex: &Shape,
radius: f64,
tol: Tolerances,
) -> OgeomResult<Built>Expand description
Round a solid’s vertex with a ball of radius.
The construction is the corner family’s centre of gravity, promoted from
the B2 proof: the corner block spanned by the edges less the ball seated
a radius in from every host plane is exactly the spike a rounded corner
sheds, and the general boolean does the shedding. The block’s faces
through the ball’s centre are square to the edges, so each edge’s flush
band ends on the ball’s rim: three sequential fillets at a box corner
followed by this call round the vertex the setback way, and the
b2_three_fillets_and_the_corner_tool_round_the_vertex pin measures
the result against a closed form. At a vertex of more edges the corner
goes first and the fillets follow (four bands built before the corner
crash into each other at a pyramid’s apex) and the block is the
polyhedron of the N host planes and the N planes square to the edges.
A vertex whose planes share no tangent ball (a rectangular pyramid’s apex, any general N-edged vertex) is rounded by the envelope of every ball a radius in from all of them: a sphere at each vertex of the region the ball’s centre may occupy and a cylinder along each ridge between two of them, each cut with its own compartment, the spheres by the one-ball tool on their three planes and the ridges by the flush fillet of a virtual crease. The compartments meet on the planes square to the ridges, cap to cap.
A vertex where a curved face meets (fewer than three planes pass through it) is rounded by the one ball touching the three surfaces that do, wherever they curve: its centre walked to a radius in from each, the compartment bounded by the three planes through the centre and two touch points, clipped to the solid, less the ball.
§Errors
OgeomError::Construction if the
vertex is not a vertex of the solid; if fewer than three planes pass
through it and other than three surfaces do, or the ball does not seat
inside every face; if the region the ball’s centre may occupy has a tip vertex touching more than three planes
without one ball touching all of the corner’s, or with other than three
edges leaving it; or if the corner turns out concave, where a ball adds
material instead of shedding it and a tool built from a cut cannot say
so. The corner may be oblique: the block is then the hexahedron bounded
by the host planes and the three planes through the ball’s centre
square to the edges.