ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
cloudViewer::utility::IntersectionTest Class Reference

#include <IntersectionTest.h>

Static Public Member Functions

static bool AABBAABB (const Eigen::Vector3d &min0, const Eigen::Vector3d &max0, const Eigen::Vector3d &min1, const Eigen::Vector3d &max1)
 
static bool TriangleTriangle3d (const Eigen::Vector3d &p0, const Eigen::Vector3d &p1, const Eigen::Vector3d &p2, const Eigen::Vector3d &q0, const Eigen::Vector3d &q1, const Eigen::Vector3d &q2)
 
static bool TriangleAABB (const Eigen::Vector3d &box_center, const Eigen::Vector3d &box_half_size, const Eigen::Vector3d &vert0, const Eigen::Vector3d &vert1, const Eigen::Vector3d &vert2)
 
static bool PointsCoplanar (const Eigen::Vector3d &p0, const Eigen::Vector3d &p1, const Eigen::Vector3d &p2, const Eigen::Vector3d &p3)
 Tests if the given four points all lie on the same plane. More...
 
static double LinesMinimumDistance (const Eigen::Vector3d &p0, const Eigen::Vector3d &p1, const Eigen::Vector3d &q0, const Eigen::Vector3d &q1)
 
static double LineSegmentsMinimumDistance (const Eigen::Vector3d &p0, const Eigen::Vector3d &p1, const Eigen::Vector3d &q0, const Eigen::Vector3d &q1)
 

Detailed Description

Definition at line 17 of file IntersectionTest.h.

Member Function Documentation

◆ AABBAABB()

bool cloudViewer::utility::IntersectionTest::AABBAABB ( const Eigen::Vector3d &  min0,
const Eigen::Vector3d &  max0,
const Eigen::Vector3d &  min1,
const Eigen::Vector3d &  max1 
)
static

Definition at line 16 of file IntersectionTest.cpp.

◆ LineSegmentsMinimumDistance()

double cloudViewer::utility::IntersectionTest::LineSegmentsMinimumDistance ( const Eigen::Vector3d &  p0,
const Eigen::Vector3d &  p1,
const Eigen::Vector3d &  q0,
const Eigen::Vector3d &  q1 
)
static

Computes the minimum distance between two line segments. The first line segment is defined by 3D points

Parameters
p0and
p1,thesecond line segment is defined by 3D points
q0and
q1.This implementation is based on the description of David Eberly (https://www.geometrictools.com/Documentation/DistanceLine3Line3.pdf).

Definition at line 117 of file IntersectionTest.cpp.

References dist().

◆ LinesMinimumDistance()

double cloudViewer::utility::IntersectionTest::LinesMinimumDistance ( const Eigen::Vector3d &  p0,
const Eigen::Vector3d &  p1,
const Eigen::Vector3d &  q0,
const Eigen::Vector3d &  q1 
)
static

Computes the minimum distance between two lines. The first line is defined by 3D points

Parameters
p0and
p1,thesecond line is defined by 3D points
q0and
q1.The returned distance is negative if no minimum distance can be computed. This implementation is based on the description of Paul Bourke (http://paulbourke.net/geometry/pointlineplane/).

Definition at line 76 of file IntersectionTest.cpp.

References abs(), dist(), and cloudViewer::ml::contrib::EPS.

◆ PointsCoplanar()

bool cloudViewer::utility::IntersectionTest::PointsCoplanar ( const Eigen::Vector3d &  p0,
const Eigen::Vector3d &  p1,
const Eigen::Vector3d &  p2,
const Eigen::Vector3d &  p3 
)
static

Tests if the given four points all lie on the same plane.

Definition at line 69 of file IntersectionTest.cpp.

References cross().

◆ TriangleAABB()

bool cloudViewer::utility::IntersectionTest::TriangleAABB ( const Eigen::Vector3d &  box_center,
const Eigen::Vector3d &  box_half_size,
const Eigen::Vector3d &  vert0,
const Eigen::Vector3d &  vert1,
const Eigen::Vector3d &  vert2 
)
static

Definition at line 56 of file IntersectionTest.cpp.

◆ TriangleTriangle3d()

bool cloudViewer::utility::IntersectionTest::TriangleTriangle3d ( const Eigen::Vector3d &  p0,
const Eigen::Vector3d &  p1,
const Eigen::Vector3d &  p2,
const Eigen::Vector3d &  q0,
const Eigen::Vector3d &  q1,
const Eigen::Vector3d &  q2 
)
static

Definition at line 32 of file IntersectionTest.cpp.


The documentation for this class was generated from the following files: