Skip to content

Commit 2e76d87

Browse files
committed
core: add tracy scoped zones for collide/distance/computePatch
1 parent 616864b commit 2e76d87

34 files changed

+170
-2
lines changed

include/coal/contact_patch/contact_patch_solver.hxx

+3
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@
4040
#include "coal/data_types.h"
4141
#include "coal/shape/geometric_shapes_traits.h"
4242

43+
#include "coal/tracy.hh"
44+
4345
namespace coal {
4446

4547
// ============================================================================
@@ -79,6 +81,7 @@ void ContactPatchSolver::computePatch(const ShapeType1& s1,
7981
const Transform3s& tf2,
8082
const Contact& contact,
8183
ContactPatch& contact_patch) const {
84+
COAL_TRACY_ZONE_SCOPED_N("coal::ContactPatchSolver::computePatch");
8285
// Note: `ContactPatch` is an alias for `SupportSet`.
8386
// Step 1
8487
constructContactPatchFrameFromContact(contact, contact_patch);

include/coal/internal/shape_shape_contact_patch_func.h

+9
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@
4343
#include "coal/contact_patch/contact_patch_solver.h"
4444
#include "coal/shape/geometric_shapes_traits.h"
4545

46+
#include "coal/tracy.hh"
47+
4648
namespace coal {
4749

4850
/// @brief Shape-shape contact patch computation.
@@ -140,6 +142,9 @@ void computePatchPlaneOrHalfspace(const OtherShapeType& s1,
140142
const ContactPatchSolver* csolver, \
141143
const ContactPatchRequest& request, \
142144
ContactPatchResult& result) { \
145+
COAL_TRACY_ZONE_SCOPED_N( \
146+
"coal::ComputeShapeShapeContactPatch<OtherShapeType, " \
147+
"PlaneOrHspace>::run"); \
143148
if (!collision_result.isCollision()) { \
144149
return; \
145150
} \
@@ -174,6 +179,9 @@ void computePatchPlaneOrHalfspace(const OtherShapeType& s1,
174179
const ContactPatchSolver* csolver, \
175180
const ContactPatchRequest& request, \
176181
ContactPatchResult& result) { \
182+
COAL_TRACY_ZONE_SCOPED_N( \
183+
"coal::ComputeShapeShapeContactPatch<PlaneOrHspace, " \
184+
"OtherShapeType>::run"); \
177185
if (!collision_result.isCollision()) { \
178186
return; \
179187
} \
@@ -255,6 +263,7 @@ void ShapeShapeContactPatch(const CollisionGeometry* o1, const Transform3s& tf1,
255263
const ContactPatchSolver* csolver,
256264
const ContactPatchRequest& request,
257265
ContactPatchResult& result) {
266+
COAL_TRACY_ZONE_SCOPED_N("coal::ShapeShapeContactPatch");
258267
return ComputeShapeShapeContactPatch<ShapeType1, ShapeType2>::run(
259268
o1, tf1, o2, tf2, collision_result, csolver, request, result);
260269
}

include/coal/internal/shape_shape_func.h

+4
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@
4545
#include "coal/narrowphase/narrowphase.h"
4646
#include "coal/shape/geometric_shapes_traits.h"
4747

48+
#include "coal/tracy.hh"
49+
4850
namespace coal {
4951

5052
template <typename ShapeType1, typename ShapeType2>
@@ -93,6 +95,7 @@ Scalar ShapeShapeDistance(const CollisionGeometry* o1, const Transform3s& tf1,
9395
const GJKSolver* nsolver,
9496
const DistanceRequest& request,
9597
DistanceResult& result) {
98+
COAL_TRACY_ZONE_SCOPED_N("coal::ShapeShapeDistance");
9699
return ShapeShapeDistancer<ShapeType1, ShapeType2>::run(
97100
o1, tf1, o2, tf2, nsolver, request, result);
98101
}
@@ -169,6 +172,7 @@ std::size_t ShapeShapeCollide(const CollisionGeometry* o1,
169172
const Transform3s& tf2, const GJKSolver* nsolver,
170173
const CollisionRequest& request,
171174
CollisionResult& result) {
175+
COAL_TRACY_ZONE_SCOPED_N("coal::ShapeShapeCollide");
172176
return ShapeShapeCollider<ShapeType1, ShapeType2>::run(
173177
o1, tf1, o2, tf2, nsolver, request, result);
174178
}

src/CMakeLists.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -255,8 +255,8 @@ if(COAL_USE_FLOAT_PRECISION)
255255
endif()
256256

257257
if(COAL_BUILD_WITH_TRACY)
258-
target_compile_definitions(${LIBRARY_NAME} INTERFACE COAL_TRACY_ENABLE)
259-
target_link_libraries(${LIBRARY_NAME} INTERFACE Tracy::TracyClient)
258+
target_compile_definitions(${LIBRARY_NAME} PUBLIC COAL_TRACY_ENABLE)
259+
target_link_libraries(${LIBRARY_NAME} PUBLIC Tracy::TracyClient)
260260
endif()
261261

262262
if(WIN32)

src/collision.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@
4040
#include "coal/collision_func_matrix.h"
4141
#include "coal/narrowphase/narrowphase.h"
4242

43+
#include "coal/tracy.hh"
44+
4345
namespace coal {
4446

4547
CollisionFunctionMatrix& getCollisionFunctionLookTable() {
@@ -68,6 +70,7 @@ std::size_t collide(const CollisionObject* o1, const CollisionObject* o2,
6870
std::size_t collide(const CollisionGeometry* o1, const Transform3s& tf1,
6971
const CollisionGeometry* o2, const Transform3s& tf2,
7072
const CollisionRequest& request, CollisionResult& result) {
73+
COAL_TRACY_ZONE_SCOPED_N("coal::collide");
7174
// If security margin is set to -infinity, return that there is no collision
7275
if (request.security_margin == -std::numeric_limits<Scalar>::infinity()) {
7376
result.clear();
@@ -160,6 +163,7 @@ std::size_t ComputeCollision::run(const Transform3s& tf1,
160163
const Transform3s& tf2,
161164
const CollisionRequest& request,
162165
CollisionResult& result) const {
166+
COAL_TRACY_ZONE_SCOPED_N("coal::ComputeCollision::run");
163167
// If security margin is set to -infinity, return that there is no collision
164168
if (request.security_margin == -std::numeric_limits<Scalar>::infinity()) {
165169
result.clear();

src/contact_patch.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@
3737
#include "coal/contact_patch.h"
3838
#include "coal/collision_utility.h"
3939

40+
#include "coal/tracy.hh"
41+
4042
namespace coal {
4143

4244
ContactPatchFunctionMatrix& getContactPatchFunctionLookTable() {
@@ -49,6 +51,7 @@ void computeContactPatch(const CollisionGeometry* o1, const Transform3s& tf1,
4951
const CollisionResult& collision_result,
5052
const ContactPatchRequest& request,
5153
ContactPatchResult& result) {
54+
COAL_TRACY_ZONE_SCOPED_N("coal::computeContactPatch");
5255
if (!collision_result.isCollision() || request.max_num_patch == 0) {
5356
// do nothing
5457
return;
@@ -140,6 +143,7 @@ void ComputeContactPatch::run(const Transform3s& tf1, const Transform3s& tf2,
140143
const CollisionResult& collision_result,
141144
const ContactPatchRequest& request,
142145
ContactPatchResult& result) const {
146+
COAL_TRACY_ZONE_SCOPED_N("coal::ComputeContactPatch::run");
143147
if (!collision_result.isCollision() || request.max_num_patch == 0) {
144148
// do nothing
145149
return;

src/distance.cpp

+3
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
#include "coal/distance_func_matrix.h"
4141
#include "coal/narrowphase/narrowphase.h"
4242

43+
#include "coal/tracy.hh"
4344

4445
namespace coal {
4546

@@ -58,6 +59,7 @@ Scalar distance(const CollisionObject* o1, const CollisionObject* o2,
5859
Scalar distance(const CollisionGeometry* o1, const Transform3s& tf1,
5960
const CollisionGeometry* o2, const Transform3s& tf2,
6061
const DistanceRequest& request, DistanceResult& result) {
62+
COAL_TRACY_ZONE_SCOPED_N("coal::distance");
6163
GJKSolver solver(request);
6264

6365
const DistanceFunctionMatrix& looktable = getDistanceFunctionLookTable();
@@ -137,6 +139,7 @@ ComputeDistance::ComputeDistance(const CollisionGeometry* o1,
137139
Scalar ComputeDistance::run(const Transform3s& tf1, const Transform3s& tf2,
138140
const DistanceRequest& request,
139141
DistanceResult& result) const {
142+
COAL_TRACY_ZONE_SCOPED_N("coal::ComputeDistance::run");
140143
Scalar res;
141144

142145
if (swap_geoms) {

src/distance/box_halfspace.cpp

+6
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@
4242
#include "coal/internal/shape_shape_func.h"
4343
#include "../narrowphase/details.h"
4444

45+
#include "coal/tracy.hh"
46+
4547
namespace coal {
4648
struct GJKSolver;
4749

@@ -54,6 +56,8 @@ Scalar ShapeShapeDistance<Box, Halfspace>(const CollisionGeometry* o1,
5456
const Transform3s& tf2,
5557
const GJKSolver*, const bool,
5658
Vec3s& p1, Vec3s& p2, Vec3s& normal) {
59+
COAL_TRACY_ZONE_SCOPED_N(
60+
"coal::internal::ShapeShapeDistance<Box, Halfspace>");
5761
const Box& s1 = static_cast<const Box&>(*o1);
5862
const Halfspace& s2 = static_cast<const Halfspace&>(*o2);
5963
const Scalar distance =
@@ -69,6 +73,8 @@ Scalar ShapeShapeDistance<Halfspace, Box>(const CollisionGeometry* o1,
6973
const Transform3s& tf2,
7074
const GJKSolver*, const bool,
7175
Vec3s& p1, Vec3s& p2, Vec3s& normal) {
76+
COAL_TRACY_ZONE_SCOPED_N(
77+
"coal::internal::ShapeShapeDistance<Halfspace, Box>");
7278
const Halfspace& s1 = static_cast<const Halfspace&>(*o1);
7379
const Box& s2 = static_cast<const Box&>(*o2);
7480
return details::halfspaceDistance(s1, tf1, s2, tf2, p1, p2, normal);

src/distance/box_plane.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@
4242
#include "coal/internal/shape_shape_func.h"
4343
#include "../narrowphase/details.h"
4444

45+
#include "coal/tracy.hh"
46+
4547
namespace coal {
4648
struct GJKSolver;
4749

@@ -53,6 +55,7 @@ Scalar ShapeShapeDistance<Box, Plane>(const CollisionGeometry* o1,
5355
const Transform3s& tf2, const GJKSolver*,
5456
const bool, Vec3s& p1, Vec3s& p2,
5557
Vec3s& normal) {
58+
COAL_TRACY_ZONE_SCOPED_N("coal::internal::ShapeShapeDistance<Box, Plane>");
5659
const Box& s1 = static_cast<const Box&>(*o1);
5760
const Plane& s2 = static_cast<const Plane&>(*o2);
5861
const Scalar distance =
@@ -68,6 +71,7 @@ Scalar ShapeShapeDistance<Plane, Box>(const CollisionGeometry* o1,
6871
const Transform3s& tf2, const GJKSolver*,
6972
const bool, Vec3s& p1, Vec3s& p2,
7073
Vec3s& normal) {
74+
COAL_TRACY_ZONE_SCOPED_N("coal::internal::ShapeShapeDistance<Plane, Box>");
7175
const Plane& s1 = static_cast<const Plane&>(*o1);
7276
const Box& s2 = static_cast<const Box&>(*o2);
7377
return details::planeDistance(s1, tf1, s2, tf2, p1, p2, normal);

src/distance/box_sphere.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@
4242
#include "coal/internal/shape_shape_func.h"
4343
#include "../narrowphase/details.h"
4444

45+
#include "coal/tracy.hh"
46+
4547
namespace coal {
4648
struct GJKSolver;
4749

@@ -53,6 +55,7 @@ Scalar ShapeShapeDistance<Box, Sphere>(const CollisionGeometry* o1,
5355
const Transform3s& tf2, const GJKSolver*,
5456
const bool, Vec3s& p1, Vec3s& p2,
5557
Vec3s& normal) {
58+
COAL_TRACY_ZONE_SCOPED_N("coal::internal::ShapeShapeDistance<Box, Sphere>");
5659
const Box& s1 = static_cast<const Box&>(*o1);
5760
const Sphere& s2 = static_cast<const Sphere&>(*o2);
5861
return details::boxSphereDistance(s1, tf1, s2, tf2, p1, p2, normal);
@@ -65,6 +68,7 @@ Scalar ShapeShapeDistance<Sphere, Box>(const CollisionGeometry* o1,
6568
const Transform3s& tf2, const GJKSolver*,
6669
const bool, Vec3s& p1, Vec3s& p2,
6770
Vec3s& normal) {
71+
COAL_TRACY_ZONE_SCOPED_N("coal::internal::ShapeShapeDistance<Sphere, Box>");
6872
const Sphere& s1 = static_cast<const Sphere&>(*o1);
6973
const Box& s2 = static_cast<const Box&>(*o2);
7074
const Scalar distance =

src/distance/capsule_capsule.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@
3535
#include "coal/shape/geometric_shapes.h"
3636
#include "coal/internal/shape_shape_func.h"
3737

38+
#include "coal/tracy.hh"
39+
3840
// Note that partial specialization of template functions is not allowed.
3941
// Therefore, two implementations with the default narrow phase solvers are
4042
// provided. If another narrow phase solver were to be used, the default
@@ -81,6 +83,8 @@ Scalar ShapeShapeDistance<Capsule, Capsule>(
8183
const CollisionGeometry* o1, const Transform3s& tf1,
8284
const CollisionGeometry* o2, const Transform3s& tf2, const GJKSolver*,
8385
const bool, Vec3s& wp1, Vec3s& wp2, Vec3s& normal) {
86+
COAL_TRACY_ZONE_SCOPED_N(
87+
"coal::internal::ShapeShapeDistance<Capsule, Capsule>");
8488
const Capsule* capsule1 = static_cast<const Capsule*>(o1);
8589
const Capsule* capsule2 = static_cast<const Capsule*>(o2);
8690

src/distance/capsule_halfspace.cpp

+6
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@
4242
#include "coal/internal/shape_shape_func.h"
4343
#include "../narrowphase/details.h"
4444

45+
#include "coal/tracy.hh"
46+
4547
namespace coal {
4648
struct GJKSolver;
4749

@@ -51,6 +53,8 @@ Scalar ShapeShapeDistance<Capsule, Halfspace>(
5153
const CollisionGeometry* o1, const Transform3s& tf1,
5254
const CollisionGeometry* o2, const Transform3s& tf2, const GJKSolver*,
5355
const bool, Vec3s& p1, Vec3s& p2, Vec3s& normal) {
56+
COAL_TRACY_ZONE_SCOPED_N(
57+
"coal::internal::ShapeShapeDistance<Capsule, Halfspace>");
5458
const Capsule& s1 = static_cast<const Capsule&>(*o1);
5559
const Halfspace& s2 = static_cast<const Halfspace&>(*o2);
5660
const Scalar distance =
@@ -64,6 +68,8 @@ Scalar ShapeShapeDistance<Halfspace, Capsule>(
6468
const CollisionGeometry* o1, const Transform3s& tf1,
6569
const CollisionGeometry* o2, const Transform3s& tf2, const GJKSolver*,
6670
const bool, Vec3s& p1, Vec3s& p2, Vec3s& normal) {
71+
COAL_TRACY_ZONE_SCOPED_N(
72+
"coal::internal::ShapeShapeDistance<Halfspace, Capsule>");
6773
const Halfspace& s1 = static_cast<const Halfspace&>(*o1);
6874
const Capsule& s2 = static_cast<const Capsule&>(*o2);
6975
return details::halfspaceDistance(s1, tf1, s2, tf2, p1, p2, normal);

src/distance/capsule_plane.cpp

+6
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@
4242
#include "coal/internal/shape_shape_func.h"
4343
#include "../narrowphase/details.h"
4444

45+
#include "coal/tracy.hh"
46+
4547
namespace coal {
4648
struct GJKSolver;
4749

@@ -53,6 +55,8 @@ Scalar ShapeShapeDistance<Capsule, Plane>(const CollisionGeometry* o1,
5355
const Transform3s& tf2,
5456
const GJKSolver*, const bool,
5557
Vec3s& p1, Vec3s& p2, Vec3s& normal) {
58+
COAL_TRACY_ZONE_SCOPED_N(
59+
"coal::internal::ShapeShapeDistance<Capsule, Plane>");
5660
const Capsule& s1 = static_cast<const Capsule&>(*o1);
5761
const Plane& s2 = static_cast<const Plane&>(*o2);
5862
const Scalar distance =
@@ -68,6 +72,8 @@ Scalar ShapeShapeDistance<Plane, Capsule>(const CollisionGeometry* o1,
6872
const Transform3s& tf2,
6973
const GJKSolver*, const bool,
7074
Vec3s& p1, Vec3s& p2, Vec3s& normal) {
75+
COAL_TRACY_ZONE_SCOPED_N(
76+
"coal::internal::ShapeShapeDistance<Plane, Capsule>");
7177
const Plane& s1 = static_cast<const Plane&>(*o1);
7278
const Capsule& s2 = static_cast<const Capsule&>(*o2);
7379
return details::planeDistance(s1, tf1, s2, tf2, p1, p2, normal);

src/distance/cone_halfspace.cpp

+6
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@
4242
#include "coal/internal/shape_shape_func.h"
4343
#include "../narrowphase/details.h"
4444

45+
#include "coal/tracy.hh"
46+
4547
namespace coal {
4648
struct GJKSolver;
4749

@@ -51,6 +53,8 @@ Scalar ShapeShapeDistance<Cone, Halfspace>(
5153
const CollisionGeometry* o1, const Transform3s& tf1,
5254
const CollisionGeometry* o2, const Transform3s& tf2, const GJKSolver*,
5355
const bool, Vec3s& p1, Vec3s& p2, Vec3s& normal) {
56+
COAL_TRACY_ZONE_SCOPED_N(
57+
"coal::internal::ShapeShapeDistance<Cone, Halfspace>");
5458
const Cone& s1 = static_cast<const Cone&>(*o1);
5559
const Halfspace& s2 = static_cast<const Halfspace&>(*o2);
5660
const Scalar distance =
@@ -64,6 +68,8 @@ Scalar ShapeShapeDistance<Halfspace, Cone>(
6468
const CollisionGeometry* o1, const Transform3s& tf1,
6569
const CollisionGeometry* o2, const Transform3s& tf2, const GJKSolver*,
6670
const bool, Vec3s& p1, Vec3s& p2, Vec3s& normal) {
71+
COAL_TRACY_ZONE_SCOPED_N(
72+
"coal::internal::ShapeShapeDistance<Halfspace, Cone>");
6773
const Halfspace& s1 = static_cast<const Halfspace&>(*o1);
6874
const Cone& s2 = static_cast<const Cone&>(*o2);
6975
return details::halfspaceDistance(s1, tf1, s2, tf2, p1, p2, normal);

src/distance/cone_plane.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@
4242
#include "coal/internal/shape_shape_func.h"
4343
#include "../narrowphase/details.h"
4444

45+
#include "coal/tracy.hh"
46+
4547
namespace coal {
4648
struct GJKSolver;
4749

@@ -53,6 +55,7 @@ Scalar ShapeShapeDistance<Cone, Plane>(const CollisionGeometry* o1,
5355
const Transform3s& tf2, const GJKSolver*,
5456
const bool, Vec3s& p1, Vec3s& p2,
5557
Vec3s& normal) {
58+
COAL_TRACY_ZONE_SCOPED_N("coal::internal::ShapeShapeDistance<Cone, Plane>");
5659
const Cone& s1 = static_cast<const Cone&>(*o1);
5760
const Plane& s2 = static_cast<const Plane&>(*o2);
5861
const Scalar distance =
@@ -68,6 +71,7 @@ Scalar ShapeShapeDistance<Plane, Cone>(const CollisionGeometry* o1,
6871
const Transform3s& tf2, const GJKSolver*,
6972
const bool, Vec3s& p1, Vec3s& p2,
7073
Vec3s& normal) {
74+
COAL_TRACY_ZONE_SCOPED_N("coal::internal::ShapeShapeDistance<Plane, Cone>");
7175
const Plane& s1 = static_cast<const Plane&>(*o1);
7276
const Cone& s2 = static_cast<const Cone&>(*o2);
7377
return details::planeDistance(s1, tf1, s2, tf2, p1, p2, normal);

src/distance/convex_halfspace.cpp

+6
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@
3939
#include "coal/internal/shape_shape_func.h"
4040
#include "../narrowphase/details.h"
4141

42+
#include "coal/tracy.hh"
43+
4244
namespace coal {
4345

4446
namespace internal {
@@ -47,6 +49,8 @@ Scalar ShapeShapeDistance<ConvexBase, Halfspace>(
4749
const CollisionGeometry* o1, const Transform3s& tf1,
4850
const CollisionGeometry* o2, const Transform3s& tf2, const GJKSolver*,
4951
const bool, Vec3s& p1, Vec3s& p2, Vec3s& normal) {
52+
COAL_TRACY_ZONE_SCOPED_N(
53+
"coal::internal::ShapeShapeDistance<ConvexBase, Halfspace>");
5054
const ConvexBase& s1 = static_cast<const ConvexBase&>(*o1);
5155
const Halfspace& s2 = static_cast<const Halfspace&>(*o2);
5256
const Scalar distance =
@@ -60,6 +64,8 @@ Scalar ShapeShapeDistance<Halfspace, ConvexBase>(
6064
const CollisionGeometry* o1, const Transform3s& tf1,
6165
const CollisionGeometry* o2, const Transform3s& tf2, const GJKSolver*,
6266
const bool, Vec3s& p1, Vec3s& p2, Vec3s& normal) {
67+
COAL_TRACY_ZONE_SCOPED_N(
68+
"coal::internal::ShapeShapeDistance<Halfspace, ConvexBase>");
6369
const Halfspace& s1 = static_cast<const Halfspace&>(*o1);
6470
const ConvexBase& s2 = static_cast<const ConvexBase&>(*o2);
6571
return details::halfspaceDistance(s1, tf1, s2, tf2, p1, p2, normal);

0 commit comments

Comments
 (0)