Reduce useless debug lines
This commit is contained in:
parent
d2d4dcdbca
commit
e58f3c5a17
|
|
@ -107,6 +107,18 @@ pub fn main() {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn rel_to_abs(space: &impl Metric, base: &Location, rel: Vec2, steps: usize) -> Vec2 {
|
||||||
|
let c = 1.0 / (steps as f32);
|
||||||
|
trace_iter(space, base.pos, base.rot * rel, c * rel.length()).nth(steps - 1).unwrap()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn draw_cross(gc: &mut Vec<Draw>, pos: Vec2, r: f32) {
|
||||||
|
gc.move_to(pos.x - r, pos.y - r);
|
||||||
|
gc.line_to(pos.x + r, pos.y + r);
|
||||||
|
gc.move_to(pos.x - r, pos.y + r);
|
||||||
|
gc.line_to(pos.x + r, pos.y - r);
|
||||||
|
}
|
||||||
|
|
||||||
fn draw_ray_2(gc: &mut Vec<Draw>, space: &Space, base: Vec2, dir: Vec2) {
|
fn draw_ray_2(gc: &mut Vec<Draw>, space: &Space, base: Vec2, dir: Vec2) {
|
||||||
fn trace_to_flat(gc: &mut Vec<Draw>, space: &Space, ray: Ray) -> (Ray, FlatTraceResult) {
|
fn trace_to_flat(gc: &mut Vec<Draw>, space: &Space, ray: Ray) -> (Ray, FlatTraceResult) {
|
||||||
for ray in space.trace_iter(ray).skip(1) {
|
for ray in space.trace_iter(ray).skip(1) {
|
||||||
|
|
@ -135,21 +147,15 @@ fn draw_ray_2(gc: &mut Vec<Draw>, space: &Space, base: Vec2, dir: Vec2) {
|
||||||
gc.move_to(ray.pos.x, ray.pos.y);
|
gc.move_to(ray.pos.x, ray.pos.y);
|
||||||
for hit in ret.objects {
|
for hit in ret.objects {
|
||||||
let obj = space.objs[hit.id as usize];
|
let obj = space.objs[hit.id as usize];
|
||||||
hits.move_to(obj.loc.pos.x, obj.loc.pos.y);
|
let apx_hit_pos = rel_to_abs(&space.tube, &obj.loc, hit.rel.pos, 128);
|
||||||
for pt in trace_iter(&space.tube, obj.loc.pos, obj.loc.rot * hit.rel.pos, hit.rel.pos.length() / 100.0).take(100) {
|
// assert_abs_diff_eq!(apx_hit_pos, hit.pos, epsilon=1.0);
|
||||||
hits.line_to(pt.x, pt.y);
|
|
||||||
}
|
|
||||||
hits.circle(hit.pos.x, hit.pos.y, 1.5);
|
|
||||||
let Ray { pos: rel, dir } = hit.rel;
|
let Ray { pos: rel, dir } = hit.rel;
|
||||||
let diff = rel.dot(dir).powi(2) - dir.length_squared() * (rel.length_squared() - obj.r.powi(2));
|
let diff = rel.dot(dir).powi(2) - dir.length_squared() * (rel.length_squared() - obj.r.powi(2));
|
||||||
assert!(diff >= 0.0);
|
assert!(diff >= 0.0);
|
||||||
let t = (-rel.dot(dir) + diff.sqrt()) / dir.length_squared();
|
let t = (-rel.dot(dir) + diff.sqrt()) / dir.length_squared();
|
||||||
let rel2 = hit.rel.forward(t).pos;
|
let rel2 = hit.rel.forward(t).pos;
|
||||||
let pos2 = trace_iter(&space.tube, obj.loc.pos, obj.loc.rot * rel2, rel2.length() / 100.0).nth(100).unwrap();
|
let pos2 = rel_to_abs(&space.tube, &obj.loc, rel2, 128);
|
||||||
hits.move_to(pos2.x - 1.0, pos2.y - 1.0);
|
draw_cross(&mut hits, pos2, 1.0);
|
||||||
hits.line_to(pos2.x + 1.0, pos2.y + 1.0);
|
|
||||||
hits.move_to(pos2.x - 1.0, pos2.y + 1.0);
|
|
||||||
hits.line_to(pos2.x + 1.0, pos2.y - 1.0);
|
|
||||||
}
|
}
|
||||||
let a = ray.pos;
|
let a = ray.pos;
|
||||||
if let Some(r) = ret.end {
|
if let Some(r) = ret.end {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user