Skip to content

Commit f65eb18

Browse files
Add NatNet 4.2 protocol support - quaternion field in rigid body descriptions (#7)
Add natnet 4.2 support with quaternion field in RigidBodyDescription Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: TimSchneider42 <25732590+TimSchneider42@users.noreply.github.com>
1 parent 6e3c90f commit f65eb18

1 file changed

Lines changed: 7 additions & 1 deletion

File tree

natnet/data_descriptions.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ class RigidBodyDescription(
5959
("id_num", int),
6060
("parent_id", int),
6161
("pos", Vec3),
62+
("quat", Optional[Vec4]),
6263
("markers", Tuple[RigidBodyMarkerDescription, ...]),
6364
),
6465
),
@@ -75,6 +76,11 @@ def read_from_buffer(
7576
parent_id = buffer.read_uint32()
7677
pos = buffer.read_float32_array(3)
7778

79+
# Version 4.2 and higher, rigid body has quaternion
80+
quat = (
81+
buffer.read_float32_array(4) if protocol_version >= Version(4, 2) else None
82+
)
83+
7884
# Version 3.0 and higher, rigid body marker information contained in description
7985
if protocol_version >= Version(3):
8086
marker_descriptions = RigidBodyMarkerDescription.read_array_from_buffer(
@@ -84,7 +90,7 @@ def read_from_buffer(
8490
marker_descriptions = []
8591

8692
return RigidBodyDescription(
87-
name, new_id, parent_id, pos, tuple(marker_descriptions)
93+
name, new_id, parent_id, pos, quat, tuple(marker_descriptions)
8894
)
8995

9096

0 commit comments

Comments
 (0)