[][src]Struct kiss3d::scene::SceneNode

pub struct SceneNode { /* fields omitted */ }

A node of the scene graph.

This may represent a group of other nodes, and/or contain an object that can be rendered.

Methods

impl SceneNode[src]

pub fn new(
    local_scale: Vector3<f32>,
    local_transform: Isometry3<f32>,
    object: Option<Object>
) -> SceneNode
[src]

Creates a new scene node that is not rooted.

pub fn new_empty() -> SceneNode[src]

Creates a new empty, not rooted, node with identity transformations.

Removes this node from its parent.

pub fn data(&self) -> Ref<SceneNodeData>[src]

The data of this scene node.

pub fn data_mut(&mut self) -> RefMut<SceneNodeData>[src]

The data of this scene node.

pub fn add_group(&mut self) -> SceneNode[src]

Adds a node without object to this node children.

pub fn add_child(&mut self, node: SceneNode)[src]

Adds a node as a child of parent.

Failures:

Fails if node already has a parent.

pub fn add_object(
    &mut self,
    local_scale: Vector3<f32>,
    local_transform: Isometry3<f32>,
    object: Object
) -> SceneNode
[src]

Adds a node containing an object to this node children.

pub fn add_cube(&mut self, wx: f32, wy: f32, wz: f32) -> SceneNode[src]

Adds a cube as a children of this node. The cube is initially axis-aligned and centered at (0, 0, 0).

Arguments

  • wx - the cube extent along the x axis
  • wy - the cube extent along the y axis
  • wz - the cube extent along the z axis

pub fn add_sphere(&mut self, r: f32) -> SceneNode[src]

Adds a sphere as a children of this node. The sphere is initially centered at (0, 0, 0).

Arguments

  • r - the sphere radius

pub fn add_cone(&mut self, r: f32, h: f32) -> SceneNode[src]

Adds a cone to the scene. The cone is initially centered at (0, 0, 0) and points toward the positive y axis.

Arguments

  • h - the cone height
  • r - the cone base radius

pub fn add_cylinder(&mut self, r: f32, h: f32) -> SceneNode[src]

Adds a cylinder to this node children. The cylinder is initially centered at (0, 0, 0) and has its principal axis aligned with the y axis.

Arguments

  • h - the cylinder height
  • r - the cylinder base radius

pub fn add_capsule(&mut self, r: f32, h: f32) -> SceneNode[src]

Adds a capsule to this node children. The capsule is initially centered at (0, 0, 0) and has its principal axis aligned with the y axis.

Arguments

  • h - the capsule height
  • r - the capsule caps radius

pub fn add_quad(
    &mut self,
    w: f32,
    h: f32,
    usubdivs: usize,
    vsubdivs: usize
) -> SceneNode
[src]

Adds a double-sided quad to this node children. The quad is initially centered at (0, 0, 0). The quad itself is composed of a user-defined number of triangles regularly spaced on a grid. This is the main way to draw height maps.

Arguments

  • w - the quad width.
  • h - the quad height.
  • wsubdivs - number of horizontal subdivisions. This correspond to the number of squares which will be placed horizontally on each line. Must not be 0.
  • hsubdivs - number of vertical subdivisions. This correspond to the number of squares which will be placed vertically on each line. Must not be 0. update.

pub fn add_quad_with_vertices(
    &mut self,
    vertices: &[Point3<f32>],
    nhpoints: usize,
    nvpoints: usize
) -> SceneNode
[src]

Adds a double-sided quad with the specified vertices.

pub fn add_geom_with_name(
    &mut self,
    geometry_name: &str,
    scale: Vector3<f32>
) -> Option<SceneNode>
[src]

Creates and adds a new object using the geometry registered as geometry_name.

pub fn add_mesh(
    &mut self,
    mesh: Rc<RefCell<Mesh>>,
    scale: Vector3<f32>
) -> SceneNode
[src]

Creates and adds a new object to this node children using a mesh.

pub fn add_trimesh(
    &mut self,
    descr: TriMesh<f32>,
    scale: Vector3<f32>
) -> SceneNode
[src]

Creates and adds a new object using a mesh descriptor.

pub fn add_obj(
    &mut self,
    path: &Path,
    mtl_dir: &Path,
    scale: Vector3<f32>
) -> SceneNode
[src]

Creates and adds multiple nodes created from an obj file.

This will create a new node serving as a root of the scene described by the obj file. This newly created node is added to this node's children.

pub fn apply_to_scene_nodes_mut<F: FnMut(&mut SceneNode)>(&mut self, f: &mut F)[src]

Applies a closure to each object contained by this node and its children.

pub fn apply_to_scene_nodes<F: FnMut(&SceneNode)>(&self, f: &mut F)[src]

Applies a closure to each object contained by this node and its children.

pub fn render(&mut self, pass: usize, camera: &mut dyn Camera, light: &Light)[src]

Render the scene graph rooted by this node.

pub fn set_material(
    &mut self,
    material: Rc<RefCell<Box<dyn Material + 'static>>>
)
[src]

Sets the material of the objects contained by this node and its children.

pub fn set_material_with_name(&mut self, name: &str)[src]

Sets the material of the objects contained by this node and its children.

pub fn set_lines_width(&mut self, width: f32)[src]

Sets the width of the lines drawn for the objects contained by this node and its children.

pub fn set_points_size(&mut self, size: f32)[src]

Sets the size of the points drawn for the objects contained by this node and its children.

pub fn set_surface_rendering_activation(&mut self, active: bool)[src]

Activates or deactivates the rendering of the surfaces of the objects contained by this node and its children.

pub fn enable_backface_culling(&mut self, active: bool)[src]

Activates or deactivates backface culling for the objects contained by this node and its children.

pub fn modify_vertices<F: FnMut(&mut Vec<Point3<f32>>)>(&mut self, f: &mut F)[src]

Mutably accesses the vertices of the objects contained by this node and its children.

The provided closure is called once per object.

pub fn read_vertices<F: FnMut(&[Point3<f32>])>(&self, f: &mut F)[src]

Accesses the vertices of the objects contained by this node and its children.

The provided closure is called once per object.

pub fn recompute_normals(&mut self)[src]

Recomputes the normals of the meshes of the objects contained by this node and its children.

pub fn modify_normals<F: FnMut(&mut Vec<Vector3<f32>>)>(&mut self, f: &mut F)[src]

Mutably accesses the normals of the objects contained by this node and its children.

The provided closure is called once per object.

pub fn read_normals<F: FnMut(&[Vector3<f32>])>(&self, f: &mut F)[src]

Accesses the normals of the objects contained by this node and its children.

The provided closure is called once per object.

pub fn modify_faces<F: FnMut(&mut Vec<Point3<u16>>)>(&mut self, f: &mut F)[src]

Mutably accesses the faces of the objects contained by this node and its children.

The provided closure is called once per object.

pub fn read_faces<F: FnMut(&[Point3<u16>])>(&self, f: &mut F)[src]

Accesses the faces of the objects contained by this node and its children.

The provided closure is called once per object.

pub fn modify_uvs<F: FnMut(&mut Vec<Point2<f32>>)>(&mut self, f: &mut F)[src]

Mutably accesses the texture coordinates of the objects contained by this node and its children.

The provided closure is called once per object.

pub fn read_uvs<F: FnMut(&[Point2<f32>])>(&self, f: &mut F)[src]

Accesses the texture coordinates of the objects contained by this node and its children.

The provided closure is called once per object.

pub fn is_visible(&self) -> bool[src]

Get the visibility status of node.

pub fn set_visible(&mut self, visible: bool)[src]

Sets the visibility of this node.

The node and its children are not rendered if it is not visible.

pub fn set_color(&mut self, r: f32, g: f32, b: f32)[src]

Sets the color of the objects contained by this node and its children.

Colors components must be on the range [0.0, 1.0].

pub fn set_texture_from_file(&mut self, path: &Path, name: &str)[src]

Sets the texture of the objects contained by this node and its children.

The texture is loaded from a file and registered by the global TextureManager.

Arguments

  • path - relative path of the texture on the disk

pub fn set_texture_from_memory(&mut self, image_data: &[u8], name: &str)[src]

Sets the texture of the objects contained by this node and its children.

The texture is loaded from a file and registered by the global TextureManager.

Arguments

  • image_data - slice of bytes containing encoded image
  • name - &str to identify this texture in TextureManager

pub fn set_texture_with_name(&mut self, name: &str)[src]

Sets the texture of the objects contained by this node and its children.

The texture must already have been registered as name.

pub fn set_texture(&mut self, texture: Rc<Texture>)[src]

Sets the texture of the objects contained by this node and its children.

pub fn set_local_scale(&mut self, sx: f32, sy: f32, sz: f32)[src]

Sets the local scaling factors of the object.

pub fn reorient(
    &mut self,
    eye: &Point3<f32>,
    at: &Point3<f32>,
    up: &Vector3<f32>
)
[src]

Move and orient the object such that it is placed at the point eye and have its x axis oriented toward at.

pub fn append_transformation(&mut self, t: &Isometry3<f32>)[src]

Appends a transformation to this node local transformation.

pub fn prepend_to_local_transformation(&mut self, t: &Isometry3<f32>)[src]

Prepends a transformation to this node local transformation.

pub fn set_local_transformation(&mut self, t: Isometry3<f32>)[src]

Set this node local transformation.

pub fn append_translation(&mut self, t: &Translation3<f32>)[src]

Appends a translation to this node local transformation.

pub fn prepend_to_local_translation(&mut self, t: &Translation3<f32>)[src]

Prepends a translation to this node local transformation.

pub fn set_local_translation(&mut self, t: Translation3<f32>)[src]

Sets the local translation of this node.

pub fn append_rotation(&mut self, r: &UnitQuaternion<f32>)[src]

Appends a rotation to this node local transformation.

pub fn append_rotation_wrt_center(&mut self, r: &UnitQuaternion<f32>)[src]

Appends a rotation to this node local transformation.

pub fn prepend_to_local_rotation(&mut self, r: &UnitQuaternion<f32>)[src]

Prepends a rotation to this node local transformation.

pub fn set_local_rotation(&mut self, r: UnitQuaternion<f32>)[src]

Sets the local rotation of this node.

Trait Implementations

impl Clone for SceneNode[src]

fn clone_from(&mut self, source: &Self)
1.0.0
[src]

Performs copy-assignment from source. Read more

Auto Trait Implementations

impl !Send for SceneNode

impl !Sync for SceneNode

Blanket Implementations

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> From for T[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> SetParameter for T

fn set<T>(&mut self, value: T) -> <T as Parameter<Self>>::Result where
    T: Parameter<Self>, 

Sets value as a parameter of self.

impl<T> Same for T

type Output = T

Should always be Self

impl<SS, SP> SupersetOf for SP where
    SS: SubsetOf<SP>, 

impl<T> Downcast for T where
    T: Any