17 using T =
typename V::ValueType;
21 constexpr Line() noexcept = default;
22 constexpr
Line( const V &
p, const V &
d ) noexcept :
p(
p ),
d(
d ) { }
24 constexpr explicit Line(
const Line<U> & l ) noexcept :
p( l.p ),
d( l.d ) { }
31 {
return ( x -
project( x ) ).lengthSq(); }
41 [[nodiscard]] V
project(
const V & x )
const {
return p + dot(
d, x -
p ) /
d.lengthSq() *
d; }
45 return s << l.
p <<
'\n' << l.
d;
50 return s >> l.
p >> l.
d;
69 return a.
p == b.
p && a.
d == b.
d;
MRMESH_API bool operator==(const BitSet &a, const BitSet &b)
compare that two bit sets have the same set bits (they can be equal even if sizes are distinct but la...
friend std::istream & operator>>(std::istream &s, Line &l)
Definition MRLine.h:48
typename V::ValueType T
Definition MRLine.h:17
const Line & operator+() const
returns same representation
Definition MRLine.h:36
T distanceSq(const V &x) const
returns squared distance from given point to this line
Definition MRLine.h:30
constexpr Line(const Line< U > &l) noexcept
Definition MRLine.h:24
Line operator-() const
returns same line represented with flipped direction of d-vector
Definition MRLine.h:34
constexpr Line() noexcept=default
friend std::ostream & operator<<(std::ostream &s, const Line &l)
Definition MRLine.h:43
V operator()(T param) const
returns point on the line, where param=0 returns p and param=1 returns p+d
Definition MRLine.h:27
V d
Definition MRLine.h:19
Line< V > transformed(const Line< V > &l, const AffineXf< V > &xf)
Definition MRLine.h:61
M A
Definition MRAffineXf.h:30
Line normalized() const
returns same line represented with unit d-vector
Definition MRLine.h:38
V p
Definition MRLine.h:19
V project(const V &x) const
finds the closest point on line
Definition MRLine.h:41
only for bindings generation
Definition MRCameraOrientationPlugin.h:8
Definition MRAffineXf.h:26