Ported TriangleMesh->rotate
This commit is contained in:
parent
9402898c58
commit
d881c5ab2f
@ -123,4 +123,11 @@ void TriangleMesh::align_to_origin()
|
||||
);
|
||||
}
|
||||
|
||||
void TriangleMesh::rotate(double angle, Point* center)
|
||||
{
|
||||
this->translate(-center->x, -center->y, 0);
|
||||
stl_rotate_z(&(this->stl), (float)angle);
|
||||
this->translate(+center->x, +center->y, 0);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -3,6 +3,7 @@
|
||||
|
||||
#include <myinit.h>
|
||||
#include <admesh/stl.h>
|
||||
#include "Point.hpp"
|
||||
|
||||
namespace Slic3r {
|
||||
|
||||
@ -18,6 +19,7 @@ class TriangleMesh
|
||||
void scale(float factor);
|
||||
void translate(float x, float y, float z);
|
||||
void align_to_origin();
|
||||
void rotate(double angle, Point* center);
|
||||
stl_file stl;
|
||||
};
|
||||
|
||||
|
@ -4,7 +4,7 @@ use strict;
|
||||
use warnings;
|
||||
|
||||
use Slic3r::XS;
|
||||
use Test::More tests => 9;
|
||||
use Test::More tests => 10;
|
||||
|
||||
is Slic3r::TriangleMesh::XS::hello_world(), 'Hello world!',
|
||||
'hello world';
|
||||
@ -39,6 +39,9 @@ my $cube = {
|
||||
is_deeply $m->vertices->[2], [0,0,0], 'align_to_origin';
|
||||
|
||||
is_deeply $m->size, [40,40,40], 'size';
|
||||
|
||||
$m->rotate(45, Slic3r::Point->new(20,20));
|
||||
ok abs($m->size->[0] - sqrt(2)*40) < 1E-4, 'rotate';
|
||||
}
|
||||
|
||||
__END__
|
||||
|
@ -15,6 +15,7 @@
|
||||
void scale(float factor);
|
||||
void translate(float x, float y, float z);
|
||||
void align_to_origin();
|
||||
void rotate(double angle, Point* center);
|
||||
%{
|
||||
|
||||
SV*
|
||||
|
Loading…
Reference in New Issue
Block a user