pub enum JointContinuity {
G0,
G1,
G2,
}Expand description
How continuous a path is AT ONE JOINT — the classification every sweep refusal reads instead of re-deriving the same angle from the curves.
The three levels are the standard geometric ones, and each is decided by a
measurement PathJoint carries beside it:
G0— the position matches and nothing else: the tangent turns by more thanMAX_JOINT_TANGENT_BREAK. A corner.G1— the unit tangents agree; the curvature VECTORS do not. A line meeting a fillet arc, two arcs of different radius, an S-bend of two equal arcs curving opposite ways.G2— the unit tangents AND the curvature vectors agree. Two arcs of ONE circle (the shape a sketch publishes for a circle), two collinear lines.
G1 and G2 are not distinguished by any refusal today — the skinning builder needs G1 and is indifferent to the curvature jump, because it interpolates the stations rather than the segments. The distinction is recorded because it is the difference between a path whose swept surface is curvature-continuous and one whose is not, which is what a later curvature-driven station law (remaining work item 2) has to refine against.
Variants§
G0
Position only — a corner.
G1
Tangent continuous, curvature discontinuous.
G2
Tangent and curvature continuous.
Implementations§
Trait Implementations§
Source§impl Clone for JointContinuity
impl Clone for JointContinuity
impl Copy for JointContinuity
Source§impl Debug for JointContinuity
impl Debug for JointContinuity
impl Eq for JointContinuity
Source§impl PartialEq for JointContinuity
impl PartialEq for JointContinuity
impl StructuralPartialEq for JointContinuity
Auto Trait Implementations§
impl Forget for JointContinuity
impl Freeze for JointContinuity
impl Move for JointContinuity
impl RefUnwindSafe for JointContinuity
impl Send for JointContinuity
impl Sync for JointContinuity
impl Unpin for JointContinuity
impl UnsafeUnpin for JointContinuity
impl UnwindSafe for JointContinuity
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.