mirror of
https://github.com/hanetzer/sdraw_mods_cvr.git
synced 2025-09-03 18:39:23 +00:00
Minor hands detection change
Update to latest LeapCSharp
This commit is contained in:
parent
f6d16f25b7
commit
8c8b8d2e99
4 changed files with 58 additions and 18 deletions
|
@ -12,7 +12,6 @@ namespace ml_lme_cvr
|
|||
static LeapMotionExtension ms_instance = null;
|
||||
|
||||
Leap.Controller m_leapController = null;
|
||||
long m_lastFrameId = 0;
|
||||
GestureMatcher.GesturesData m_gesturesData = null;
|
||||
|
||||
GameObject m_leapTrackingRoot = null;
|
||||
|
@ -101,26 +100,28 @@ namespace ml_lme_cvr
|
|||
|
||||
public override void OnUpdate()
|
||||
{
|
||||
if(Settings.Enabled && (m_leapController != null))
|
||||
if(Settings.Enabled)
|
||||
{
|
||||
for(int i = 0; i < GestureMatcher.GesturesData.ms_handsCount; i++)
|
||||
m_gesturesData.m_handsPresenses[i] = false;
|
||||
|
||||
Leap.Frame l_frame = m_leapController.Frame();
|
||||
if((l_frame != null) && (m_lastFrameId != l_frame.Id))
|
||||
if((m_leapController != null) && m_leapController.IsConnected)
|
||||
{
|
||||
m_lastFrameId = l_frame.Id;
|
||||
|
||||
GestureMatcher.GetGestures(l_frame, ref m_gesturesData);
|
||||
for(int i = 0; i < GestureMatcher.GesturesData.ms_handsCount; i++)
|
||||
Leap.Frame l_frame = m_leapController.Frame();
|
||||
if(l_frame != null)
|
||||
{
|
||||
if((m_leapHands[i] != null) && m_gesturesData.m_handsPresenses[i])
|
||||
GestureMatcher.GetGestures(l_frame, ref m_gesturesData);
|
||||
|
||||
for(int i = 0; i < GestureMatcher.GesturesData.ms_handsCount; i++)
|
||||
{
|
||||
Vector3 l_pos = m_gesturesData.m_handsPositons[i];
|
||||
Quaternion l_rot = m_gesturesData.m_handsRotations[i];
|
||||
ReorientateLeapToUnity(ref l_pos, ref l_rot, Settings.HmdMode);
|
||||
m_leapHands[i].transform.localPosition = l_pos;
|
||||
m_leapHands[i].transform.localRotation = l_rot;
|
||||
if((m_leapHands[i] != null) && m_gesturesData.m_handsPresenses[i])
|
||||
{
|
||||
Vector3 l_pos = m_gesturesData.m_handsPositons[i];
|
||||
Quaternion l_rot = m_gesturesData.m_handsRotations[i];
|
||||
ReorientateLeapToUnity(ref l_pos, ref l_rot, Settings.HmdMode);
|
||||
m_leapHands[i].transform.localPosition = l_pos;
|
||||
m_leapHands[i].transform.localRotation = l_rot;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
using System.Reflection;
|
||||
|
||||
[assembly: AssemblyTitle("LeapMotionExtension")]
|
||||
[assembly: AssemblyVersion("1.0.2")]
|
||||
[assembly: AssemblyFileVersion("1.0.2")]
|
||||
[assembly: AssemblyVersion("1.0.3")]
|
||||
[assembly: AssemblyFileVersion("1.0.3")]
|
||||
|
||||
[assembly: MelonLoader.MelonInfo(typeof(ml_lme_cvr.LeapMotionExtension), "LeapMotionExtension", "1.0.2", "SDraw", "https://github.com/SDraw")]
|
||||
[assembly: MelonLoader.MelonInfo(typeof(ml_lme_cvr.LeapMotionExtension), "LeapMotionExtension", "1.0.3", "SDraw", "https://github.com/SDraw")]
|
||||
[assembly: MelonLoader.MelonGame(null, "ChilloutVR")]
|
||||
[assembly: MelonLoader.MelonPlatform(MelonLoader.MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)]
|
||||
[assembly: MelonLoader.MelonPlatformDomain(MelonLoader.MelonPlatformDomainAttribute.CompatibleDomains.MONO)]
|
||||
|
|
20
ml_lme_cvr/vendor/LeapCSharp/Connection.cs
vendored
20
ml_lme_cvr/vendor/LeapCSharp/Connection.cs
vendored
|
@ -245,6 +245,18 @@ namespace LeapInternal
|
|||
_polster.Join();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the version of the currently installed Tracking Service.
|
||||
/// Might return 0.0.0 if no device is connected or it cannot get the current version.
|
||||
/// </summary>
|
||||
/// <returns>the current tracking service version</returns>
|
||||
public LEAP_VERSION GetCurrentServiceVersion()
|
||||
{
|
||||
LEAP_VERSION currentVersion = new LEAP_VERSION { major = 0, minor = 0, patch = 0 };
|
||||
LeapC.GetVersion(_leapConnection, eLeapVersionPart.eLeapVersionPart_ServerLibrary, ref currentVersion);
|
||||
return currentVersion;
|
||||
}
|
||||
|
||||
//Run in Polster thread, fills in object queues
|
||||
private void processMessages()
|
||||
{
|
||||
|
@ -586,7 +598,13 @@ namespace LeapInternal
|
|||
|
||||
private void handleLostDevice(ref LEAP_DEVICE_EVENT deviceMsg)
|
||||
{
|
||||
Device lost = _devices.FindDeviceByHandle(deviceMsg.device.handle);
|
||||
IntPtr deviceHandle;
|
||||
eLeapRS result = LeapC.OpenDevice(deviceMsg.device, out deviceHandle);
|
||||
if (result != eLeapRS.eLeapRS_Success)
|
||||
return;
|
||||
|
||||
//UnityEngine.Debug.Log("handleLostDevice: " + deviceHandle);
|
||||
Device lost = _devices.FindDeviceByHandle(deviceHandle);
|
||||
if (lost != null)
|
||||
{
|
||||
_devices.Remove(lost);
|
||||
|
|
21
ml_lme_cvr/vendor/LeapCSharp/Controller.cs
vendored
21
ml_lme_cvr/vendor/LeapCSharp/Controller.cs
vendored
|
@ -497,6 +497,27 @@ namespace Leap
|
|||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Checks whether a minimum or required tracking service version is installed.
|
||||
/// Gets the currently installed service version from the connection and checks whether
|
||||
/// the argument minServiceVersion is smaller or equal to it
|
||||
/// </summary>
|
||||
/// <param name="minServiceVersion">The minimum service version to check against</param>
|
||||
/// <returns></returns>
|
||||
public bool CheckRequiredServiceVersion(LEAP_VERSION minServiceVersion)
|
||||
{
|
||||
LEAP_VERSION currentServiceVersion = _connection.GetCurrentServiceVersion();
|
||||
|
||||
// check that minServiceVersion is smaller or equal to the current service version
|
||||
if (minServiceVersion.major < currentServiceVersion.major) return true;
|
||||
else if (minServiceVersion.major == currentServiceVersion.major)
|
||||
{
|
||||
if (minServiceVersion.minor < currentServiceVersion.minor) return true;
|
||||
else if (minServiceVersion.minor == currentServiceVersion.minor && minServiceVersion.patch <= currentServiceVersion.patch) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Requests setting a policy.
|
||||
///
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue