|
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.
|
|
Namespace for contact detection algorithms.
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
-
TMatrixP | Matrix type for \( P \) |
TMatrixNTB | Matrix type for \( \begin{bmatrix} N & T & B \end{bmatrix} \) |
TMatrixX1 | Matrix type for \( x_i \) |
TMatrixX2 | Matrix type for \( x_j \) |
TMatrixX3 | Matrix type for \( x_k \) |
TMatrixBary | Matrix type for \( bary \) |
TMatrixC | Matrix type for \( C \) |
- Parameters
-
P | 3 x 1 origin of the contact basis |
NTB | 3 x 3 contact basis (normal, tangent, bitangent) |
X1 | 3 x 1 vertex position \( x_i \) |
X2 | 3 x 1 vertex position \( x_j \) |
X3 | 3 x 1 vertex position \( x_k \) |
bary | 3 x 1 barycentric coordinates of the contact point on the triangle |
C | 3 x 1 constraint (vector) value |
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
-
TMatrixP | Matrix type for \( P \) |
TMatrixNTB | Matrix type for \( \begin{bmatrix} N & T & B \end{bmatrix} \) |
TMatrixX1 | Matrix type for \( x_i \) |
TMatrixX2 | Matrix type for \( x_j \) |
TMatrixX3 | Matrix type for \( x_k \) |
TMatrixBary | Matrix type for \( bary \) |
TMatrixC | Matrix type for \( C \) |
TMatrixGradCT | Matrix type for \( \nabla C \) |
- Parameters
-
P | 3 x 1 origin of the contact basis |
NTB | 3 x 3 contact basis (normal, tangent, bitangent) |
X1 | 3 x 1 vertex position \( x_i \) |
X2 | 3 x 1 vertex position \( x_j \) |
X3 | 3 x 1 vertex position \( x_k \) |
bary | 3 x 1 barycentric coordinates of the contact point on the triangle |
C | 3 x 1 constraint (vector) value |
gradCT | 9 x 3 gradient of the constraint w.r.t. triangle vertex positions |