pub struct SectionCut {
pub source: String,
pub from: String,
pub to: String,
pub label: String,
pub flip: bool,
}Expand description
The cutting plane of a section view, as it was PICKED: two anchors of an existing placement’s projection.
The line is stored as two ANCHOR REFERENCES rather than two paper points, for the reason every other sheet reference is: a paper point is not a property of the model, and a placement that moved or a scale that changed would leave the cut somewhere else. Two anchors follow their geometry through a camera, scale, placement or model change — and a section whose anchor is gone goes UNRESOLVED with the reason, exactly as a dimension does, rather than quietly cutting the wrong place.
It is also what makes the cut reachable without a pointer: an anchor has a
keyed hit rect (sheet/anchor:<reference>) and a bare paper point does
not, so a section picked from free points could not be driven by a script
or by anything but a mouse.
Fields§
§source: StringThe placement the line is drawn ON — the view the cut was picked in. Its camera’s viewing direction lies IN the cutting plane, which is what makes the section camera’s frame orthonormal by construction.
from: StringThe two anchors the cutting line runs through.
to: String§label: StringThe section’s letter — drawn at both arrows on the source view and in
this view’s own SECTION A-A caption.
flip: boolLook the other way along the plane’s normal. The unflipped direction is
the drawing convention read off the pick order: 90\u{00B0} clockwise from
from \u{2192} to on the source’s paper, which is the side a reader walking
from the first arrow to the second has on their right.
Implementations§
Trait Implementations§
Source§impl Clone for SectionCut
impl Clone for SectionCut
Source§impl Debug for SectionCut
impl Debug for SectionCut
Source§impl<'de> Deserialize<'de> for SectionCut
impl<'de> Deserialize<'de> for SectionCut
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for SectionCut
impl PartialEq for SectionCut
Source§impl Serialize for SectionCut
impl Serialize for SectionCut
impl StructuralPartialEq for SectionCut
Auto Trait Implementations§
impl Freeze for SectionCut
impl RefUnwindSafe for SectionCut
impl Send for SectionCut
impl Sync for SectionCut
impl Unpin for SectionCut
impl UnsafeUnpin for SectionCut
impl UnwindSafe for SectionCut
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more