19 const auto & p = l.p();
20 const auto & q = l.q();
21 const auto & s = r.p();
22 const auto & t = r.q();
26 Vec2DReal intersectionOfLines = p + (dThis * lambda);
27 return intersectionOfLines;
38 return linearIntersection(lhs.toLine(),rhs.toLine()).
filter([&lhs,&rhs](
const auto & intersection){
return lhs.contains(intersection) && rhs.contains(intersection);});
42 return lhs.direction().isParallel(rhs.direction());
Option< T > filter(fishnet::util::Predicate< T > auto const &predicate)
If the Option has a value and the predicate returns true, return the Option. Otherwise,...
Definition Option.hpp:136
Implementation of a two-dimensional vector.
Definition Vec2D.hpp:16
Interface for a line A line is defined through two points p and q, defining a direction vector.
Definition ILine.hpp:76
Definition IGeometry.hpp:13
Definition BoundingBoxWrapper.hpp:5
static constexpr fishnet::Option< Vec2DReal > linearIntersection(ILine auto const &l, ILine auto const &r) noexcept
Computation of line intersection.
Definition LinearIntersection.hpp:15
static constexpr bool areParallel(LinearGeometry auto const &lhs, LinearGeometry auto const &rhs) noexcept
Definition LinearIntersection.hpp:41
static constexpr bool intersect(LinearGeometry auto const &lhs, LinearGeometry auto const &rhs) noexcept
Definition LinearIntersection.hpp:45
Vec2D< fishnet::math::DEFAULT_FLOATING_POINT > Vec2DReal
Definition Vec2D.hpp:220
Definition NumericConcepts.hpp:4
double DEFAULT_FLOATING_POINT
Definition NumericConcepts.hpp:12