mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-12 01:07:57 -06:00
Use XS Point everywhere
This commit is contained in:
parent
d0701cdcd4
commit
9af2a1c007
37 changed files with 238 additions and 303 deletions
|
@ -2,67 +2,10 @@ package Slic3r::Point;
|
|||
use strict;
|
||||
use warnings;
|
||||
|
||||
use Storable qw();
|
||||
|
||||
sub new {
|
||||
my $class = shift;
|
||||
my $self;
|
||||
if (@_ == 2) {
|
||||
$self = [@_];
|
||||
} elsif ((ref $_[0]) =~ 'ARRAY' || (ref $_[0]) =~ /Slic3r::Point/) {
|
||||
$self = [@{$_[0]}];
|
||||
} elsif ($_[0]->isa(__PACKAGE__)) {
|
||||
return $_[0];
|
||||
} else {
|
||||
die "Invalid arguments for ${class}->new";
|
||||
}
|
||||
bless $self, $class;
|
||||
return $self;
|
||||
}
|
||||
|
||||
sub clone {
|
||||
return Slic3r::Point::XS->new(@{$_[0]});
|
||||
}
|
||||
|
||||
sub threadsafe_clone {
|
||||
my $self = shift;
|
||||
return (ref $self)->new(@$self);
|
||||
}
|
||||
|
||||
sub coincides_with {
|
||||
my $self = shift;
|
||||
my ($point) = @_;
|
||||
return Slic3r::Geometry::points_coincide($self, $point);
|
||||
}
|
||||
|
||||
sub distance_to {
|
||||
my $self = shift;
|
||||
my ($point) = @_;
|
||||
return Slic3r::Geometry::distance_between_points($self, $point);
|
||||
}
|
||||
|
||||
sub scale {
|
||||
my $self = shift;
|
||||
my ($factor) = @_;
|
||||
$_ *= $factor for @$self;
|
||||
$self;
|
||||
}
|
||||
|
||||
sub rotate {
|
||||
my $self = shift;
|
||||
my ($angle, $center) = @_;
|
||||
@$self = @{ +(Slic3r::Geometry::rotate_points($angle, $center, $self))[0] };
|
||||
$self;
|
||||
}
|
||||
|
||||
sub translate {
|
||||
my $self = shift;
|
||||
my ($x, $y) = @_;
|
||||
@$self = @{ +(Slic3r::Geometry::move_points([$x, $y], $self))[0] };
|
||||
$self;
|
||||
}
|
||||
|
||||
sub x { $_[0]->[0] }
|
||||
sub y { $_[0]->[1] }
|
||||
|
||||
1;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue