pub struct Mesh {
pub vertex_names: Vec<String>,
pub positions: Vec<[f64; 3]>,
pub face_names: Vec<String>,
pub faces: Vec<Vec<usize>>,
pub sharp: BTreeSet<[usize; 2]>,
pub soft: BTreeMap<[usize; 2], f64>,
}Expand description
The cage as the limit surface is built from it: indexed, the mirror image added, every element named.
Fields§
§vertex_names: Vec<String>Per vertex: its name (v3, v3m) and where it is.
positions: Vec<[f64; 3]>§face_names: Vec<String>Per face: its name (f7, f7m) and its vertices, counter-clockwise
seen from outside.
faces: Vec<Vec<usize>>§sharp: BTreeSet<[usize; 2]>The edges kept sharp, the smaller index first.
soft: BTreeMap<[usize; 2], f64>The edges creased soft, by their sharpness in (0, 1) (see
Crease).
Implementations§
Source§impl Mesh
impl Mesh
Sourcepub fn new(cage: &Cage, mirror: Mirror) -> GeopResult<Self>
pub fn new(cage: &Cage, mirror: Mirror) -> GeopResult<Self>
cage, and, if mirror names a plane, its mirror image in it,
joined to it at the vertices on the plane. Fails, naming the
elements, for a cage no limit surface can be built from (see
Topology::new), and for a mirrored one with a face lying in the
plane, or reaching across it.
Source§impl Mesh
impl Mesh
Sourcepub fn topology(&self) -> GeopResult<Topology>
pub fn topology(&self) -> GeopResult<Topology>
The mesh’s topology, checked (see Topology::new), and checked to
be in one piece.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Mesh
impl RefUnwindSafe for Mesh
impl Send for Mesh
impl Sync for Mesh
impl Unpin for Mesh
impl UnsafeUnpin for Mesh
impl UnwindSafe for Mesh
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