diff options
Diffstat (limited to 'lib/Slic3r/Line.pm')
-rw-r--r-- | lib/Slic3r/Line.pm | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/lib/Slic3r/Line.pm b/lib/Slic3r/Line.pm index 9f0dc21d0..3f218f80c 100644 --- a/lib/Slic3r/Line.pm +++ b/lib/Slic3r/Line.pm @@ -2,6 +2,11 @@ package Slic3r::Line; use strict; use warnings; +use constant A => 0; +use constant B => 1; +use constant X => 0; +use constant Y => 1; + sub new { my $class = shift; my $self; @@ -70,4 +75,29 @@ sub length { return Slic3r::Geometry::line_length($self); } +sub atan { + my $self = shift; + return Slic3r::Geometry::line_atan($self); +} + +sub intersection { + my $self = shift; + my ($line, $require_crossing) = @_; + return Slic3r::Geometry::line_intersection($self, $line, $require_crossing); +} + +sub point_on_left { + my $self = shift; + my ($point) = @_; + return Slic3r::Geometry::point_is_on_left_of_segment($point, $self); +} + +sub midpoint { + my $self = shift; + return Slic3r::Point->new( + ($self->[A][X] + $self->[B][X]) / 2, + ($self->[A][Y] + $self->[B][Y]) / 2, + ); +} + 1; |