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