Struct three::Geometry

source ·
pub struct Geometry {
    pub base: Shape,
    pub tex_coords: Vec<Point2<f32>>,
    pub faces: Vec<[u32; 3]>,
    pub joints: Joints,
    pub shapes: Vec<Shape>,
}
Expand description

A collection of vertices, their normals, and faces that defines the shape of a polyhedral object.

Examples

Tetrahedron of unit height and base radius.

use std::f32::consts::PI;

let vertices = vec![
    [0.0, 1.0, 0.0].into(),
    [0.0, 0.0, 1.0].into(),
    [(2.0 * PI / 3.0).sin(), 0.0, (2.0 * PI / 3.0).cos()].into(),
    [(4.0 * PI / 3.0).sin(), 0.0, (4.0 * PI / 3.0).cos()].into(),
];

let faces = vec![
    [0, 1, 2],
    [0, 2, 3],
    [0, 3, 1],
    [1, 3, 2],
];

three::Geometry {
    faces,
    base: three::Shape {
        vertices,
        .. three::Shape::default()
    },
    .. three::Geometry::default()
}

Notes

  • If any vertex normals, tangents, or texture co-ordinates are provided, the number of entries in each array must match the number of entries in vertices.
  • If joints are provided, the number of entries in joints.indices must match the number of entries in joints.weights.

Fields

base: Shape

Idle shape of the geometry.

tex_coords: Vec<Point2<f32>>

Texture co-ordinates.

faces: Vec<[u32; 3]>

Face indices.

When omitted, the vertex order [[0, 1, 2], [3, 4, 5], ...] is assumed.

joints: Joints

Properties for vertex skinning.

shapes: Vec<Shape>

A list of blend shapes.

Implementations

Create Geometry from vector of vertices.

Examples

Triangle in the XY plane.

let vertices = vec![
    [-0.5, -0.5, 0.0].into(),
    [ 0.5, -0.5, 0.0].into(),
    [ 0.5, -0.5, 0.0].into(),
];
let geometry = three::Geometry::with_vertices(vertices);

Creates planar geometry in the XY plane.

The width and height parameters specify the total length of the geometry along the X and Y axes respectively.

Examples

Unit square in the XY plane, centered at the origin.

fn make_square() -> three::Geometry {
    three::Geometry::plane(1.0, 1.0)
}

Creates cuboidal geometry.

The width, height, and depth parameters specify the total length of the geometry along the X, Y, and Z axes respectively.

Examples

Unit cube, centered at the origin.

fn make_cube() -> three::Geometry {
    three::Geometry::cuboid(1.0, 1.0, 1.0)
}

Creates cylindrial geometry.

Examples

Cylinder of unit height and radius, using 12 segments at each end.

fn make_cylinder() -> three::Geometry {
    three::Geometry::cylinder(1.0, 1.0, 1.0, 12)
}

Cone of unit height and unit radius at the bottom.

fn make_cone() -> three::Geometry {
    three::Geometry::cylinder(0.0, 1.0, 1.0, 12)
}

Creates geometry for a sphere, using the UV method.

  • equatorial_divisions specifies the number of segments about the sphere equator that lies in the XZ plane.
  • meridional_segments specifies the number of segments around the sphere meridian that lies in the YZ plane.
fn make_sphere() -> three::Geometry {
    three::Geometry::uv_sphere(1.0, 12, 12)
}

Trait Implementations

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Returns the “default value” for a type. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

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

The alignment of pointer.
The type for initializers.
Initializes a with the given initializer. Read more
Dereferences the given pointer. Read more
Mutably dereferences the given pointer. Read more
Drops the object pointed to by the given pointer. Read more
Sets value as a parameter of self.
The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.