Fix extrusion surface properties and snapping

This commit is contained in:
ramox81 committed 2026-09-10 16:07:05 +03:00
1 parent a24d1e6108
commit 11057cc5e9
15 files changed
+383 -55

No files matched your search

+8 -7
View File
@@ -22,7 +22,7 @@ fn display_tessellation(
body: &Body,
facet_resolution: f64,
chordal_deflection: Option<f64>,
isolines: usize,
isolines: [usize; 2],
planar_isolines: bool,
) -> brep::mesh::BodyMesh {
let resolution = if facet_resolution.is_finite() && facet_resolution > 0.0 {
@@ -35,7 +35,7 @@ fn display_tessellation(
|_| cadkernel::tessellation::display_angle_for_resolution(resolution),
);
let mut tolerance = brep::mesh::TessellationTolerance::new(max_angle, TOL)
.with_isolines(isolines)
.with_uv_isolines(isolines[0], isolines[1])
.with_planar_isolines(planar_isolines);
if let Some(deflection) = chordal_deflection {
tolerance = tolerance.with_chordal_deflection(deflection);
@@ -278,7 +278,8 @@ pub fn edge_wires(body: &Body) -> Vec<acadrust::entities::Wire> {
pub fn grip_preview_wires(
body: &Body,
handle: acadrust::Handle,
isolines: usize,
isolines: [usize; 2],
planar_isolines: bool,
) -> Vec<WireModel> {
let tessellation = brep::mesh::tessellate(
body,
@@ -286,8 +287,8 @@ pub fn grip_preview_wires(
cadkernel::tessellation::DEFAULT_ANGLE,
TOL,
)
.with_isolines(isolines)
.with_planar_isolines(isolines > 0),
.with_uv_isolines(isolines[0], isolines[1])
.with_planar_isolines(planar_isolines),
);
tessellation
.edges
@@ -476,7 +477,7 @@ pub fn display_from_solid(
color: [f32; 4],
facet_resolution: f64,
chordal_deflection: Option<f64>,
isolines: usize,
isolines: [usize; 2],
planar_isolines: bool,
) -> Option<(MeshLodSet, Vec<acadrust::entities::Wire>, [f64; 3])> {
use acadrust::types::Vector3;
@@ -566,7 +567,7 @@ mod tests {
use super::*;
fn tri_count(body: &Body) -> usize {
display_from_solid(body, [0.7, 0.7, 0.7, 1.0], 1.0, None, 0, false)
display_from_solid(body, [0.7, 0.7, 0.7, 1.0], 1.0, None, [0; 2], false)
.map(|(m, _, _)| m.lods[0].indices.len() / 3)
.unwrap_or(0)
}