Trait fj_kernel::builder::HalfEdgeBuilder
source · 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§
sourcefn update_as_u_axis(&mut self) -> Curve
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.
sourcefn update_as_v_axis(&mut self) -> Curve
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.
sourcefn update_as_circle_from_radius(&mut self, radius: impl Into<Scalar>) -> Curve
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
sourcefn update_as_arc(&mut self, angle_rad: impl Into<Scalar>)
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.
sourcefn update_as_line_segment_from_points(
&mut self,
points: [impl Into<Point<2>>; 2]
) -> Curve
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
sourcefn update_as_line_segment(&mut self) -> Curve
fn update_as_line_segment(&mut self) -> Curve
Update partial half-edge to be a line segment
sourcefn infer_global_form(&mut self) -> Partial<GlobalEdge>
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.
sourcefn infer_vertex_positions_if_necessary(&mut self, surface: &SurfaceGeometry)
fn infer_vertex_positions_if_necessary(&mut self, surface: &SurfaceGeometry)
Infer the vertex positions (surface and global), if not already set
sourcefn update_from_other_edge(
&mut self,
other: &Partial<HalfEdge>,
surface: &SurfaceGeometry
)
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.