More refactoring of twist()
This commit is contained in:
parent
f8f2d4ac31
commit
96f8004df2
@ -387,23 +387,30 @@ fn twist(f: f32, subdiv: usize) -> Rule {
|
|||||||
let qtr = std::f32::consts::FRAC_PI_2;
|
let qtr = std::f32::consts::FRAC_PI_2;
|
||||||
let y = Vector3::y_axis();
|
let y = Vector3::y_axis();
|
||||||
|
|
||||||
let recur = move |self_: Rc<Rule>| -> RuleEval {
|
|
||||||
let incr = geometry::Translation3::new(-dx0, 0.0, 0.0).to_homogeneous() *
|
let incr = geometry::Translation3::new(-dx0, 0.0, 0.0).to_homogeneous() *
|
||||||
geometry::Rotation3::from_axis_angle(&y, ang).to_homogeneous() *
|
geometry::Rotation3::from_axis_angle(&y, ang).to_homogeneous() *
|
||||||
geometry::Translation3::new(dx0, dy, 0.0).to_homogeneous();
|
geometry::Translation3::new(dx0, dy, 0.0).to_homogeneous();
|
||||||
|
|
||||||
let seed_orig = transform(&seed, &incr);
|
let seed_orig = transform(&seed, &incr);
|
||||||
let seed_sub = util::subdivide_cycle(&seed_orig, subdiv);
|
let seed_sub = util::subdivide_cycle(&seed_orig, subdiv);
|
||||||
let n = seed_sub.len();
|
|
||||||
|
|
||||||
let (vc, faces) = util::connect_convex(&seed_sub, true);
|
let geom = OpenMesh {
|
||||||
|
verts: seed_sub.clone(),
|
||||||
RuleEval {
|
|
||||||
geom: OpenMesh {
|
|
||||||
verts: seed_sub,
|
|
||||||
faces: util::parallel_zigzag_faces(n),
|
faces: util::parallel_zigzag_faces(n),
|
||||||
},
|
};
|
||||||
final_geom: OpenMesh { verts: vec![vc], faces },
|
let (vc, faces) = util::connect_convex(&seed_sub, true);
|
||||||
|
let final_geom = OpenMesh {
|
||||||
|
verts: vec![vc],
|
||||||
|
faces: faces.clone(),
|
||||||
|
};
|
||||||
|
|
||||||
|
let recur = move |self_: Rc<Rule>| -> RuleEval {
|
||||||
|
// TODO: Why clone geometry here if I just have to clone it
|
||||||
|
// later on? Seems like Rc may be much easier (if I can't
|
||||||
|
// borrow directly - which is probably the case).
|
||||||
|
RuleEval {
|
||||||
|
geom: geom.clone(),
|
||||||
|
final_geom: final_geom.clone(),
|
||||||
children: vec![
|
children: vec![
|
||||||
Child {
|
Child {
|
||||||
rule: self_.clone(),
|
rule: self_.clone(),
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user