Rename minmax functions to bounds
This commit is contained in:
@@ -135,7 +135,7 @@ impl App {
|
|||||||
|
|
||||||
mesh.set_scale_unchecked(mesh.scale().component_mul(&mm_to_px));
|
mesh.set_scale_unchecked(mesh.scale().component_mul(&mm_to_px));
|
||||||
|
|
||||||
let (min, max) = mesh.minmax_point();
|
let (min, max) = mesh.bounds();
|
||||||
preview_scale = preview_scale
|
preview_scale = preview_scale
|
||||||
.min(self.slice_config.platform_size.x / (max.x - min.x))
|
.min(self.slice_config.platform_size.x / (max.x - min.x))
|
||||||
.min(self.slice_config.platform_size.y / (max.y - min.y));
|
.min(self.slice_config.platform_size.y / (max.y - min.y));
|
||||||
|
@@ -32,7 +32,7 @@ pub fn render_preview_image(
|
|||||||
|
|
||||||
let (mut min, mut max) = (Vector3::repeat(f32::MAX), Vector3::repeat(f32::MIN));
|
let (mut min, mut max) = (Vector3::repeat(f32::MAX), Vector3::repeat(f32::MIN));
|
||||||
for model in workspace.models.read().iter() {
|
for model in workspace.models.read().iter() {
|
||||||
let (model_min, model_max) = model.mesh.minmax_point();
|
let (model_min, model_max) = model.mesh.bounds();
|
||||||
min = min.zip_map(&model_min, f32::min);
|
min = min.zip_map(&model_min, f32::min);
|
||||||
max = max.zip_map(&model_max, f32::max);
|
max = max.zip_map(&model_max, f32::max);
|
||||||
}
|
}
|
||||||
|
@@ -89,7 +89,7 @@ impl RenderedMesh {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn align_to_bed(&mut self) {
|
pub fn align_to_bed(&mut self) {
|
||||||
let (bottom, _) = self.mesh.minmax_point();
|
let (bottom, _) = self.mesh.bounds();
|
||||||
|
|
||||||
let pos = self.mesh.position() - Vector3::new(0.0, 0.0, bottom.z);
|
let pos = self.mesh.position() - Vector3::new(0.0, 0.0, bottom.z);
|
||||||
self.mesh.set_position(pos);
|
self.mesh.set_position(pos);
|
||||||
|
@@ -42,7 +42,7 @@ fn main() -> Result<()> {
|
|||||||
let file = File::open(FILE_PATH)?;
|
let file = File::open(FILE_PATH)?;
|
||||||
let mut buf = BufReader::new(file);
|
let mut buf = BufReader::new(file);
|
||||||
let mut mesh = load_mesh(&mut buf, "stl")?;
|
let mut mesh = load_mesh(&mut buf, "stl")?;
|
||||||
let (min, max) = mesh.minmax_point();
|
let (min, max) = mesh.bounds();
|
||||||
|
|
||||||
// Scale the model into printer-space (mm => px)
|
// Scale the model into printer-space (mm => px)
|
||||||
let real_scale = 1.0;
|
let real_scale = 1.0;
|
||||||
|
@@ -191,8 +191,8 @@ impl Mesh {
|
|||||||
|
|
||||||
/// Get the minimum and maximum of each component of every vertex in the
|
/// Get the minimum and maximum of each component of every vertex in the
|
||||||
/// model. These points define the bounding box of the model.
|
/// model. These points define the bounding box of the model.
|
||||||
pub fn minmax_point(&self) -> (Pos, Pos) {
|
pub fn bounds(&self) -> (Pos, Pos) {
|
||||||
minmax_vertices(self.vertices(), &self.transformation_matrix)
|
vertex_bounds(self.vertices(), &self.transformation_matrix)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -350,7 +350,7 @@ impl Default for Mesh {
|
|||||||
// todo: maybe only transform min and max at end
|
// todo: maybe only transform min and max at end
|
||||||
/// Get the minimum and maximum of each component of every vertex.
|
/// Get the minimum and maximum of each component of every vertex.
|
||||||
/// These points define the bounding box of the model.
|
/// These points define the bounding box of the model.
|
||||||
fn minmax_vertices(vertices: &[Pos], transform: &Matrix4<f32>) -> (Pos, Pos) {
|
fn vertex_bounds(vertices: &[Pos], transform: &Matrix4<f32>) -> (Pos, Pos) {
|
||||||
vertices.iter().fold(
|
vertices.iter().fold(
|
||||||
(
|
(
|
||||||
Pos::new(f32::MAX, f32::MAX, f32::MAX),
|
Pos::new(f32::MAX, f32::MAX, f32::MAX),
|
||||||
@@ -368,7 +368,7 @@ fn minmax_vertices(vertices: &[Pos], transform: &Matrix4<f32>) -> (Pos, Pos) {
|
|||||||
|
|
||||||
/// Moves the model to have its origin at its centerpoint.
|
/// Moves the model to have its origin at its centerpoint.
|
||||||
fn center_vertices(vertices: &mut [Pos]) {
|
fn center_vertices(vertices: &mut [Pos]) {
|
||||||
let (min, max) = minmax_vertices(vertices, &Matrix4::identity());
|
let (min, max) = vertex_bounds(vertices, &Matrix4::identity());
|
||||||
|
|
||||||
let center = (min + max) / 2.0;
|
let center = (min + max) / 2.0;
|
||||||
let center = Pos::new(center.x, center.y, min.z);
|
let center = Pos::new(center.x, center.y, min.z);
|
||||||
|
@@ -17,7 +17,7 @@ pub struct Segments1D {
|
|||||||
impl Segments1D {
|
impl Segments1D {
|
||||||
/// Creates a new Segments structure from a given mesh and segment count.
|
/// Creates a new Segments structure from a given mesh and segment count.
|
||||||
pub fn from_mesh(mesh: &Mesh, layer_count: usize) -> Self {
|
pub fn from_mesh(mesh: &Mesh, layer_count: usize) -> Self {
|
||||||
let (min, max) = mesh.minmax_point();
|
let (min, max) = mesh.bounds();
|
||||||
|
|
||||||
// Caching transformed points makes slicing faster.
|
// Caching transformed points makes slicing faster.
|
||||||
let transformed_points = mesh
|
let transformed_points = mesh
|
||||||
@@ -32,7 +32,7 @@ impl Segments1D {
|
|||||||
|
|
||||||
// Adds the index of each face into all of the segments it covers.
|
// Adds the index of each face into all of the segments it covers.
|
||||||
for face in 0..mesh.face_count() {
|
for face in 0..mesh.face_count() {
|
||||||
let (min_height, max_height) = minmax_triangle_height(mesh, &transformed_points, face);
|
let (min_height, max_height) = triangle_bounds(mesh, &transformed_points, face);
|
||||||
let (min_layer, max_layer) = (
|
let (min_layer, max_layer) = (
|
||||||
((min_height - min.z) / layer_height) as usize,
|
((min_height - min.z) / layer_height) as usize,
|
||||||
((max_height - min.z) / layer_height).round() as usize,
|
((max_height - min.z) / layer_height).round() as usize,
|
||||||
@@ -74,7 +74,7 @@ impl Segments1D {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Gets the min and max heights of the vertices of a face.
|
/// Gets the min and max heights of the vertices of a face.
|
||||||
fn minmax_triangle_height(mesh: &Mesh, points: &[Vector3<f32>], triangle: usize) -> (f32, f32) {
|
fn triangle_bounds(mesh: &Mesh, points: &[Vector3<f32>], triangle: usize) -> (f32, f32) {
|
||||||
let triangle = mesh.faces()[triangle];
|
let triangle = mesh.faces()[triangle];
|
||||||
let heights = (
|
let heights = (
|
||||||
points[triangle[0] as usize].z,
|
points[triangle[0] as usize].z,
|
||||||
|
Reference in New Issue
Block a user