Skip to content

Commit 808ba16

Browse files
authored
Merge pull request #1508 from ultraleap/bug/UNITY-1246-DeviceTransform_Leap2_windows
include and use LeapC API for device transform available
2 parents baa51d8 + 4bb6eea commit 808ba16

File tree

8 files changed

+65
-13
lines changed

8 files changed

+65
-13
lines changed

Packages/Tracking Preview/package.json

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
{
22
"name": "com.ultraleap.tracking.preview",
3-
"version": "6.12.0",
3+
"version": "6.12.1",
44
"description": "Ultraleap Tracking Preview",
55
"displayName": "Ultraleap Tracking Preview",
66
"unity": "2021.3",
77
"license": "Apache-2.0",
88
"dependencies": {
9-
"com.ultraleap.tracking": "6.12.0",
9+
"com.ultraleap.tracking": "6.12.1",
1010
"com.unity.inputsystem": "1.5.0"
1111
},
1212
"keywords": [
@@ -23,8 +23,8 @@
2323
},
2424
"samples": [
2525
{
26-
"displayName": "Examples",
27-
"description": "A collection of examples for the Preview package",
26+
"displayName": "Preview Examples",
27+
"description": "A collection of examples for the Ultraleap Tracking Preview package",
2828
"path": "Examples~"
2929
}
3030
]

Packages/Tracking/CHANGELOG.md

+40
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,46 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
66

77
[docs-website]: https://docs.ultraleap.com/unity-api/ "Ultraleap Docs"
88

9+
## [6.12.1] - 28/09/23
10+
11+
### Tracking Client versions
12+
- Windows v5.16.0
13+
- MacOS v5.16.0
14+
- Android v5.16.0
15+
16+
### Fixed
17+
- (leapXRServiceProvider) Hands offset incorrectly on Windows when using Leap 2
18+
19+
### Known issues
20+
- Use of the LeapCSharp Config class is unavailable with v5.X tracking service
21+
- Repeatedly opening scenes can cause memory use increase
22+
- Currently the Ultraleap Hand Tracking feature for OpenXR requires the New and Legacy input systems to be enabled, to simultaneously use OpenXR and the Ultraleap Unity Plugin's features.
23+
- The OpenXR Leap Provider does not currently support the `Confidence` hand property (and will return fixed values)
24+
- After using Ultraleap OpenXR in Unity Editor, the tracking mode of device 0 will be set to HMD until the Unity Editor session ends. This can stop the testing of non-XR scenes until the Unity Editor is re-opened
25+
- Running both the Ultraleap XRHands Subsystem and another XRHands Subsystem at the same time causes unstable results. Only enable one at a time.
26+
27+
28+
## [6.12.0] - 12/09/23
29+
30+
### Added
31+
- (MRTK Support) Added an MRTK3 subsystem for using Leap tracking directly (non-OpenXR)
32+
33+
### Changed
34+
- (XRHands) XRHands subsystem will now use existing LeapXRServiceProviders found in the scene before considering generating new ones
35+
36+
### Fixed
37+
- (XRHands) XRHands double-translates tracking data causing XRI InputActions to be wrongly positioned when the XROrigin is moved
38+
39+
### Known issues
40+
- Use of the LeapCSharp Config class is unavailable with v5.X tracking service
41+
- Repeatedly opening scenes can cause memory use increase
42+
- Currently the Ultraleap Hand Tracking feature for OpenXR requires the New and Legacy input systems to be enabled, to simultaneously use OpenXR and the Ultraleap Unity Plugin's features.
43+
- The OpenXR Leap Provider does not currently support the `Confidence` hand property (and will return fixed values)
44+
- After using Ultraleap OpenXR in Unity Editor, the tracking mode of device 0 will be set to HMD until the Unity Editor session ends. This can stop the testing of non-XR scenes until the Unity Editor is re-opened
45+
- The OpenXR Leap Provider palm can be in unexpected position when using pre-1.4.3 OpenXR Layer. A workaround is to ensure you use 1.4.3 or newer - installed by the 5.12.0 or newer Tracking Service Installer
46+
- Running both the Ultraleap XRHands Subsystem and another XRHands Subsystem at the same time causes unstable results. Only enable one at a time.
47+
48+
949
## [6.12.0] - 12/09/23
1050

1151
### Added
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
version https://git-lfs.github.com/spec/v1
2-
oid sha256:17beab110ca59c2571da19d0defa40e2f150424623f756e983530e7c3f79b7a7
3-
size 6553848
2+
oid sha256:2c69374a1861ee2804d7a466419e73963f0f2836667ff484ab9d973578c765f0
3+
size 7320552

Packages/Tracking/Core/Runtime/Plugins/LeapCSharp/Device.cs

+9
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,15 @@ public Pose DevicePose
263263
return devicePose;
264264
}
265265

266+
bool deviceTransformAvailable = LeapC.GetDeviceTransformAvailable(Handle);
267+
268+
if (!deviceTransformAvailable)
269+
{
270+
devicePose = Pose.identity;
271+
poseSet = true;
272+
return Pose.identity;
273+
}
274+
266275
float[] data = new float[16];
267276
eLeapRS result = LeapC.GetDeviceTransform(Handle, data);
268277

Packages/Tracking/Core/Runtime/Plugins/LeapCSharp/LeapC.cs

+3
Original file line numberDiff line numberDiff line change
@@ -1052,6 +1052,9 @@ public static eLeapRS GetDeviceCount(IntPtr hConnection, out UInt32 deviceCount)
10521052
[DllImport("LeapC", EntryPoint = "LeapGetDeviceInfo", CharSet = CharSet.Ansi)]
10531053
public static extern eLeapRS GetDeviceInfo(IntPtr hDevice, ref LEAP_DEVICE_INFO info);
10541054

1055+
[DllImport("LeapC", EntryPoint = "LeapDeviceTransformAvailable")]
1056+
public static extern bool GetDeviceTransformAvailable(IntPtr hDevice);
1057+
10551058
[DllImport("LeapC", EntryPoint = "LeapGetDeviceTransform")]
10561059
public static extern eLeapRS GetDeviceTransform(IntPtr hDevice, [MarshalAs(UnmanagedType.LPArray, SizeConst = 16)] float[] transform);
10571060

Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
version https://git-lfs.github.com/spec/v1
2-
oid sha256:4da6b779439167c951080f1e2720544f091c2c1de9a448b9e1e831fd6c4cc6aa
3-
size 11808032
2+
oid sha256:fd734f979881e750792b988a6e263117baf013282e97ac07ee5f3fdda8e8fff2
3+
size 12090352
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
version https://git-lfs.github.com/spec/v1
2-
oid sha256:d7b2d7ac37f5a4ec6d931ff3e688b0fcc4b7c8016f40cf0beca64704b6eb3985
3-
size 11108144
2+
oid sha256:3e2c363d9f8ae2cad0fc7af3182b5bc5641d832e455b5c522ca76f98eb9f942a
3+
size 13313328

Packages/Tracking/package.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "com.ultraleap.tracking",
3-
"version": "6.12.0",
3+
"version": "6.12.1",
44
"description": "Ultraleap's Unity Plugin enables the data produced by Ultraleap tracking hardware to be used by developers inside their Unity projects. It includes various utilities and prefabs that make it as easy as possible to design and use hand tracking in XR projects",
55
"displayName": "Ultraleap Tracking",
66
"unity": "2021.3",
@@ -21,8 +21,8 @@
2121
},
2222
"samples": [
2323
{
24-
"displayName": "Examples",
25-
"description": "",
24+
"displayName": "Interaction Examples",
25+
"description": "A collection of XR and non-XR interaction examples for the Ultraleap Tracking package",
2626
"path": "Examples~"
2727
}
2828
]

0 commit comments

Comments
 (0)