From 9d50616c7dc3060ef54360173a9d13325fd3e45e Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Mon, 5 Aug 2013 19:22:33 +0200 Subject: [PATCH] Ported align_to_origin() --- xs/src/TriangleMesh.cpp | 9 +++++++++ xs/src/TriangleMesh.hpp | 1 + xs/t/01_trianglemesh.t | 5 ++++- xs/xsp/TriangleMesh.xsp | 1 + 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/xs/src/TriangleMesh.cpp b/xs/src/TriangleMesh.cpp index 31876f9fdd..77cc9c387b 100644 --- a/xs/src/TriangleMesh.cpp +++ b/xs/src/TriangleMesh.cpp @@ -112,4 +112,13 @@ void TriangleMesh::translate(float x, float y, float z) stl_translate(&(this->stl), x, y, z); } +void TriangleMesh::align_to_origin() +{ + this->translate( + -(this->stl.stats.min.x), + -(this->stl.stats.min.y), + -(this->stl.stats.min.z) + ); +} + } diff --git a/xs/src/TriangleMesh.hpp b/xs/src/TriangleMesh.hpp index b82e8d982a..c9e5a3f790 100644 --- a/xs/src/TriangleMesh.hpp +++ b/xs/src/TriangleMesh.hpp @@ -17,6 +17,7 @@ class TriangleMesh void WriteOBJFile(char* output_file); void scale(float factor); void translate(float x, float y, float z); + void align_to_origin(); stl_file stl; }; diff --git a/xs/t/01_trianglemesh.t b/xs/t/01_trianglemesh.t index c888ae91d9..760c6af049 100644 --- a/xs/t/01_trianglemesh.t +++ b/xs/t/01_trianglemesh.t @@ -4,7 +4,7 @@ use strict; use warnings; use Slic3r::XS; -use Test::More tests => 7; +use Test::More tests => 8; is Slic3r::TriangleMesh::XS::hello_world(), 'Hello world!', 'hello world'; @@ -34,6 +34,9 @@ my $cube = { $m->translate(5,10,0); is_deeply $m->vertices->[0], [45,50,0], 'translate'; + + $m->align_to_origin; + is_deeply $m->vertices->[2], [0,0,0], 'align_to_origin'; } __END__ diff --git a/xs/xsp/TriangleMesh.xsp b/xs/xsp/TriangleMesh.xsp index 7f47df61d1..9690a34892 100644 --- a/xs/xsp/TriangleMesh.xsp +++ b/xs/xsp/TriangleMesh.xsp @@ -14,6 +14,7 @@ void WriteOBJFile(char* output_file); void scale(float factor); void translate(float x, float y, float z); + void align_to_origin(); %{ SV*