Closer now on 'barbs' example
This commit is contained in:
parent
5641a9c96e
commit
586e5095bd
@ -59,14 +59,8 @@ pub fn barbs() -> Rule<()> {
|
|||||||
];
|
];
|
||||||
let n = base_verts.len();
|
let n = base_verts.len();
|
||||||
|
|
||||||
let incr: Transform = Transform::new().
|
let barb_incr: Transform = Transform::new().
|
||||||
translate(0.0, 0.0, 1.0).
|
translate(0.0, 0.0, 0.5).
|
||||||
rotate(&Vector3::z_axis(), 0.15).
|
|
||||||
rotate(&Vector3::x_axis(), 0.1).
|
|
||||||
scale(0.95);
|
|
||||||
|
|
||||||
let incr2: Transform = Transform::new().
|
|
||||||
translate(0.0, 0.0, 1.5).
|
|
||||||
rotate(&Vector3::y_axis(), -0.2).
|
rotate(&Vector3::y_axis(), -0.2).
|
||||||
scale(0.8);
|
scale(0.8);
|
||||||
|
|
||||||
@ -87,20 +81,28 @@ pub fn barbs() -> Rule<()> {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
RuleEval {
|
RuleEval {
|
||||||
geom: Rc::new(geom.transform(&incr)),
|
geom: Rc::new(geom.transform(&barb_incr)),
|
||||||
final_geom: Rc::new(prim::empty_meshfunc()), // TODO
|
final_geom: Rc::new(prim::empty_meshfunc()), // TODO
|
||||||
children: vec![
|
children: vec![
|
||||||
Child {
|
Child {
|
||||||
rule: self_.clone(),
|
rule: self_.clone(),
|
||||||
xf: incr2,
|
xf: barb_incr,
|
||||||
vmap: (0..n).collect(),
|
vmap: (0..n).collect(),
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
let barb_ = Rc::new(barb);
|
let barb_ = Rc::new(barb);
|
||||||
|
|
||||||
|
let main_barb_trans = Transform::new().
|
||||||
|
rotate(&Vector3::y_axis(), -std::f32::consts::FRAC_PI_2).
|
||||||
|
translate(0.5, 0.0, 0.5);
|
||||||
|
|
||||||
|
let main_incr: Transform = Transform::new().
|
||||||
|
translate(0.0, 0.0, 1.0).
|
||||||
|
rotate(&Vector3::z_axis(), 0.15).
|
||||||
|
rotate(&Vector3::x_axis(), 0.1).
|
||||||
|
scale(0.95);
|
||||||
let b = base_verts.clone();
|
let b = base_verts.clone();
|
||||||
let main = move |self_: Rc<Rule<()>>| -> RuleEval<()> {
|
let main = move |self_: Rc<Rule<()>>| -> RuleEval<()> {
|
||||||
let mut next_verts = b.clone();
|
let mut next_verts = b.clone();
|
||||||
@ -119,20 +121,17 @@ pub fn barbs() -> Rule<()> {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
RuleEval {
|
RuleEval {
|
||||||
geom: Rc::new(geom.transform(&incr)),
|
geom: Rc::new(geom.transform(&main_incr)),
|
||||||
final_geom: Rc::new(prim::empty_meshfunc()), // TODO
|
final_geom: Rc::new(prim::empty_meshfunc()), // TODO
|
||||||
children: vec![
|
children: vec![
|
||||||
Child {
|
Child {
|
||||||
rule: self_.clone(),
|
rule: self_.clone(),
|
||||||
xf: incr,
|
xf: main_incr,
|
||||||
vmap: (0..n).collect(),
|
vmap: (0..n).collect(),
|
||||||
},
|
},
|
||||||
Child {
|
Child {
|
||||||
rule: Rc::new(Rule { eval: barb_.clone(), ctxt: () }),
|
rule: Rc::new(Rule { eval: barb_.clone(), ctxt: () }),
|
||||||
xf: Transform::new().
|
xf: main_incr * main_barb_trans,
|
||||||
translate(0.0, 0.0, 1.4).
|
|
||||||
rotate(&Vector3::y_axis(), -std::f32::consts::FRAC_PI_2).
|
|
||||||
scale(0.9),
|
|
||||||
vmap: vec![b0, b0 + 1, a0 + 1, a0],
|
vmap: vec![b0, b0 + 1, a0 + 1, a0],
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|||||||
@ -74,7 +74,7 @@ mod tests {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn barbs() { run_test(examples::barbs(), 60, "barbs", false); }
|
fn barbs() { run_test(examples::barbs(), 50, "barbs", false); }
|
||||||
|
|
||||||
/*
|
/*
|
||||||
#[test]
|
#[test]
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user