Unify some code
This commit is contained in:
parent
932029b064
commit
d5c2e34157
|
|
@ -212,26 +212,17 @@ impl Space {
|
||||||
let cell = basic_shapes::Rect { size: vec2(self.rect.outer_radius, self.rect.external_halflength) };
|
let cell = basic_shapes::Rect { size: vec2(self.rect.outer_radius, self.rect.external_halflength) };
|
||||||
let objs = self.list_objects_outer();
|
let objs = self.list_objects_outer();
|
||||||
let hits = Self::trace_to_objects(objs.as_slice(), ray);
|
let hits = Self::trace_to_objects(objs.as_slice(), ray);
|
||||||
if let Some(dist) = cell.trace_into(ray) {
|
let lim = cell.trace_into(ray);
|
||||||
FlatTraceResult {
|
let dist = lim.unwrap_or(f32::INFINITY);
|
||||||
end: Some(ray.forward(dist)),
|
FlatTraceResult {
|
||||||
objects: hits.into_iter().filter_map(|HitInternal { object, distance }|
|
end: lim.map(|dist| ray.forward(dist)),
|
||||||
if distance < dist {
|
objects: hits.into_iter().filter_map(|HitInternal { object, distance }|
|
||||||
let pos = ray.forward(distance).pos;
|
if distance < dist {
|
||||||
let rel = object.loc.rot.inverse() * (pos - object.loc.pos);
|
|
||||||
Some(Hit { id: object.id, distance, pos, rel })
|
|
||||||
} else { None }
|
|
||||||
).collect(),
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
FlatTraceResult {
|
|
||||||
end: None,
|
|
||||||
objects: hits.into_iter().map(|HitInternal { object, distance }| {
|
|
||||||
let pos = ray.forward(distance).pos;
|
let pos = ray.forward(distance).pos;
|
||||||
let rel = object.loc.rot.inverse() * (pos - object.loc.pos);
|
let rel = object.loc.rot.inverse() * (pos - object.loc.pos);
|
||||||
Hit { id: object.id, distance, pos, rel }
|
Some(Hit { id: object.id, distance, pos, rel })
|
||||||
}).collect(),
|
} else { None }
|
||||||
}
|
).collect(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user