Misc notes
This commit is contained in:
parent
5d17eaea8c
commit
8c35819247
18
src/main.rs
18
src/main.rs
@ -36,7 +36,7 @@ fn test_rule(_v: Vec<Mesh>) -> Vec<RuleStep> {
|
|||||||
|
|
||||||
let gen_rulestep = |rot: &Mat4| -> RuleStep {
|
let gen_rulestep = |rot: &Mat4| -> RuleStep {
|
||||||
let m: Mat4 = rot *
|
let m: Mat4 = rot *
|
||||||
Matrix4::from_translation(vec3(1.5, 0.0, 0.0)) *
|
Matrix4::from_translation(vec3(2.0, 0.0, 0.0)) *
|
||||||
Matrix4::from_scale(0.6);
|
Matrix4::from_scale(0.6);
|
||||||
let r = Rule::Recurse(test_rule);
|
let r = Rule::Recurse(test_rule);
|
||||||
let mut m2 = mesh.clone();
|
let mut m2 = mesh.clone();
|
||||||
@ -58,7 +58,7 @@ fn test_rule(_v: Vec<Mesh>) -> Vec<RuleStep> {
|
|||||||
// Bigger TODO: my vague semantics are producing duplicated geometry
|
// Bigger TODO: my vague semantics are producing duplicated geometry
|
||||||
|
|
||||||
use std::convert::TryInto; // DEBUG
|
use std::convert::TryInto; // DEBUG
|
||||||
fn rule_to_mesh(rule: &Rule, xform: Mat4, iter_num: u32) -> Mesh {
|
fn rule_to_mesh_rec(rule: &Rule, xform: Mat4, iter_num: u32) -> Mesh {
|
||||||
|
|
||||||
let max_iters: u32 = 4;
|
let max_iters: u32 = 4;
|
||||||
let mut mesh = MeshBuilder::new().with_indices(vec![]).with_positions(vec![]).build().unwrap();
|
let mut mesh = MeshBuilder::new().with_indices(vec![]).with_positions(vec![]).build().unwrap();
|
||||||
@ -90,7 +90,7 @@ fn rule_to_mesh(rule: &Rule, xform: Mat4, iter_num: u32) -> Mesh {
|
|||||||
println!("{}recursing, subxform: ", s);
|
println!("{}recursing, subxform: ", s);
|
||||||
print_matrix(&subxform);
|
print_matrix(&subxform);
|
||||||
|
|
||||||
let mut submesh: Mesh = rule_to_mesh(&subrule, subxform, iter_num + 1);
|
let mut submesh: Mesh = rule_to_mesh_rec(&subrule, subxform, iter_num + 1);
|
||||||
submesh.apply_transformation(xform);
|
submesh.apply_transformation(xform);
|
||||||
|
|
||||||
println!("{}returning, applying xform: ", s);
|
println!("{}returning, applying xform: ", s);
|
||||||
@ -111,6 +111,13 @@ fn rule_to_mesh(rule: &Rule, xform: Mat4, iter_num: u32) -> Mesh {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn rule_to_mesh(rule: &Rule) -> Mesh {
|
||||||
|
// TODO: The 'identity()' here is causing the duplicated geometry
|
||||||
|
// - but I should not have to copy the transform from the rule
|
||||||
|
// here. Clean this up.
|
||||||
|
rule_to_mesh_rec(rule, Matrix4::identity(), 0)
|
||||||
|
}
|
||||||
|
|
||||||
// This isn't kosher:
|
// This isn't kosher:
|
||||||
//type Rule = fn (Vec<Mesh>) -> (Mesh, Vec<(Mesh, Box<Rule>)>);
|
//type Rule = fn (Vec<Mesh>) -> (Mesh, Vec<(Mesh, Box<Rule>)>);
|
||||||
|
|
||||||
@ -191,9 +198,6 @@ fn main() {
|
|||||||
|
|
||||||
let r = Rule::Recurse(test_rule);
|
let r = Rule::Recurse(test_rule);
|
||||||
|
|
||||||
// TODO: The 'identity()' here is causing the duplicated geometry
|
let cubemesh: Mesh = rule_to_mesh(&r);
|
||||||
// - but I should not have to copy the transform from the rule
|
|
||||||
// here. Clean this up.
|
|
||||||
let cubemesh: Mesh = rule_to_mesh(&r, Matrix4::identity(), 0);
|
|
||||||
std::fs::write("cubemesh.obj", cubemesh.parse_as_obj()).unwrap();
|
std::fs::write("cubemesh.obj", cubemesh.parse_as_obj()).unwrap();
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user