pub struct SceneGraph { /* private fields */ }Expand description
A flat scene graph with parent-child node relationships.
Implementations§
Source§impl SceneGraph
impl SceneGraph
pub fn new() -> Self
Sourcepub fn create_root(&mut self, position: Vec3) -> NodeId
pub fn create_root(&mut self, position: Vec3) -> NodeId
Allocate a new root node.
Sourcepub fn create_child(&mut self, parent: NodeId, position: Vec3) -> Option<NodeId>
pub fn create_child(&mut self, parent: NodeId, position: Vec3) -> Option<NodeId>
Allocate a new node with a parent.
Sourcepub fn remove_subtree(&mut self, id: NodeId) -> usize
pub fn remove_subtree(&mut self, id: NodeId) -> usize
Remove a node and all its descendants. Returns the count of removed nodes.
Sourcepub fn flush_transforms(&mut self)
pub fn flush_transforms(&mut self)
Update world transforms for all dirty nodes (depth-first from roots).
Sourcepub fn find_by_tag(&self, tag: &str) -> Vec<NodeId>
pub fn find_by_tag(&self, tag: &str) -> Vec<NodeId>
Find all nodes with a specific tag.
Sourcepub fn visible_sorted(&self) -> Vec<NodeId>
pub fn visible_sorted(&self) -> Vec<NodeId>
Find all visible nodes sorted by sort_key.
pub fn is_empty(&self) -> bool
Trait Implementations§
Auto Trait Implementations§
impl Freeze for SceneGraph
impl RefUnwindSafe for SceneGraph
impl Send for SceneGraph
impl Sync for SceneGraph
impl Unpin for SceneGraph
impl UnsafeUnpin for SceneGraph
impl UnwindSafe for SceneGraph
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
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.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
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.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
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.