/// <summary> /// Center the world box so the CurrentValue will be at targetPosition /// </summary> /// <param name="targetPosition">the wanted position for CurrentValue, must be inside TargetBox</param> /// <param name="smoothChange">should the change in position be smoothed or should it happen abruptly</param> /// <returns>Return code that represent the status of the run</returns> public bool RecenterOnTargetPosition(UnityEngine.Vector3 targetPosition, bool smoothChange = true) { ReturnCode rc = m_transformer.RecenterOnTargetPosition(UnityConverter.ToFramework(targetPosition), smoothChange); if (!rc.IsError()) { WorldBox.CenterOffset = UnityConverter.ToUnity(m_transformer.WorldBox.CenterOffset); WorldBox.Dimensions = UnityConverter.ToUnity(m_transformer.WorldBox.Dimensions); TargetBox.CenterOffset = UnityConverter.ToUnity(m_transformer.TargetBox.CenterOffset); TargetBox.Dimensions = UnityConverter.ToUnity(m_transformer.TargetBox.Dimensions); return(true); } else { Debug.LogError(rc); return(false); } }
/// <summary> /// Copy changed parameters from unity to the framework /// </summary> private void SetParameterFromUnity() { m_transformer.TrackedObjectID = PersonOrPlayerID; m_transformer.UsePlayerID = UsePlayerID; m_transformer.SourceJoint = (Omek.JointID)SourceJoint; if (UseRelativeJoint) { m_transformer.SetBoxRelativeToJoint((Omek.JointID)JointRelativeTo); } else { m_transformer.SetBoxToAbsoluteCoordinates(); } m_transformer.WorldBox.CenterOffset = UnityConverter.ToFramework(WorldBox.CenterOffset); m_transformer.WorldBox.Dimensions = UnityConverter.ToFramework(WorldBox.Dimensions); m_transformer.TargetBox.CenterOffset = UnityConverter.ToFramework(TargetBox.CenterOffset); m_transformer.TargetBox.Dimensions = UnityConverter.ToFramework(TargetBox.Dimensions); m_transformer.MinConfidenceValue = (uint)MinConfidenceValue; m_transformer.SmoothFactor = SmoothFactor; m_transformer.InvertXAxis = InvertXAxis; m_transformer.InvertYAxis = !InvertYAxis; // y axis should be inverted between Unity and the Framework m_transformer.InvertZAxis = InvertZAxis; }
/// <summary> /// Returns an instance of a framework Movement box from this box's data /// </summary> /// <returns></returns> public OmekFramework.Common.BasicTypes.MovementBox ToFrameworkMovementBox() { return(new OmekFramework.Common.BasicTypes.MovementBox(UnityConverter.ToFramework(CenterOffset), UnityConverter.ToFramework(Dimensions))); }
private void OnEnable() { SetParameterFromUnity(); m_transformer.SetInitialPosition(UnityConverter.ToFramework(transform.localPosition)); }