Skip to content

Commit ce74869

Browse files
committed
feat(C#): add CollisionActivePairList method
1 parent a346c9c commit ce74869

File tree

3 files changed

+47
-1
lines changed

3 files changed

+47
-1
lines changed

C#/API/IRoboDk.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -554,9 +554,15 @@ IItem AddCurve(Mat curvePoints, IItem referenceObject = null, bool addToRef = fa
554554
/// <summary>
555555
/// Returns the list of pairs of items that are in a collision state. This call will run a check for collisions if collision checking is not activated (if SetCollisionActive is set to Off).
556556
/// </summary>
557-
/// <returns></returns>
557+
/// <returns>List of items that are in a collision state</returns>
558558
List<CollisionPair> GetCollisionPairs();
559559

560+
/// <summary>
561+
/// Returns the list of pairs of items that are in a collision state.
562+
/// </summary>
563+
/// <returns>List of items that are in a collision state</returns>
564+
List<CollisionPair> CollisionActivePairList();
565+
560566
/// <summary>
561567
/// Set the simulation speed. A simulation speed of 5 (default) means that 1 second of simulation
562568
/// time equals to 5 seconds in a real application. The slowest speed ratio allowed is 0.001.

C#/API/RoboDK.cs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1296,6 +1296,25 @@ public List<CollisionPair> GetCollisionPairs()
12961296
return list_items;
12971297
}
12981298

1299+
/// <inheritdoc />
1300+
public List<CollisionPair> CollisionActivePairList()
1301+
{
1302+
check_connection();
1303+
send_line("Collision_GetPairList");
1304+
int nitems = rec_int();
1305+
List<CollisionPair> list_items = new List<CollisionPair>(nitems);
1306+
for (int i = 0; i < nitems; i++)
1307+
{
1308+
IItem item1 = rec_item();
1309+
int id1 = rec_int();
1310+
IItem item2 = rec_item();
1311+
int id2 = rec_int();
1312+
CollisionPair collisionPair = new CollisionPair(item1, id1, item2, id2);
1313+
list_items.Add(collisionPair);
1314+
}
1315+
check_status();
1316+
return list_items;
1317+
}
12991318

13001319
/// <inheritdoc />
13011320
public void SetSimulationSpeed(double speed)

C#/Example/RoboDKSampleProject/RoboDK.cs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3934,6 +3934,27 @@ public List<Item> CollisionItems(List<int> link_id_list = null)
39343934
return item_list;
39353935
}
39363936

3937+
/// <summary>
3938+
/// Returns the list of pairs of items that are in a collision state.
3939+
/// </summary>
3940+
/// <returns>List of items that are in a collision state</returns>
3941+
public List<Tuple<Item, Item, int, int>> CollisionActivePairList()
3942+
{
3943+
_check_connection();
3944+
_send_Line("Collision_GetPairList");
3945+
int nitems = _recv_Int();
3946+
List<Tuple<Item, Item, int, int>> list_items = new List<Tuple<Item, Item, int, int>>(nitems);
3947+
for (int i = 0; i < nitems; i++)
3948+
{
3949+
Item item1 = _recv_Item();
3950+
int id1 = _recv_Int();
3951+
Item item2 = _recv_Item();
3952+
int id2 = _recv_Int();
3953+
list_items.Add(new Tuple<Item, Item, int, int>(item1, item2, id1, id2));
3954+
}
3955+
_check_status();
3956+
return list_items;
3957+
}
39373958

39383959
/// <summary>
39393960
/// Sets the current simulation speed. Set the speed to 1 for a real-time simulation. The slowest speed allowed is 0.001 times the real speed. Set to a high value (>100) for fast simulation results.

0 commit comments

Comments
 (0)