# [−][src]Struct three::Geometry

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.

## Methods

`impl Geometry`

[src]

`impl Geometry`

`pub fn with_vertices(vertices: Vec<Point3<f32>>) -> Self`

[src]

`pub fn with_vertices(vertices: Vec<Point3<f32>>) -> Self`

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);

`pub fn plane(width: f32, height: f32) -> Self`

[src]

`pub fn plane(width: f32, height: f32) -> Self`

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) }

`pub fn cuboid(width: f32, height: f32, depth: f32) -> Self`

[src]

`pub fn cuboid(width: f32, height: f32, depth: f32) -> Self`

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) }

`pub fn cylinder(`

radius_top: f32,

radius_bottom: f32,

height: f32,

radius_segments: usize

) -> Self

[src]

`pub fn cylinder(`

radius_top: f32,

radius_bottom: f32,

height: f32,

radius_segments: usize

) -> Self

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) }

`pub fn uv_sphere(`

radius: f32,

equatorial_segments: usize,

meridional_segments: usize

) -> Self

[src]

`pub fn uv_sphere(`

radius: f32,

equatorial_segments: usize,

meridional_segments: usize

) -> Self

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

`impl Clone for Geometry`

[src]

`impl Clone for Geometry`

`fn clone(&self) -> Geometry`

[src]

`fn clone(&self) -> Geometry`

`fn clone_from(&mut self, source: &Self)`

1.0.0[src]

`fn clone_from(&mut self, source: &Self)`

Performs copy-assignment from `source`

. Read more

`impl Default for Geometry`

[src]

`impl Default for Geometry`

`impl Debug for Geometry`

[src]

`impl Debug for Geometry`

## Auto Trait Implementations

## Blanket Implementations

`impl<T> From for T`

[src]

`impl<T> From for T`

`impl<T, U> Into for T where`

U: From<T>,

[src]

`impl<T, U> Into for T where`

U: From<T>,

`impl<T> ToOwned for T where`

T: Clone,

[src]

`impl<T> ToOwned for T where`

T: Clone,

`impl<T, U> TryFrom for T where`

T: From<U>,

[src]

`impl<T, U> TryFrom for T where`

T: From<U>,

`type Error = !`

`try_from`

)The type returned in the event of a conversion error.

`fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>`

[src]

`fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>`

`impl<T> Borrow for T where`

T: ?Sized,

[src]

`impl<T> Borrow for T where`

T: ?Sized,

`impl<T> BorrowMut for T where`

T: ?Sized,

[src]

`impl<T> BorrowMut for T where`

T: ?Sized,

`fn borrow_mut(&mut self) -> &mut T`

[src]

`fn borrow_mut(&mut self) -> &mut T`

`impl<T, U> TryInto for T where`

U: TryFrom<T>,

[src]

`impl<T, U> TryInto for T where`

U: TryFrom<T>,

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

`try_from`

)The type returned in the event of a conversion error.

`fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>`

[src]

`fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>`

`impl<T> Any for T where`

T: 'static + ?Sized,

[src]

`impl<T> Any for T where`

T: 'static + ?Sized,

`fn get_type_id(&self) -> TypeId`

[src]

`fn get_type_id(&self) -> TypeId`

`impl<T> SetParameter for T`

`impl<T> SetParameter for T`

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

T: Parameter<Self>,

`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> Erased for T`

`impl<T> Erased for T`