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:
authorAlessandro Ranellucci <aar@cpan.org>2011-10-20 20:11:59 +0400
committerAlessandro Ranellucci <aar@cpan.org>2011-10-28 16:13:44 +0400
commit6d6533831ea63a256389a55afcca522a9db66c4b (patch)
tree144e2ff4c014679801f9fe0d461c28418c44b8a2 /lib/Slic3r/Line.pm
parent7f341cfcd36527d7ace1af6702bbca29f46fb2a3 (diff)
New experimental --gcode-arcs options to generate G2/G3 commands. #23
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;