Plexus

Plexus is a Rust library for generating, manipulating, and buffering 3D meshes.

Build Status Documentation

Generation

Meshes can be generated from primitives using iterator expressions.

```rust use nalgebra::Point3; use plexus::generate::{sphere, MapVertices, Subdivide, Triangulate};

let triangles = sphere::UVSphere::::withunitradius(16, 16) .spatialpolygons() .mapverticies(|(x, y, z)| Point3::new(x, y, z)) .subdivide() .triangulate(); ```

Buffering

To render meshes, mesh data can be collecting into buffers that expose vertex and index data.

```rust use ordered_float::OrderedFloat; use plexus::buffer::conjoint::ConjointBuffer; use plexus::generate::{sphere, MapVertices, Triangulate};

type OrdF = OrderedFloat; type Point = (OrdF, OrdF, OrdF);

let buffer = sphere::UVSphere::::withunitradius(16, 16) .spatialpolygons() .mapverticies(|(x, y, z)| (OrdF(x), OrdF(y), OrdF(z))) .triangulate() .collect::>>(); ```