Tweak code to be more idiomatic.
This commit is contained in:
1 parent
1c99e4a3a4
commit
8ba6d56512
6 files changed
+48
-44
No files matched your search
+16
-16
@@ -19,7 +19,7 @@ fn new_triangle(p1: &Vertex, p2: &Vertex, p3: &Vertex) -> stl_io::Triangle {
|
||||
|
||||
stl_io::Triangle {
|
||||
normal: Normal::new([n_x, n_y, n_z]),
|
||||
vertices: [p1.clone(), p2.clone(), p3.clone()],
|
||||
vertices: [*p1, *p2, *p3],
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ fn radian_steps(steps: u32) -> Vec<f32> {
|
||||
let counter = 0..steps;
|
||||
let stepsize = std::f64::consts::TAU / steps as f64;
|
||||
|
||||
return counter.map(|i| (i as f64 * stepsize) as f32).collect();
|
||||
counter.map(|i| (i as f64 * stepsize) as f32).collect()
|
||||
}
|
||||
|
||||
/// Find a point on the cirle at a given angle (in radians).
|
||||
@@ -37,27 +37,27 @@ fn vertex_on_circle(center: &Vertex, radius: f32, angle: f32) -> Vertex {
|
||||
let y = center[1] + (radius * angle.sin());
|
||||
let z = center[2];
|
||||
|
||||
return Vertex::new([x, y, z]);
|
||||
Vertex::new([x, y, z])
|
||||
}
|
||||
|
||||
fn vertexes_on_circle(layer: &Layer, steps: u32) -> Vec<Vertex> {
|
||||
return radian_steps(steps)
|
||||
radian_steps(steps)
|
||||
.iter()
|
||||
.map(|angle| vertex_on_circle(&layer.center, layer.radius, *angle))
|
||||
.collect();
|
||||
.collect()
|
||||
}
|
||||
|
||||
fn tube_base(center: &Vertex, edge: &Vec<Vertex>) -> Vec<Triangle> {
|
||||
fn tube_base(center: &Vertex, edge: &[Vertex]) -> Vec<Triangle> {
|
||||
let mut result = Vec::with_capacity(edge.len());
|
||||
|
||||
for i in 0..edge.len() {
|
||||
result.push(new_triangle(¢er, &edge[(i + 1) % edge.len()], &edge[i]));
|
||||
result.push(new_triangle(center, &edge[(i + 1) % edge.len()], &edge[i]));
|
||||
}
|
||||
|
||||
return result;
|
||||
result
|
||||
}
|
||||
|
||||
fn tube_sides(botoom_edge: &Vec<Vertex>, top_edge: &Vec<Vertex>) -> Vec<Triangle> {
|
||||
fn tube_sides(botoom_edge: &[Vertex], top_edge: &[Vertex]) -> Vec<Triangle> {
|
||||
assert_eq!(botoom_edge.len(), top_edge.len());
|
||||
|
||||
let mut result = Vec::with_capacity(2 * botoom_edge.len());
|
||||
@@ -69,15 +69,15 @@ fn tube_sides(botoom_edge: &Vec<Vertex>, top_edge: &Vec<Vertex>) -> Vec<Triangle
|
||||
result.push(new_triangle(&botoom_edge[i], &botoom_edge[j], &top_edge[j]));
|
||||
}
|
||||
|
||||
return result;
|
||||
result
|
||||
}
|
||||
|
||||
fn tube_top(center: &Vertex, edge: &Vec<Vertex>) -> Vec<Triangle> {
|
||||
fn tube_top(center: &Vertex, edge: &[Vertex]) -> Vec<Triangle> {
|
||||
// The top is the same, except the normals are reversed. We can do that by reversing the order of the vertexes.
|
||||
let mut edge = edge.clone();
|
||||
let mut edge = edge.to_owned();
|
||||
edge.reverse();
|
||||
|
||||
return tube_base(¢er, &edge);
|
||||
tube_base(center, &edge)
|
||||
}
|
||||
|
||||
pub fn render(layers: &Layers, resolution: f32) -> Vec<Triangle> {
|
||||
@@ -91,7 +91,7 @@ pub fn render(layers: &Layers, resolution: f32) -> Vec<Triangle> {
|
||||
let mut layer_vertexes: Vec<Vec<Vertex>> = Vec::new();
|
||||
|
||||
for layer in &layers.layers {
|
||||
layer_vertexes.push(vertexes_on_circle(&layer, circle_steps));
|
||||
layer_vertexes.push(vertexes_on_circle(layer, circle_steps));
|
||||
}
|
||||
|
||||
let mut result: Vec<Triangle> = Vec::new();
|
||||
@@ -100,9 +100,9 @@ pub fn render(layers: &Layers, resolution: f32) -> Vec<Triangle> {
|
||||
for i in 0..layer_vertexes.len() - 1 {
|
||||
result.append(&mut tube_sides(&layer_vertexes[i], &layer_vertexes[i + 1]));
|
||||
}
|
||||
result.append(&mut tube_top(&layers.top, &layer_vertexes.last().unwrap()));
|
||||
result.append(&mut tube_top(&layers.top, layer_vertexes.last().unwrap()));
|
||||
|
||||
return result;
|
||||
result
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
|
||||
Reference in new issue
Block a user