Skip to content
This repository was archived by the owner on Oct 22, 2025. It is now read-only.

Commit f90e8c7

Browse files
committed
fix missing definition
1 parent 059cda0 commit f90e8c7

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

src/ipc/smooth_contact/collisions/smooth_collision.cpp

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,34 @@ SmoothCollisionTemplate<max_vert, PrimitiveA, PrimitiveB>::type() const
3131
return CollisionType::VertexVertex;
3232
}
3333

34+
template <int max_vert, typename PrimitiveA, typename PrimitiveB>
35+
std::string SmoothCollisionTemplate<max_vert, PrimitiveA, PrimitiveB>::name() const
36+
{
37+
if constexpr (
38+
std::is_same_v<PrimitiveA, Edge2> && std::is_same_v<PrimitiveB, Point2>)
39+
return "edge-vert";
40+
if constexpr (
41+
std::is_same_v<PrimitiveA, Point2>
42+
&& std::is_same_v<PrimitiveB, Point2>)
43+
return "vert-vert";
44+
if constexpr (
45+
std::is_same_v<PrimitiveA, Face> && std::is_same_v<PrimitiveB, Point3>)
46+
return "face-vert";
47+
if constexpr (
48+
std::is_same_v<PrimitiveA, Edge3> && std::is_same_v<PrimitiveB, Point3>)
49+
return "edge-vert";
50+
if constexpr (
51+
std::is_same_v<PrimitiveA, Edge3> && std::is_same_v<PrimitiveB, Edge3>)
52+
return "edge-edge";
53+
if constexpr (
54+
std::is_same_v<PrimitiveA, Point3>
55+
&& std::is_same_v<PrimitiveB, Point3>)
56+
return "vert-vert";
57+
58+
throw std::runtime_error("Invalid collision pair type!");
59+
return "vert-vert";
60+
}
61+
3462
template <int max_vert, typename PrimitiveA, typename PrimitiveB>
3563
auto SmoothCollisionTemplate<max_vert, PrimitiveA, PrimitiveB>::
3664
get_core_indices() const -> Vector<int, n_core_dofs>

0 commit comments

Comments
 (0)