simpler list

This commit is contained in:
numzero 2025-11-14 03:37:12 +03:00
parent 41805ca05b
commit cdefede951

View File

@ -1,6 +1,6 @@
#![feature(gen_blocks)] #![feature(gen_blocks)]
use std::{error::Error, f32::consts::PI, sync::Arc}; use std::{convert::identity, error::Error, f32::consts::PI, sync::Arc};
use glam::{Mat4, vec3}; use glam::{Mat4, vec3};
use winit::{ use winit::{
@ -48,7 +48,11 @@ pub fn new_tripod(device: &wgpu::Device) -> Mesh {
) )
} }
fn loop_list<T: Clone, U>( fn loop_list<T: Clone>(iter: impl IntoIterator<Item = T>) -> impl Iterator<Item = T> {
loop_list_ex(iter, identity, identity)
}
fn loop_list_ex<T: Clone, U>(
iter: impl IntoIterator<Item = T>, iter: impl IntoIterator<Item = T>,
mut fa: impl FnMut(T) -> U, mut fa: impl FnMut(T) -> U,
mut fb: impl FnMut(T) -> U, mut fb: impl FnMut(T) -> U,
@ -139,18 +143,11 @@ impl MainWindow {
distance: 1.0, distance: 1.0,
diameter: 0.25, diameter: 0.25,
}; };
let contour = source.contour(17); let contour: Vec<Vertex> = loop_list(source.contour(17))
let contour: Vec<Vertex> = loop_list( .map(|pos| Vertex {
contour,
|pos| Vertex {
pos,
color: vec3(1., 1., 0.),
},
|pos| Vertex {
pos, pos,
color: vec3(1., 1., 1.), color: vec3(1., 1., 1.),
}, })
)
.collect(); .collect();
self.pipeline self.pipeline
.render(&mut pass, [&Mesh::new(&self.device, &contour)]); .render(&mut pass, [&Mesh::new(&self.device, &contour)]);