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.
Any cycles in the hierarchy will cause Undefined Behavior.
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,