PhysicsBasedAnimationToolkit 0.0.10
Cross-platform C++20 library of algorithms and data structures commonly used in computer graphics research on physically-based simulation.
Loading...
Searching...
No Matches
pbat::sim::contact Namespace Reference

Namespace for contact detection algorithms. More...

Classes

class  Environment
 Static environment geometry for contact simulation. More...
 
class  MeshVertexTetrahedronDcd
 Discrete contact detection system for vertex-tetrahedron contacts between multiple tetrahedral meshes. More...
 
class  MultibodyMeshMixedCcdDcd
 Multibody triangle mesh continuous collision detection system. More...
 
struct  MultibodyTetrahedralMeshSystem
 Multibody Tetrahedral Mesh System. More...
 

Functions

template<math::linalg::mini::CMatrix TMatrixP, math::linalg::mini::CMatrix TMatrixNTB, math::linalg::mini::CMatrix TMatrixX1, math::linalg::mini::CMatrix TMatrixX2, math::linalg::mini::CMatrix TMatrixX3, math::linalg::mini::CMatrix TMatrixBary, math::linalg::mini::CMatrix TMatrixC>
PBAT_HOST_DEVICE void TriangleEnvironmentConstraint (TMatrixP const &P, TMatrixNTB const &NTB, TMatrixX1 const &X1, TMatrixX2 const &X2, TMatrixX3 const &X3, TMatrixBary const &bary, TMatrixC &C)
 Computes the constraint \( C(x) = \begin{bmatrix} N & T & B \end{bmatrix}^T (\begin{bmatrix} x_i & x_j & x_k \end{bmatrix} \beta - P) \in \mathbb{R}^3 \).
 
template<math::linalg::mini::CMatrix TMatrixP, math::linalg::mini::CMatrix TMatrixNTB, math::linalg::mini::CMatrix TMatrixX1, math::linalg::mini::CMatrix TMatrixX2, math::linalg::mini::CMatrix TMatrixX3, math::linalg::mini::CMatrix TMatrixBary, math::linalg::mini::CMatrix TMatrixC, math::linalg::mini::CMatrix TMatrixGradCT>
PBAT_HOST_DEVICE void TriangleEnvironmentConstraintAndGradient (TMatrixP const &P, TMatrixNTB const &NTB, TMatrixX1 const &X1, TMatrixX2 const &X2, TMatrixX3 const &X3, TMatrixBary const &bary, TMatrixC &C, TMatrixGradCT &gradCT)
 Computes constraint \( C(x) = \begin{bmatrix} N & T & B \end{bmatrix}^T (\begin{bmatrix} x_i & x_j & x_k \end{bmatrix} \beta - P) \in \mathbb{R}^3 \) and its gradient.
 

Detailed Description

Namespace for contact detection algorithms.

Function Documentation

◆ TriangleEnvironmentConstraint()

template<math::linalg::mini::CMatrix TMatrixP, math::linalg::mini::CMatrix TMatrixNTB, math::linalg::mini::CMatrix TMatrixX1, math::linalg::mini::CMatrix TMatrixX2, math::linalg::mini::CMatrix TMatrixX3, math::linalg::mini::CMatrix TMatrixBary, math::linalg::mini::CMatrix TMatrixC>
PBAT_HOST_DEVICE void pbat::sim::contact::TriangleEnvironmentConstraint ( TMatrixP const & P,
TMatrixNTB const & NTB,
TMatrixX1 const & X1,
TMatrixX2 const & X2,
TMatrixX3 const & X3,
TMatrixBary const & bary,
TMatrixC & C )

Computes the constraint \( C(x) = \begin{bmatrix} N & T & B \end{bmatrix}^T (\begin{bmatrix} x_i & x_j & x_k \end{bmatrix} \beta - P) \in \mathbb{R}^3 \).

where \( N, T, B \) are an orthonormal contact basis, \( P \) is its origin, \( x_i, x_j, x_k \) are triangle vertex positions in counter-clockwise order, and \( \beta \) are barycentric coordinates of the contact point on the triangle.

Template Parameters
TMatrixPMatrix type for \( P \)
TMatrixNTBMatrix type for \( \begin{bmatrix} N & T & B \end{bmatrix} \)
TMatrixX1Matrix type for \( x_i \)
TMatrixX2Matrix type for \( x_j \)
TMatrixX3Matrix type for \( x_k \)
TMatrixBaryMatrix type for \( bary \)
TMatrixCMatrix type for \( C \)
Parameters
P3 x 1 origin of the contact basis
NTB3 x 3 contact basis (normal, tangent, bitangent)
X13 x 1 vertex position \( x_i \)
X23 x 1 vertex position \( x_j \)
X33 x 1 vertex position \( x_k \)
bary3 x 1 barycentric coordinates of the contact point on the triangle
C3 x 1 constraint (vector) value

◆ TriangleEnvironmentConstraintAndGradient()

template<math::linalg::mini::CMatrix TMatrixP, math::linalg::mini::CMatrix TMatrixNTB, math::linalg::mini::CMatrix TMatrixX1, math::linalg::mini::CMatrix TMatrixX2, math::linalg::mini::CMatrix TMatrixX3, math::linalg::mini::CMatrix TMatrixBary, math::linalg::mini::CMatrix TMatrixC, math::linalg::mini::CMatrix TMatrixGradCT>
PBAT_HOST_DEVICE void pbat::sim::contact::TriangleEnvironmentConstraintAndGradient ( TMatrixP const & P,
TMatrixNTB const & NTB,
TMatrixX1 const & X1,
TMatrixX2 const & X2,
TMatrixX3 const & X3,
TMatrixBary const & bary,
TMatrixC & C,
TMatrixGradCT & gradCT )

Computes constraint \( C(x) = \begin{bmatrix} N & T & B \end{bmatrix}^T (\begin{bmatrix} x_i & x_j & x_k \end{bmatrix} \beta - P) \in \mathbb{R}^3 \) and its gradient.

Template Parameters
TMatrixPMatrix type for \( P \)
TMatrixNTBMatrix type for \( \begin{bmatrix} N & T & B \end{bmatrix} \)
TMatrixX1Matrix type for \( x_i \)
TMatrixX2Matrix type for \( x_j \)
TMatrixX3Matrix type for \( x_k \)
TMatrixBaryMatrix type for \( bary \)
TMatrixCMatrix type for \( C \)
TMatrixGradCTMatrix type for \( \nabla C \)
Parameters
P3 x 1 origin of the contact basis
NTB3 x 3 contact basis (normal, tangent, bitangent)
X13 x 1 vertex position \( x_i \)
X23 x 1 vertex position \( x_j \)
X33 x 1 vertex position \( x_k \)
bary3 x 1 barycentric coordinates of the contact point on the triangle
C3 x 1 constraint (vector) value
gradCT9 x 3 gradient of the constraint w.r.t. triangle vertex positions