pub struct DynamicSceneBuilder<'w> { /* private fields */ }
Expand description

A DynamicScene builder, used to build a scene from a World by extracting some entities.

Entity Order

Extracted entities will always be stored in ascending order based on their id. This means that inserting Entity(1v0) then Entity(0v0) will always result in the entities being ordered as [Entity(0v0), Entity(1v0)].

Example

let mut builder = DynamicSceneBuilder::from_world(&world);
builder.extract_entity(entity);
let dynamic_scene = builder.build();

Implementations§

§

impl<'w> DynamicSceneBuilder<'w>

pub fn from_world(world: &'w World) -> DynamicSceneBuilder<'w>

Prepare a builder that will extract entities and their component from the given World. All components registered in that world’s AppTypeRegistry resource will be extracted.

pub fn from_world_with_type_registry( world: &'w World, type_registry: AppTypeRegistry ) -> DynamicSceneBuilder<'w>

Prepare a builder that will extract entities and their component from the given World. Only components registered in the given AppTypeRegistry will be extracted.

pub fn build(self) -> DynamicScene

Consume the builder, producing a DynamicScene.

To make sure the dynamic scene doesn’t contain entities without any components, call Self::remove_empty_entities before building the scene.

pub fn extract_entity(&mut self, entity: Entity) -> &mut DynamicSceneBuilder<'w>

Extract one entity from the builder’s World.

Re-extracting an entity that was already extracted will have no effect.

pub fn remove_empty_entities(&mut self) -> &mut DynamicSceneBuilder<'w>

Despawns all entities with no components.

These were likely created because none of their components were present in the provided type registry upon extraction.

pub fn extract_entities( &mut self, entities: impl Iterator<Item = Entity> ) -> &mut DynamicSceneBuilder<'w>

Extract entities from the builder’s World.

Re-extracting an entity that was already extracted will have no effect.

Extracting entities can be used to extract entities from a query:

#[derive(Component, Default, Reflect)]
#[reflect(Component)]
struct MyComponent;

let mut query = world.query_filtered::<Entity, With<MyComponent>>();

let mut builder = DynamicSceneBuilder::from_world(&world);
builder.extract_entities(query.iter(&world));
let scene = builder.build();

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T, U> AsBindGroupShaderType<U> for Twhere U: ShaderType, &'a T: for<'a> Into<U>,

§

fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U

Return the T ShaderType for self. When used in AsBindGroup derives, it is safe to assume that all images in self exist.
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast<T> for T

§

fn downcast(&self) -> &T

§

impl<T> Downcast for Twhere T: Any,

§

fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for Twhere T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send + 'static>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<S> FromSample<S> for S

§

fn from_sample_(s: S) -> S

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T, U> ToSample<U> for Twhere U: FromSample<T>,

§

fn to_sample_(self) -> U

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> Upcast<T> for T

§

fn upcast(&self) -> Option<&T>

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
§

impl<S, T> Duplex<S> for Twhere T: FromSample<S> + ToSample<S>,

§

impl<T> Event for Twhere T: Send + Sync + 'static,