Struct specs_hierarchy::Hierarchy
[−]
[src]
pub struct Hierarchy<P> { /* fields omitted */ }
Scene graph type hierarchy.
Will use the given generic type P
as the component type that provides parenting links. The
internal structure is kept in sync with the Tracked
events for that component type.
Will send modification events on the internal EventChannel
. Note that Removed
events
does not mean the Parent
component was removed from the component storage, just that the
Entity
will no longer be considered to be a part of the Hierarchy
. This is because the user
may wish to either remove only the component, or the complete Entity, or something completely
different. When an Entity
that is a parent gets removed from the hierarchy, the full tree of
children below it will also be removed from the hierarchy.
Methods
impl<P> Hierarchy<P>
[src]
pub fn new(
modified_id: ReaderId<ModifiedFlag>,
inserted_id: ReaderId<InsertedFlag>,
removed_id: ReaderId<RemovedFlag>
) -> Self where
P: Component,
P::Storage: Tracked,
[src]
modified_id: ReaderId<ModifiedFlag>,
inserted_id: ReaderId<InsertedFlag>,
removed_id: ReaderId<RemovedFlag>
) -> Self where
P: Component,
P::Storage: Tracked,
Create a new hierarchy object.
pub fn all(&self) -> &[Entity]
[src]
Get all entities that contain parents, in sorted order, where parents are guaranteed to be before their children.
Note: This does not include entities that are parents.
pub fn children(&self, entity: Entity) -> Option<&[Entity]>
[src]
Get the children of a specific entity.
pub fn parent(&self, entity: Entity) -> Option<Entity>
[src]
Get the parent of a specific entity
pub fn track(&mut self) -> ReaderId<HierarchyEvent>
[src]
Get a token for tracking the modification events from the hierarchy
pub fn changed(&self) -> &EventChannel<HierarchyEvent>
[src]
Get the EventChannel
for the modification events for reading
pub fn maintain(&mut self, data: ParentData<P>) where
P: Component + Parent,
P::Storage: Tracked,
[src]
P: Component + Parent,
P::Storage: Tracked,
Maintain the hierarchy, usually only called by HierarchySystem
.
Trait Implementations
impl<P> SetupHandler<Hierarchy<P>> for HierarchySetupHandler<P> where
P: Component + Send + Sync + 'static,
P::Storage: Tracked,
[src]
P: Component + Send + Sync + 'static,
P::Storage: Tracked,