Topics | |
2d <-> 3d conversion | |
BestFit | |
Box | |
Constants | |
Contour | |
High Precision | |
Intersection | |
Matrix | |
Aligning Transform | |
Ray Box Intersection | |
Triangle intersection | |
Tuple Bindings | |
Vector | |
Classes | |
struct | MR::AffineXf< V > |
class | MR::QuadricApprox |
struct | MR::DenseBox |
class | MR::Histogram |
struct | MR::Line< V > |
struct | MR::Plane3< T > |
struct | MR::QuadraticForm< V > |
struct | MR::Quaternion< T > |
struct | MR::SegmPoint< T > |
encodes a point inside a line segment using relative distance in [0,1] More... | |
struct | MR::Sphere< V > |
struct | MR::TriPoint< T > |
encodes a point inside a triangle using barycentric coordinates More... | |
Functions | |
template<typename T > | |
AffineXf3< T > | MR::lookAt (const Vector3< T > ¢er, const Vector3< T > &eye, const Vector3< T > &up) |
computes rigid transformation xf | |
template<typename V > | |
Box< V > | MR::computeBoundingBox (const Vector< V, VertId > &points, VertId firstVert, VertId lastVert, const VertBitSet *region=nullptr, const AffineXf< V > *toWorld=nullptr) |
template<typename V > | |
Box< V > | MR::computeBoundingBox (const Vector< V, VertId > &points, const VertBitSet *region=nullptr, const AffineXf< V > *toWorld=nullptr) |
template<typename V > | |
Box< V > | MR::computeBoundingBox (const Vector< V, VertId > &points, const VertBitSet ®ion, const AffineXf< V > *toWorld=nullptr) |
MRMESH_API AffineXf3d | MR::makeRigidXf (const MeshPart &mp, const AffineXf3d &meshXf) |
template<typename T > | |
T | MR::circumcircleDiameterSq (const Vector3< T > &a, const Vector3< T > &b, const Vector3< T > &c) |
template<typename T > | |
T | MR::circumcircleDiameter (const Vector3< T > &a, const Vector3< T > &b, const Vector3< T > &c) |
template<typename T > | |
T | MR::minTriangleAngleSin (const Vector3< T > &a, const Vector3< T > &b, const Vector3< T > &c) |
template<typename T > | |
T | MR::triangleAspectRatio (const Vector3< T > &a, const Vector3< T > &b, const Vector3< T > &c) |
template<typename T > | |
T | MR::dihedralAngleSin (const Vector3< T > &leftNorm, const Vector3< T > &rightNorm, const Vector3< T > &edgeVec) |
template<typename T > | |
T | MR::dihedralAngleCos (const Vector3< T > &leftNorm, const Vector3< T > &rightNorm) |
template<typename T > | |
T | MR::dihedralAngle (const Vector3< T > &leftNorm, const Vector3< T > &rightNorm, const Vector3< T > &edgeVec) |
MRMESH_API bool | MR::ccw (const Vector2i &a, const Vector2i &b) |
MRMESH_API bool | MR::orient3d (const Vector3i &a, const Vector3i &b, const Vector3i &c) |
template<typename T > | |
Vector2< T > | MR::fromEigen (const Eigen::Matrix< T, 2, 1 > &ev) |
template<typename T > | |
Eigen::Matrix< T, 2, 1 > | MR::toEigen (const Vector2< T > &v) |
template<typename T > | |
Eigen::Matrix< T, 2, 2 > | MR::toEigen (const SymMatrix2< T > &m) |
template<typename T > | |
Eigen::Matrix< T, 2, 2 > | MR::toEigen (const Matrix2< T > &m) |
template<typename T > | |
Matrix2< T > | MR::fromEigen (const Eigen::Matrix< T, 2, 2 > &m) |
template<typename T > | |
Vector3< T > | MR::fromEigen (const Eigen::Matrix< T, 3, 1 > &ev) |
template<typename T > | |
Eigen::Matrix< T, 3, 1 > | MR::toEigen (const Vector3< T > &v) |
template<typename T > | |
Eigen::Matrix< T, 3, 3 > | MR::toEigen (const SymMatrix3< T > &m) |
template<typename T > | |
Eigen::Matrix< T, 3, 3 > | MR::toEigen (const Matrix3< T > &m) |
template<typename T > | |
Matrix3< T > | MR::fromEigen (const Eigen::Matrix< T, 3, 3 > &m) |
template<typename T > | |
Eigen::Matrix< T, 4, 4 > | MR::toEigen (const SymMatrix4< T > &m) |
template<typename T > | |
Eigen::Matrix< T, 4, 4 > | MR::toEigen (const Matrix4< T > &m) |
template<typename T > | |
Matrix4< T > | MR::fromEigen (const Eigen::Matrix< T, 4, 4 > &m) |
template<typename T > | |
Vector4< T > | MR::fromEigen (const Eigen::Matrix< T, 4, 1 > &ev) |
template<typename T > | |
Eigen::Matrix< T, 4, 1 > | MR::toEigen (const Vector4< T > &v) |
template<typename T > | |
Eigen::Matrix< T, 4, 1 > | MR::toEigen (const Vector3< T > &v, T w) |
template<typename T > | |
Quaternion< T > | MR::fromEigen (const Eigen::Quaternion< T > &eq) |
template<typename T > | |
Eigen::Quaternion< T > | MR::toEigen (const Quaternion< T > &q) |
MRMESH_API bool MR::ccw | ( | const Vector2i & | a, |
const Vector2i & | b ) |
return true if the smallest rotation from vector (a) to vector (b) is in counter-clock-wise direction; uses simulation-of-simplicity to avoid "vectors are collinear"
|
inlinenodiscard |
Computes the diameter of the triangle's ABC circumcircle
|
nodiscard |
Computes the squared diameter of the triangle's ABC circumcircle;
|
inline |
passes through all region points corresponding to set bits in region and finds the minimal bounding box containing all of them; if toWorld transformation is given then returns minimal bounding box in world space
|
inline |
passes through all region points corresponding to set bits in region (if provided) and finds the minimal bounding box containing all of them; if toWorld transformation is given then returns minimal bounding box in world space
Box< V > MR::computeBoundingBox | ( | const Vector< V, VertId > & | points, |
VertId | firstVert, | ||
VertId | lastVert, | ||
const VertBitSet * | region = nullptr, | ||
const AffineXf< V > * | toWorld = nullptr ) |
passes through all region points 1) in the range [firstVert, lastVert) 2) corresponding to set bits in region (if provided) and finds the minimal bounding box containing all of them; if toWorld transformation is given then returns minimal bounding box in world space
|
nodiscard |
given an edge direction between two faces with given normals (not necessary of unit length), computes the dihedral angle between the faces: 0 if both faces are in the same plane, positive if the faces form convex surface, negative if the faces form concave surface; please consider the usage of faster dihedralAngleSin(e) and dihedralAngleCos(e)
|
nodiscard |
given two face normals, computes cosine of dihedral angle between the faces: 1 if both faces are in the same plane, 0 if the surface makes right angle turn at the edge, -1 if the faces overlap one another
|
nodiscard |
given an edge direction between two faces with given normals, computes sine of dihedral angle between the faces: 0 if both faces are in the same plane, positive if the faces form convex surface, negative if the faces form concave surface
|
inlinenodiscard |
|
inlinenodiscard |
|
inlinenodiscard |
|
inlinenodiscard |
|
inlinenodiscard |
|
inlinenodiscard |
|
inlinenodiscard |
AffineXf3< T > MR::lookAt | ( | const Vector3< T > & | center, |
const Vector3< T > & | eye, | ||
const Vector3< T > & | up ) |
computes rigid transformation xf
xf.z - directed from center to eye
xf.x - directed orthogonal to up and xf.z
xf.y - directed orthogonal to xf.z and xf.x
xf(eye) = 0
|
nodiscard |
given a mesh part and its arbitrary transformation, computes and returns the rigid transformation that best approximates meshXf
|
nodiscard |
Computes sine of minimal angle in ABC triangle, which is equal to ratio of minimal edge length to circumcircle diameter
MRMESH_API bool MR::orient3d | ( | const Vector3i & | a, |
const Vector3i & | b, | ||
const Vector3i & | c ) |
returns true if the plane with orientated triangle ABC has 0 point at the left; uses simulation-of-simplicity to avoid "0 is exactly on plane"
|
inlinenodiscard |
|
inlinenodiscard |
|
inlinenodiscard |
|
inlinenodiscard |
|
inlinenodiscard |
|
inlinenodiscard |
|
inlinenodiscard |
|
inlinenodiscard |
|
inlinenodiscard |
|
inlinenodiscard |
|
inlinenodiscard |