Bless arrayref representation into Slic3r classes
This commit is contained in:
parent
53e4532f9c
commit
989e48ede0
@ -46,7 +46,7 @@ polygon2perl(Polygon& poly) {
|
||||
for (unsigned int i = 0; i < num_points; i++) {
|
||||
av_store(av, i, point2perl(poly[i]));
|
||||
}
|
||||
return (SV*)newRV_noinc((SV*)av);
|
||||
return sv_bless(newRV_noinc((SV*)av), gv_stashpv("Slic3r::Polygon", GV_ADD));
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -21,7 +21,7 @@ point2perl(Point& point) {
|
||||
AV* av = newAV();
|
||||
av_fill(av, 1);
|
||||
av_store_point_xy(av, point.x, point.y);
|
||||
return (SV*)newRV_noinc((SV*)av);
|
||||
return sv_bless(newRV_noinc((SV*)av), gv_stashpv("Slic3r::Point", GV_ADD));
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -4,9 +4,11 @@ use strict;
|
||||
use warnings;
|
||||
|
||||
use Slic3r::XS;
|
||||
use Test::More tests => 1;
|
||||
use Test::More tests => 2;
|
||||
|
||||
my $point = Slic3r::Point::XS->new(10, 15);
|
||||
is_deeply [ @$point ], [10, 15], 'point roundtrip';
|
||||
|
||||
isa_ok $point->arrayref, 'Slic3r::Point', 'Perl point is blessed';
|
||||
|
||||
__END__
|
||||
|
@ -4,7 +4,7 @@ use strict;
|
||||
use warnings;
|
||||
|
||||
use Slic3r::XS;
|
||||
use Test::More tests => 1;
|
||||
use Test::More tests => 4;
|
||||
|
||||
my $square = [ # ccw
|
||||
[100, 100],
|
||||
@ -22,4 +22,8 @@ my $hole_in_square = [ # cw
|
||||
my $expolygon = Slic3r::ExPolygon::XS->new($square, $hole_in_square);
|
||||
is_deeply [ @$expolygon ], [$square, $hole_in_square], 'expolygon roundtrip';
|
||||
|
||||
isa_ok $expolygon->arrayref, 'Slic3r::ExPolygon', 'Perl expolygon is blessed';
|
||||
isa_ok $expolygon->[0], 'Slic3r::Polygon', 'Perl polygons are blessed';
|
||||
isa_ok $expolygon->[0][0], 'Slic3r::Point', 'Perl polygon points are blessed';
|
||||
|
||||
__END__
|
||||
|
@ -30,7 +30,7 @@ ExPolygon::arrayref()
|
||||
for (unsigned int i = 0; i < num_holes; i++) {
|
||||
av_store(av, i+1, polygon2perl(THIS->holes[i]));
|
||||
}
|
||||
RETVAL = (SV*)newRV_noinc((SV*)av);
|
||||
RETVAL = sv_bless(newRV_noinc((SV*)av), gv_stashpv("Slic3r::ExPolygon", GV_ADD));
|
||||
OUTPUT:
|
||||
RETVAL
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user