point intersects(Line line, Point point) {
return lp_intersect(point, line);
}
point intersects(Point point, Line line) {
return lp_intersect(point, line);
}
####
point intersects(Point point1, Point point2) {
return point1.equals(point2);
}
####
sub intersects {
my ($self, $arg1, $arg2) = @_;
unless (
($self->_is_point($arg1) or $self->_is_line($arg1))
&&
($self->_is_point($arg2) or $self->_is_line($arg2))
) {
die "Bad args";
}
if ($arg1->isa('point') and $arg2->isa('point')) {
return $arg1->equals($arg2);
}
elsif ($arg1->isa('point') and $arg2->isa('line')) {
return $self->_lp_intersect($arg1, $arg2);
}
elsif ($arg1->isa('line') and $arg2->isa('point')) {
return $self->_lp_intersect($arg2, $arg1);
}
elsif ($arg1->isa('line') and $arg2->isa('line')) {
return $self->_line_intersect($arg1, $arg2);
}
}
####
unless (
($self->_is_point($arg1) or $self->_is_line($arg1) or $self->_is_plane($arg1))
&&
($self->_is_point($arg2) or $self->_is_line($arg2) or $self->_is_plane($arg2))
) {
die "Bad args";
}
####
unless (
($self->_is_point($arg1) or $self->_is_line($arg1) or $self->_is_plane($arg1))
&&
($self->_is_point($arg2) or $self->_is_line($arg2) or $self->_is_plan($arg2))
) {
die "Bad args";
}