08_extrusionloop.t 985 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4. use Slic3r::XS;
  5. use Test::More tests => 7;
  6. my $square = [
  7. [100, 100],
  8. [200, 100],
  9. [200, 200],
  10. [100, 200],
  11. ];
  12. my $loop = Slic3r::ExtrusionLoop->new(
  13. polygon => Slic3r::Polygon->new(@$square),
  14. role => Slic3r::ExtrusionPath::EXTR_ROLE_EXTERNAL_PERIMETER,
  15. );
  16. isa_ok $loop->polygon, 'Slic3r::Polygon', 'loop polygon';
  17. is_deeply $loop->polygon->pp, $square, 'polygon points roundtrip';
  18. $loop = $loop->clone;
  19. is $loop->role, Slic3r::ExtrusionPath::EXTR_ROLE_EXTERNAL_PERIMETER, 'role';
  20. $loop->role(Slic3r::ExtrusionPath::EXTR_ROLE_FILL);
  21. is $loop->role, Slic3r::ExtrusionPath::EXTR_ROLE_FILL, 'modify role';
  22. {
  23. my $path = $loop->split_at_first_point;
  24. is_deeply $path->polyline->pp, [ @$square[0,1,2,3,0] ], 'split_at_first_point';
  25. is $path->role, $loop->role, 'role preserved after split';
  26. is_deeply $loop->split_at_index(2)->polyline->pp, [ @$square[2,3,0,1,2] ], 'split_at_index';
  27. }
  28. __END__