pub trait HalfEdgeBuilder {
    // Required methods
    fn update_as_u_axis(&mut self) -> Curve;
    fn update_as_v_axis(&mut self) -> Curve;
    fn update_as_circle_from_radius(
        &mut self,
        radius: impl Into<Scalar>
    ) -> Curve;
    fn update_as_arc(&mut self, angle_rad: impl Into<Scalar>);
    fn update_as_line_segment_from_points(
        &mut self,
        points: [impl Into<Point<2>>; 2]
    ) -> Curve;
    fn update_as_line_segment(&mut self) -> Curve;
    fn infer_global_form(&mut self) -> Partial<GlobalEdge>;
    fn infer_vertex_positions_if_necessary(&mut self, surface: &SurfaceGeometry);
    fn update_from_other_edge(
        &mut self,
        other: &Partial<HalfEdge>,
        surface: &SurfaceGeometry
    );
}
Expand description

Builder API for PartialHalfEdge

Required Methods§

source

fn update_as_u_axis(&mut self) -> Curve

Update partial half-edge to represent the u-axis of the surface it is on

Returns the updated path.

source

fn update_as_v_axis(&mut self) -> Curve

Update partial curve to represent the v-axis of the surface it is on

Returns the updated path.

source

fn update_as_circle_from_radius(&mut self, radius: impl Into<Scalar>) -> Curve

Update partial half-edge to be a circle, from the given radius

source

fn update_as_arc(&mut self, angle_rad: impl Into<Scalar>)

Update partial half-edge to be an arc, spanning the given angle in radians

Panics

Panics if the given angle is not within the range (-2pi, 2pi) radians.

source

fn update_as_line_segment_from_points( &mut self, points: [impl Into<Point<2>>; 2] ) -> Curve

Update partial half-edge to be a line segment, from the given points

source

fn update_as_line_segment(&mut self) -> Curve

Update partial half-edge to be a line segment

source

fn infer_global_form(&mut self) -> Partial<GlobalEdge>

Infer the global form of the half-edge

Updates the global form referenced by this half-edge, and also returns it.

source

fn infer_vertex_positions_if_necessary(&mut self, surface: &SurfaceGeometry)

Infer the vertex positions (surface and global), if not already set

source

fn update_from_other_edge( &mut self, other: &Partial<HalfEdge>, surface: &SurfaceGeometry )

Update this edge from another

Infers as much information about this edge from the other, under the assumption that the other edge is on a different surface.

This method is quite fragile. It might panic, or even silently fail, under various circumstances. As long as you’re only dealing with lines and planes, you should be fine. Otherwise, please read the code of this method carefully, to make sure you don’t run into trouble.

Implementors§