Return bare Solid from split model

This commit is contained in:
Hanno Braun 2024-01-30 10:54:49 +01:00
parent 5ba2eb09be
commit 7234a05d41
2 changed files with 14 additions and 23 deletions

View File

@ -5,31 +5,24 @@ use fj::core::{
update::UpdateSolid,
},
services::Services,
storage::Handle,
};
pub fn model(
size: f64,
split_pos: f64,
services: &mut Services,
) -> Handle<Solid> {
pub fn model(size: f64, split_pos: f64, services: &mut Services) -> Solid {
let cuboid = cuboid::model([size, size, size], services);
cuboid
.update_shell(cuboid.shells().only(), |shell| {
let face = shell.faces().first();
let cycle = face.region().exterior();
cuboid.update_shell(cuboid.shells().only(), |shell| {
let face = shell.faces().first();
let cycle = face.region().exterior();
let line = [
(cycle.half_edges().nth(0).unwrap(), [split_pos]),
(cycle.half_edges().nth(2).unwrap(), [split_pos]),
];
let line = [
(cycle.half_edges().nth(0).unwrap(), [split_pos]),
(cycle.half_edges().nth(2).unwrap(), [split_pos]),
];
let (shell, [face, _]) = shell.split_face(face, line, services);
let (shell, [face, _]) = shell.split_face(face, line, services);
shell
.sweep_face_of_shell(face, [0., 0., -size / 2.], services)
.insert(services)
})
.insert(services)
shell
.sweep_face_of_shell(face, [0., 0., -size / 2.], services)
.insert(services)
})
}

View File

@ -1,10 +1,8 @@
use std::ops::Deref;
use fj::{core::services::Services, handle_model};
fn main() -> fj::Result {
let mut services = Services::new();
let model = split::model(1.0, 0.2, &mut services);
handle_model(model.deref(), services)?;
handle_model(&model, services)?;
Ok(())
}