21 constexpr Plane3() noexcept = default;
37 const auto len =
n.length();
40 const auto rlen = 1 / len;
57 return Plane3<T>{ ixf.
A.transposed() * pl.
n, pl.
d - dot( pl.
n, ixf.
b ) };
67 return invTransformed( plane, xf.
inverse() );
73 return a.
n == b.
n && a.
d == b.
d;
77[[nodiscard]]
inline bool operator != (
const Plane3<T> & a,
const Plane3<T> & b )
#define MR_REQUIRES_IF_SUPPORTED(...)
Definition MRMacros.h:31
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...
MR_BIND_IGNORE bool operator!=(const SetBitIteratorT< T > &a, const SetBitIteratorT< T > &b)
Definition MRMesh/MRBitSet.h:291
Definition MRMesh/MRAffineXf.h:14
constexpr AffineXf inverse() const noexcept
computes inverse transformation
V b
Definition MRMesh/MRAffineXf.h:19
M A
Definition MRMesh/MRAffineXf.h:18
constexpr Plane3() noexcept=default
Plane3 normalized() const
returns same plane represented with unit n-vector
Definition MRPlane3.h:35
Plane3< T > transformed(const Plane3< T > &plane, const AffineXf3< T > &xf)
Definition MRPlane3.h:65
Vector3< T > project(const Vector3< T > &p) const
finds the closest point on plane
Definition MRPlane3.h:45
T distance(const Vector3< T > &x) const
returns distance from given point to this plane (if n is a unit vector)
Definition MRPlane3.h:28
const Plane3 & operator+() const
returns same representation
Definition MRPlane3.h:33
Vector3< T > n
Definition MRPlane3.h:18
constexpr Plane3(const Plane3< U > &p) noexcept
Definition MRPlane3.h:24
T d
Definition MRPlane3.h:19
Plane3< T > invTransformed(const Plane3< T > &pl, const AffineXf3< T > &ixf)
Definition MRPlane3.h:55
Plane3 operator-() const
returns same plane represented with flipped direction of n-vector
Definition MRPlane3.h:31
static constexpr Plane3 fromDirAndPt(const Vector3< T > &n, const Vector3< T > &p)
Definition MRPlane3.h:25
Definition MRMesh/MRVector3.h:26
Definition MRMesh/MRVectorTraits.h:15