Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/prusa3d/PrusaSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Slic3r/Line.pm')
-rw-r--r--lib/Slic3r/Line.pm30
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;