PhysicsBasedAnimationToolkit 0.0.10
Cross-platform C++20 library of algorithms and data structures commonly used in computer graphics research on physically-based simulation.
|
This namespace contains functions to answer overlap queries. More...
Functions | |
template<mini::CMatrix TMatrixP, mini::CMatrix TMatrixL, mini::CMatrix TMatrixU> | |
PBAT_HOST_DEVICE bool | PointAxisAlignedBoundingBox (TMatrixP const &P, TMatrixL const &L, TMatrixU const &U) |
Tests for overlap between point P and axis-aligned bounding box (L,U) | |
template<mini::CMatrix TMatrixP, mini::CMatrix TMatrixA, mini::CMatrix TMatrixB, mini::CMatrix TMatrixC> | |
PBAT_HOST_DEVICE bool | PointTriangle (TMatrixP const &P, TMatrixA const &A, TMatrixB const &B, TMatrixC const &C) |
Tests for overlap between point P and triangle ABC. | |
template<mini::CMatrix TMatrixP, mini::CMatrix TMatrixA, mini::CMatrix TMatrixB, mini::CMatrix TMatrixC, mini::CMatrix TMatrixD> | |
PBAT_HOST_DEVICE bool | PointTetrahedron3D (TMatrixP const &P, TMatrixA const &A, TMatrixB const &B, TMatrixC const &C, TMatrixD const &D) |
Checks if point P is contained in tetrahedron ABCD, in at least 3D. | |
template<mini::CMatrix TMatrixC1, mini::CMatrix TMatrixC2> | |
PBAT_HOST_DEVICE bool | Spheres (TMatrixC1 const &C1, typename TMatrixC1::ScalarType R1, TMatrixC2 const &C2, typename TMatrixC2::ScalarType R2) |
Tests for overlap between sphere (C1,R1) and sphere (C2,R2). | |
template<mini::CMatrix TMatrixL1, mini::CMatrix TMatrixU1, mini::CMatrix TMatrixL2, mini::CMatrix TMatrixU2> | |
PBAT_HOST_DEVICE bool | AxisAlignedBoundingBoxes (TMatrixL1 const &L1, TMatrixU1 const &U1, TMatrixL2 const &L2, TMatrixU2 const &U2) |
Tests for overlap between axis-aligned bounding box (L1,U1) and axis-aligned bounding box (L2,U2) | |
template<mini::CMatrix TMatrixC, mini::CMatrix TMatrixL, mini::CMatrix TMatrixU> | |
PBAT_HOST_DEVICE bool | SphereAxisAlignedBoundingBox (TMatrixC const &C, typename TMatrixC::ScalarType R, TMatrixL const &L, TMatrixU const &U) |
Tests for overlap between sphere (c,r) and axis-aligned bounding box (low,up) | |
template<mini::CMatrix TMatrixP, mini::CMatrix TMatrixQ, mini::CMatrix TMatrixC> | |
PBAT_HOST_DEVICE bool | LineSegmentSphere (TMatrixP const &P, TMatrixQ const &Q, TMatrixC const &C, typename TMatrixC::ScalarType R) |
Tests for overlap between line segment PQ and sphere (C,R) | |
template<mini::CMatrix TMatrixP, mini::CMatrix TMatrixQ, mini::CMatrix TMatrixL, mini::CMatrix TMatrixU> | |
PBAT_HOST_DEVICE bool | LineSegmentAxisAlignedBoundingBox (TMatrixP const &P, TMatrixQ const &Q, TMatrixL const &L, TMatrixU const &U) |
Tests for overlap between line segment PQ and axis-aligned bounding box (L,U) | |
template<mini::CMatrix TMatrixP, mini::CMatrix TMatrixQ, mini::CMatrix TMatrixA, mini::CMatrix TMatrixB, mini::CMatrix TMatrixC> | |
PBAT_HOST_DEVICE bool | LineSegmentTriangle3D (TMatrixP const &P, TMatrixQ const &Q, TMatrixA const &A, TMatrixB const &B, TMatrixC const &C) |
Detects if the line segment PQ passes through the triangle ABC, in 3D. | |
template<mini::CMatrix TMatrixP, mini::CMatrix TMatrixQ, mini::CMatrix TMatrixA1, mini::CMatrix TMatrixB1, mini::CMatrix TMatrixC1, mini::CMatrix TMatrixA2, mini::CMatrix TMatrixB2, mini::CMatrix TMatrixC2> | |
PBAT_HOST_DEVICE bool | LineSegmentSweptTriangle3D (TMatrixP const &P, TMatrixQ const &Q, TMatrixA1 const &A1, TMatrixB1 const &B1, TMatrixC1 const &C1, TMatrixA2 const &A2, TMatrixB2 const &B2, TMatrixC2 const &C2) |
Tests overlap between line segment PQ and the swept volume spanned by linear interpolation of A1B1C1 to A2B2C2. | |
template<mini::CMatrix TMatrixP, mini::CMatrix TMatrixN, mini::CMatrix TMatrixL, mini::CMatrix TMatrixU> | |
PBAT_HOST_DEVICE bool | PlaneAxisAlignedBoundingBox (TMatrixP const &P, TMatrixN const &n, TMatrixL const &L, TMatrixU const &U) |
Tests for overlap between plane (P,n) and axis-aligned bounding box (low,up) | |
template<mini::CMatrix TMatrixA, mini::CMatrix TMatrixB, mini::CMatrix TMatrixC, mini::CMatrix TMatrixL, mini::CMatrix TMatrixU> | |
PBAT_HOST_DEVICE bool | TriangleAxisAlignedBoundingBox (TMatrixA const &A, TMatrixB const &B, TMatrixC const &C, TMatrixL const &L, TMatrixU const &U) |
Tests for overlap between triangle ABC and axis-aligned bounding box (low,up) | |
template<mini::CMatrix TMatrixA, mini::CMatrix TMatrixB, mini::CMatrix TMatrixC, mini::CMatrix TMatrixD, mini::CMatrix TMatrixL, mini::CMatrix TMatrixU> | |
PBAT_HOST_DEVICE bool | TetrahedronAxisAlignedBoundingBox (TMatrixA const &A, TMatrixB const &B, TMatrixC const &C, TMatrixD const &D, TMatrixL const &L, TMatrixU const &U) |
Tests for overlap between tetrahedron ABCD and axis-aligned bounding box (L,U), in at least 3D. | |
template<mini::CMatrix TMatrixA1, mini::CMatrix TMatrixB1, mini::CMatrix TMatrixC1, mini::CMatrix TMatrixA2, mini::CMatrix TMatrixB2, mini::CMatrix TMatrixC2> | |
PBAT_HOST_DEVICE bool | Triangles2D (TMatrixA1 const &A1, TMatrixB1 const &B1, TMatrixC1 const &C1, TMatrixA2 const &A2, TMatrixB2 const &B2, TMatrixC2 const &C2) |
Tests for overlap between triangle A1B1C1 and triangle A2B2C2, in 2D. | |
template<mini::CMatrix TMatrixA1, mini::CMatrix TMatrixB1, mini::CMatrix TMatrixC1, mini::CMatrix TMatrixA2, mini::CMatrix TMatrixB2, mini::CMatrix TMatrixC2> | |
PBAT_HOST_DEVICE bool | Triangles3D (TMatrixA1 const &A1, TMatrixB1 const &B1, TMatrixC1 const &C1, TMatrixA2 const &A2, TMatrixB2 const &B2, TMatrixC2 const &C2) |
Tests for overlap between triangle A1B1C1 and triangle A2B2C2, in 3D. | |
template<mini::CMatrix TMatrixA, mini::CMatrix TMatrixB, mini::CMatrix TMatrixC, mini::CMatrix TMatrixI, mini::CMatrix TMatrixJ, mini::CMatrix TMatrixK, mini::CMatrix TMatrixL> | |
PBAT_HOST_DEVICE bool | TriangleTetrahedron (TMatrixA const &A, TMatrixB const &B, TMatrixC const &C, TMatrixI const &I, TMatrixJ const &J, TMatrixK const &K, TMatrixL const &L) |
Tests for overlap between triangle ABC and tetrahedron IJKL, in at least 3D. | |
template<mini::CMatrix TMatrixA1, mini::CMatrix TMatrixB1, mini::CMatrix TMatrixC1, mini::CMatrix TMatrixD1, mini::CMatrix TMatrixA2, mini::CMatrix TMatrixB2, mini::CMatrix TMatrixC2, mini::CMatrix TMatrixD2> | |
PBAT_HOST_DEVICE bool | Tetrahedra (TMatrixA1 const &A1, TMatrixB1 const &B1, TMatrixC1 const &C1, TMatrixD1 const &D1, TMatrixA2 const &A2, TMatrixB2 const &B2, TMatrixC2 const &C2, TMatrixD2 const &D2) |
Tests for overlap between tetrahedron A1B1C1D1 and tetrahedron A2B2C2D2, in at least 3D. | |
template<mini::CMatrix TMatrixA, mini::CMatrix TMatrixB, mini::CMatrix TMatrixC, mini::CMatrix TMatrixSC> | |
PBAT_HOST_DEVICE bool | TriangleSphere (TMatrixA const &A, TMatrixB const &B, TMatrixC const &C, TMatrixSC const &SC, typename TMatrixSC::ScalarType R) |
Tests for overlap between a triangle ABC and a sphere with center SC of radius R. | |
template<mini::CMatrix TMatrixA, mini::CMatrix TMatrixB, mini::CMatrix TMatrixC, mini::CMatrix TMatrixD, mini::CMatrix TMatrixSC> | |
PBAT_HOST_DEVICE bool | TetrahedronSphere (TMatrixA const &A, TMatrixB const &B, TMatrixC const &C, TMatrixD const &D, TMatrixSC const &SC, typename TMatrixSC::ScalarType R) |
Tests for overlap between a tetrahedron ABCD and a sphere with center SC of radius R. | |
This namespace contains functions to answer overlap queries.
PBAT_HOST_DEVICE bool pbat::geometry::OverlapQueries::AxisAlignedBoundingBoxes | ( | TMatrixL1 const & | L1, |
TMatrixU1 const & | U1, | ||
TMatrixL2 const & | L2, | ||
TMatrixU2 const & | U2 ) |
Tests for overlap between axis-aligned bounding box (L1,U1) and axis-aligned bounding box (L2,U2)
TMatrixL1 | Matrix type of the lower bound of AABB 1 |
TMatrixU1 | Matrix type of the upper bound of AABB 1 |
TMatrixL2 | Matrix type of the lower bound of AABB 2 |
TMatrixU2 | Matrix type of the upper bound of AABB 2 |
L1 | The lower bound of AABB 1 |
U1 | The upper bound of AABB 1 |
L2 | The lower bound of AABB 2 |
U2 | The upper bound of AABB 2 |
PBAT_HOST_DEVICE bool pbat::geometry::OverlapQueries::LineSegmentAxisAlignedBoundingBox | ( | TMatrixP const & | P, |
TMatrixQ const & | Q, | ||
TMatrixL const & | L, | ||
TMatrixU const & | U ) |
Tests for overlap between line segment PQ and axis-aligned bounding box (L,U)
TMatrixP | Start point matrix type |
TMatrixQ | End point matrix type |
TMatrixL | Lower corner matrix type |
TMatrixU | Upper corner matrix type |
P | Start point of the line segment |
Q | End point of the line segment |
L | Lower corner of the box |
U | Upper corner of the box |
PBAT_HOST_DEVICE bool pbat::geometry::OverlapQueries::LineSegmentSphere | ( | TMatrixP const & | P, |
TMatrixQ const & | Q, | ||
TMatrixC const & | C, | ||
typename TMatrixC::ScalarType | R ) |
Tests for overlap between line segment PQ and sphere (C,R)
TMatrixP | Start point matrix type |
TMatrixQ | End point matrix type |
TMatrixC | Center matrix type |
P | Start point of the line segment |
Q | End point of the line segment |
C | Center of the sphere |
R | Radius of the sphere |
PBAT_HOST_DEVICE bool pbat::geometry::OverlapQueries::LineSegmentSweptTriangle3D | ( | TMatrixP const & | P, |
TMatrixQ const & | Q, | ||
TMatrixA1 const & | A1, | ||
TMatrixB1 const & | B1, | ||
TMatrixC1 const & | C1, | ||
TMatrixA2 const & | A2, | ||
TMatrixB2 const & | B2, | ||
TMatrixC2 const & | C2 ) |
Tests overlap between line segment PQ and the swept volume spanned by linear interpolation of A1B1C1 to A2B2C2.
TMatrixP | Start point matrix type |
TMatrixQ | End point matrix type |
TMatrixA1 | Matrix type of the vertex A1 of triangle 1 |
TMatrixB1 | Matrix type of the vertex B1 of triangle 1 |
TMatrixC1 | Matrix type of the vertex C1 of triangle 1 |
TMatrixA2 | Matrix type of the vertex A2 of triangle 2 |
TMatrixB2 | Matrix type of the vertex B2 of triangle 2 |
TMatrixC2 | Matrix type of the vertex C2 of triangle 2 |
P | Start point of the line segment |
Q | End point of the line segment |
A1 | Vertex A of triangle 1 |
B1 | Vertex B of triangle 1 |
C1 | Vertex C of triangle 1 |
A2 | Vertex A of triangle 2 |
B2 | Vertex B of triangle 2 |
C2 | Vertex C of triangle 2 |
PBAT_HOST_DEVICE bool pbat::geometry::OverlapQueries::LineSegmentTriangle3D | ( | TMatrixP const & | P, |
TMatrixQ const & | Q, | ||
TMatrixA const & | A, | ||
TMatrixB const & | B, | ||
TMatrixC const & | C ) |
Detects if the line segment PQ passes through the triangle ABC, in 3D.
TMatrixP | Matrix type of the start point of the line segment |
TMatrixQ | Matrix type of the end point of the line segment |
TMatrixA | Matrix type of the vertex A of the triangle |
TMatrixB | Matrix type of the vertex B of the triangle |
TMatrixC | Matrix type of the vertex C of the triangle |
P | Start point of the line segment |
Q | End point of the line segment |
A | Vertex A of the triangle |
B | Vertex B of the triangle |
C | Vertex C of the triangle |
PBAT_HOST_DEVICE bool pbat::geometry::OverlapQueries::PlaneAxisAlignedBoundingBox | ( | TMatrixP const & | P, |
TMatrixN const & | n, | ||
TMatrixL const & | L, | ||
TMatrixU const & | U ) |
Tests for overlap between plane (P,n) and axis-aligned bounding box (low,up)
TMatrixP | Point on the plane matrix type |
TMatrixN | Normal of the plane matrix type |
TMatrixL | Lower corner matrix type |
TMatrixU | Upper corner matrix type |
P | Point on the plane |
n | Normal of the plane |
L | Lower corner of the box |
U | Upper corner of the box |
PBAT_HOST_DEVICE bool pbat::geometry::OverlapQueries::PointAxisAlignedBoundingBox | ( | TMatrixP const & | P, |
TMatrixL const & | L, | ||
TMatrixU const & | U ) |
Tests for overlap between point P and axis-aligned bounding box (L,U)
TMatrixP | Point matrix type |
TMatrixL | Lower corner matrix type |
TMatrixU | Upper corner matrix type |
P | Point |
L | Lower corner of the box |
U | Upper corner of the box |
PBAT_HOST_DEVICE bool pbat::geometry::OverlapQueries::PointTetrahedron3D | ( | TMatrixP const & | P, |
TMatrixA const & | A, | ||
TMatrixB const & | B, | ||
TMatrixC const & | C, | ||
TMatrixD const & | D ) |
Checks if point P is contained in tetrahedron ABCD, in at least 3D.
TMatrixP | Point matrix type |
TMatrixA | Vertex A matrix type |
TMatrixB | Vertex B matrix type |
TMatrixC | Vertex C matrix type |
TMatrixD | Vertex D matrix type |
P | Point |
A | Vertex A of the tetrahedron |
B | Vertex B of the tetrahedron |
C | Vertex C of the tetrahedron |
D | Vertex D of the tetrahedron |
PBAT_HOST_DEVICE bool pbat::geometry::OverlapQueries::PointTriangle | ( | TMatrixP const & | P, |
TMatrixA const & | A, | ||
TMatrixB const & | B, | ||
TMatrixC const & | C ) |
Tests for overlap between point P and triangle ABC.
TMatrixP | Point matrix type |
TMatrixA | Vertex A matrix type |
TMatrixB | Vertex B matrix type |
TMatrixC | Vertex C matrix type |
P | Point |
A | Vertex A of the triangle |
B | Vertex B of the triangle |
C | Vertex C of the triangle |
PBAT_HOST_DEVICE bool pbat::geometry::OverlapQueries::SphereAxisAlignedBoundingBox | ( | TMatrixC const & | C, |
typename TMatrixC::ScalarType | R, | ||
TMatrixL const & | L, | ||
TMatrixU const & | U ) |
Tests for overlap between sphere (c,r) and axis-aligned bounding box (low,up)
TMatrixC | Center matrix type of the sphere |
TMatrixL | Lower corner matrix type of the box |
TMatrixU | Upper corner matrix type of the box |
C | Center of the sphere |
R | Radius of the sphere |
L | Lower corner of the box |
U | Upper corner of the box |
PBAT_HOST_DEVICE bool pbat::geometry::OverlapQueries::Spheres | ( | TMatrixC1 const & | C1, |
typename TMatrixC1::ScalarType | R1, | ||
TMatrixC2 const & | C2, | ||
typename TMatrixC2::ScalarType | R2 ) |
Tests for overlap between sphere (C1,R1) and sphere (C2,R2).
TMatrixC1 | Center matrix type of the first sphere |
TMatrixC2 | Center matrix type of the second sphere |
C1 | Center of the first sphere |
R1 | Radius of the first sphere |
C2 | Center of the second sphere |
R2 | Radius of the second sphere |
PBAT_HOST_DEVICE bool pbat::geometry::OverlapQueries::Tetrahedra | ( | TMatrixA1 const & | A1, |
TMatrixB1 const & | B1, | ||
TMatrixC1 const & | C1, | ||
TMatrixD1 const & | D1, | ||
TMatrixA2 const & | A2, | ||
TMatrixB2 const & | B2, | ||
TMatrixC2 const & | C2, | ||
TMatrixD2 const & | D2 ) |
Tests for overlap between tetrahedron A1B1C1D1 and tetrahedron A2B2C2D2, in at least 3D.
TMatrixA1 | Matrix type of vertex A1 of tetrahedron 1 |
TMatrixB1 | Matrix type of vertex B1 of tetrahedron 1 |
TMatrixC1 | Matrix type of vertex C1 of tetrahedron 1 |
TMatrixD1 | Matrix type of vertex D1 of tetrahedron 1 |
TMatrixA2 | Matrix type of vertex A2 of tetrahedron 2 |
TMatrixB2 | Matrix type of vertex B2 of tetrahedron 2 |
TMatrixC2 | Matrix type of vertex C2 of tetrahedron 2 |
TMatrixD2 | Matrix type of vertex D2 of tetrahedron 2 |
A1 | Vertex A of tetrahedron 1 |
B1 | Vertex B of tetrahedron 1 |
C1 | Vertex C of tetrahedron 1 |
D1 | Vertex D of tetrahedron 1 |
A2 | Vertex A of tetrahedron 2 |
B2 | Vertex B of tetrahedron 2 |
C2 | Vertex C of tetrahedron 2 |
D2 | Vertex D of tetrahedron 2 |
PBAT_HOST_DEVICE bool pbat::geometry::OverlapQueries::TetrahedronAxisAlignedBoundingBox | ( | TMatrixA const & | A, |
TMatrixB const & | B, | ||
TMatrixC const & | C, | ||
TMatrixD const & | D, | ||
TMatrixL const & | L, | ||
TMatrixU const & | U ) |
Tests for overlap between tetrahedron ABCD and axis-aligned bounding box (L,U), in at least 3D.
TMatrixA | Vertex A matrix type |
TMatrixB | Vertex B matrix type |
TMatrixC | Vertex C matrix type |
TMatrixD | Vertex D matrix type |
TMatrixL | Lower corner matrix type |
TMatrixU | Upper corner matrix type |
A | Vertex A of the tetrahedron |
B | Vertex B of the tetrahedron |
C | Vertex C of the tetrahedron |
D | Vertex D of the tetrahedron |
L | Lower corner of the box |
U | Upper corner of the box |
Our implementation is super inefficient for AABBs, because of all the known zeros that we are not exploiting. Because AABBs are axis aligned, their edges have many zeros, and cross product and dot product operations with these edges could save many floating point operations, but we don't do it... Fortunately, this implementation is valid for OBBs.
PBAT_HOST_DEVICE bool pbat::geometry::OverlapQueries::TetrahedronSphere | ( | TMatrixA const & | A, |
TMatrixB const & | B, | ||
TMatrixC const & | C, | ||
TMatrixD const & | D, | ||
TMatrixSC const & | SC, | ||
typename TMatrixSC::ScalarType | R ) |
Tests for overlap between a tetrahedron ABCD and a sphere with center SC of radius R.
TMatrixA | Vertex A matrix type |
TMatrixB | Vertex B matrix type |
TMatrixC | Vertex C matrix type |
TMatrixD | Vertex D matrix type |
TMatrixSC | Center matrix type of the sphere |
A | Vertex A of the tetrahedron |
B | Vertex B of the tetrahedron |
C | Vertex C of the tetrahedron |
D | Vertex D of the tetrahedron |
SC | Center of the sphere |
R | Radius of the sphere |
PBAT_HOST_DEVICE bool pbat::geometry::OverlapQueries::TriangleAxisAlignedBoundingBox | ( | TMatrixA const & | A, |
TMatrixB const & | B, | ||
TMatrixC const & | C, | ||
TMatrixL const & | L, | ||
TMatrixU const & | U ) |
Tests for overlap between triangle ABC and axis-aligned bounding box (low,up)
TMatrixA | Vertex A matrix type |
TMatrixB | Vertex B matrix type |
TMatrixC | Vertex C matrix type |
TMatrixL | Lower corner matrix type |
TMatrixU | Upper corner matrix type |
A | Vertex A of the triangle |
B | Vertex B of the triangle |
C | Vertex C of the triangle |
L | Lower corner of the box |
U | Upper corner of the box |
See [5] section 5.2.9
Our implementation is super inefficient for AABBs, because of all the known zeros that we are not exploiting. Because AABBs are axis aligned, their edges have many zeros, and cross product and dot product operations with these edges could save many floating point operations, but we don't do it... Fortunately, this implementation is valid for OBBs.
PBAT_HOST_DEVICE bool pbat::geometry::OverlapQueries::Triangles2D | ( | TMatrixA1 const & | A1, |
TMatrixB1 const & | B1, | ||
TMatrixC1 const & | C1, | ||
TMatrixA2 const & | A2, | ||
TMatrixB2 const & | B2, | ||
TMatrixC2 const & | C2 ) |
Tests for overlap between triangle A1B1C1 and triangle A2B2C2, in 2D.
TMatrixA1 | Matrix type of vertex A1 of triangle 1 |
TMatrixB1 | Matrix type of vertex B1 of triangle 1 |
TMatrixC1 | Matrix type of vertex C1 of triangle 1 |
TMatrixA2 | Matrix type of vertex A2 of triangle 2 |
TMatrixB2 | Matrix type of vertex B2 of triangle 2 |
TMatrixC2 | Matrix type of vertex C2 of triangle 2 |
A1 | Vertex A of triangle 1 |
B1 | Vertex B of triangle 1 |
C1 | Vertex C of triangle 1 |
A2 | Vertex A of triangle 2 |
B2 | Vertex B of triangle 2 |
C2 | Vertex C of triangle 2 |
PBAT_HOST_DEVICE bool pbat::geometry::OverlapQueries::Triangles3D | ( | TMatrixA1 const & | A1, |
TMatrixB1 const & | B1, | ||
TMatrixC1 const & | C1, | ||
TMatrixA2 const & | A2, | ||
TMatrixB2 const & | B2, | ||
TMatrixC2 const & | C2 ) |
Tests for overlap between triangle A1B1C1 and triangle A2B2C2, in 3D.
TMatrixA1 | Matrix type of vertex A1 of triangle 1 |
TMatrixB1 | Matrix type of vertex B1 of triangle 1 |
TMatrixC1 | Matrix type of vertex C1 of triangle 1 |
TMatrixA2 | Matrix type of vertex A2 of triangle 2 |
TMatrixB2 | Matrix type of vertex B2 of triangle 2 |
TMatrixC2 | Matrix type of vertex C2 of triangle 2 |
A1 | Vertex A of triangle 1 |
B1 | Vertex B of triangle 1 |
C1 | Vertex C of triangle 1 |
A2 | Vertex A of triangle 2 |
B2 | Vertex B of triangle 2 |
C2 | Vertex C of triangle 2 |
PBAT_HOST_DEVICE bool pbat::geometry::OverlapQueries::TriangleSphere | ( | TMatrixA const & | A, |
TMatrixB const & | B, | ||
TMatrixC const & | C, | ||
TMatrixSC const & | SC, | ||
typename TMatrixSC::ScalarType | R ) |
Tests for overlap between a triangle ABC and a sphere with center SC of radius R.
TMatrixA | Vertex A matrix type |
TMatrixB | Vertex B matrix type |
TMatrixC | Vertex C matrix type |
TMatrixSC | Center matrix type of the sphere |
A | Vertex A of the triangle |
B | Vertex B of the triangle |
C | Vertex C of the triangle |
SC | Center of the sphere |
R | Radius of the sphere |
PBAT_HOST_DEVICE bool pbat::geometry::OverlapQueries::TriangleTetrahedron | ( | TMatrixA const & | A, |
TMatrixB const & | B, | ||
TMatrixC const & | C, | ||
TMatrixI const & | I, | ||
TMatrixJ const & | J, | ||
TMatrixK const & | K, | ||
TMatrixL const & | L ) |
Tests for overlap between triangle ABC and tetrahedron IJKL, in at least 3D.
TMatrixA | Matrix type of vertex A of the triangle |
TMatrixB | Matrix type of vertex B of the triangle |
TMatrixC | Matrix type of vertex C of the triangle |
TMatrixI | Matrix type of vertex I of the tetrahedron |
TMatrixJ | Matrix type of vertex J of the tetrahedron |
TMatrixK | Matrix type of vertex K of the tetrahedron |
TMatrixL | Matrix type of vertex L of the tetrahedron |
A | Vertex A of the triangle |
B | Vertex B of the triangle |
C | Vertex C of the triangle |
I | Vertex I of the tetrahedron |
J | Vertex J of the tetrahedron |
K | Vertex K of the tetrahedron |
L | Vertex L of the tetrahedron |