1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
use crate::geometry::{BoundingSphere, Transform};
use crate::{ModelHandle, VisibilityObjectHandle, ZoneHandle};
#[derive(Default, Clone)]
pub struct VisibilityObject {
pub handle: VisibilityObjectHandle,
pub id: u64,
pub zone: Option<ZoneHandle>,
pub cull_model: Option<ModelHandle>,
pub transform: Option<Transform>,
pub previous_frame_transform: Option<Transform>,
}
impl VisibilityObject {
pub fn new(
id: u64,
handle: VisibilityObjectHandle,
) -> Self {
VisibilityObject {
id,
handle,
..Default::default()
}
}
pub fn default_bounding_sphere(transform: Transform) -> BoundingSphere {
BoundingSphere::new(transform.translation, 1.42 * transform.scale.max_element())
}
}