From b42abd03250df0b0ce7326b30c0c99e87f693db7 Mon Sep 17 00:00:00 2001 From: Thomas Forgione Date: Thu, 12 Apr 2018 09:44:32 +0200 Subject: [PATCH] Added center and scale --- src/model.rs | 12 ++++++++++++ src/programs/viewer.rs | 2 ++ 2 files changed, 14 insertions(+) diff --git a/src/model.rs b/src/model.rs index 09d4c75..54fc2d0 100644 --- a/src/model.rs +++ b/src/model.rs @@ -406,4 +406,16 @@ impl Model { (avg, sd) } + + /// Centers and scales the model. + pub fn center_and_scale(&mut self) { + let bbox = self.bounding_box(); + let center = (bbox.min() + bbox.max()) / 2.0; + let size = (bbox.max() - bbox.min()).norm(); + + for vertex in &mut self.vertices { + *vertex -= center; + *vertex /= size; + } + } } diff --git a/src/programs/viewer.rs b/src/programs/viewer.rs index 9f7fb9f..7dcba46 100644 --- a/src/programs/viewer.rs +++ b/src/programs/viewer.rs @@ -57,6 +57,8 @@ fn main() { } } + model.center_and_scale(); + let mut events_loop = EventsLoop::new(); let window = WindowBuilder::new().with_visibility(false); let context = glutin::ContextBuilder::new().with_depth_buffer(24);