Class-A surfacing 3/3: blend curves, curved-edge fillets, the G2 corner and continuity analysis (#1642)
Thanks @midasdf.
This commit is contained in:
1 parent
3126962cd4
commit
bbd4f29ebb
43 files changed
+4753
-132
No files matched your search
@@ -239,6 +239,9 @@ pub struct Session {
|
||||
pub section: Option<(Vec3, Vec3)>,
|
||||
/// Surface analysis shading the model (zebra, draft, curvature map).
|
||||
pub analysis: Option<SurfaceAnalysis>,
|
||||
/// The seams `inspect.continuity` last measured, for the viewport to shade. View state: not
|
||||
/// part of the design and not an undo step.
|
||||
pub continuity: Vec<ContinuitySeam>,
|
||||
/// What is hidden or shown in the view (`browser.visibility`): saved with the design, not an
|
||||
/// undo step. A design brings its saved visibility when it opens (`Session::new`).
|
||||
pub visibility: Visibility,
|
||||
@@ -301,6 +304,16 @@ pub enum SurfaceAnalysis {
|
||||
Access { dir: Vec3 },
|
||||
}
|
||||
|
||||
/// One seam measured by `inspect.continuity`, where the viewport shades it: the stations it was
|
||||
/// sampled at, in world coordinates, and how it reads. View state only: the design is untouched.
|
||||
#[derive(Clone, Debug, PartialEq, serde::Serialize)]
|
||||
pub struct ContinuitySeam {
|
||||
/// Sample points along the seam, in world coordinates.
|
||||
pub points: Vec<Vec3>,
|
||||
/// The seam's worst verdict along its length.
|
||||
pub verdict: kernel::SeamVerdict,
|
||||
}
|
||||
|
||||
impl SurfaceAnalysis {
|
||||
/// How a picture shades the faces for this analysis.
|
||||
pub fn mode(self) -> render::AnalysisMode {
|
||||
@@ -356,6 +369,7 @@ impl Session {
|
||||
sketch_clipboard: None,
|
||||
section: None,
|
||||
analysis: None,
|
||||
continuity: Vec::new(),
|
||||
checkpoints: Vec::new(),
|
||||
next_checkpoint: 1,
|
||||
saved_visibility: visibility.clone(),
|
||||
@@ -823,6 +837,7 @@ impl Session {
|
||||
sketch_clipboard: self.sketch_clipboard.clone(),
|
||||
section: None,
|
||||
analysis: None,
|
||||
continuity: Vec::new(),
|
||||
checkpoints: Vec::new(),
|
||||
next_checkpoint: 1,
|
||||
visibility: self.visibility.clone(),
|
||||
|
||||
Reference in new issue
Block a user