Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
bevyengine
GitHub Repository: bevyengine/bevy
Path: blob/main/crates/bevy_pbr/src/components.rs
6601 views
1
use bevy_derive::{Deref, DerefMut};
2
use bevy_ecs::component::Component;
3
use bevy_ecs::entity::{Entity, EntityHashMap};
4
use bevy_ecs::reflect::ReflectComponent;
5
use bevy_reflect::{std_traits::ReflectDefault, Reflect};
6
use bevy_render::sync_world::MainEntity;
7
8
#[derive(Component, Clone, Debug, Default, Reflect, Deref, DerefMut)]
9
#[reflect(Component, Debug, Default, Clone)]
10
pub struct RenderVisibleMeshEntities {
11
#[reflect(ignore, clone)]
12
pub entities: Vec<(Entity, MainEntity)>,
13
}
14
15
#[derive(Component, Clone, Debug, Default, Reflect)]
16
#[reflect(Component, Debug, Default, Clone)]
17
pub struct RenderCubemapVisibleEntities {
18
#[reflect(ignore, clone)]
19
pub(crate) data: [RenderVisibleMeshEntities; 6],
20
}
21
22
impl RenderCubemapVisibleEntities {
23
pub fn get(&self, i: usize) -> &RenderVisibleMeshEntities {
24
&self.data[i]
25
}
26
27
pub fn get_mut(&mut self, i: usize) -> &mut RenderVisibleMeshEntities {
28
&mut self.data[i]
29
}
30
31
pub fn iter(&self) -> impl DoubleEndedIterator<Item = &RenderVisibleMeshEntities> {
32
self.data.iter()
33
}
34
35
pub fn iter_mut(&mut self) -> impl DoubleEndedIterator<Item = &mut RenderVisibleMeshEntities> {
36
self.data.iter_mut()
37
}
38
}
39
40
#[derive(Component, Clone, Debug, Default, Reflect)]
41
#[reflect(Component, Default, Clone)]
42
pub struct RenderCascadesVisibleEntities {
43
/// Map of view entity to the visible entities for each cascade frustum.
44
#[reflect(ignore, clone)]
45
pub entities: EntityHashMap<Vec<RenderVisibleMeshEntities>>,
46
}
47
48