Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
File renamed without changes.
7 changes: 7 additions & 0 deletions LICENSE.md.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ MonoBehaviour:
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
Expand Down Expand Up @@ -274,6 +275,7 @@ MonoBehaviour:
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
Expand Down Expand Up @@ -410,6 +412,7 @@ MonoBehaviour:
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
Expand Down Expand Up @@ -623,6 +626,7 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
Expand Down Expand Up @@ -702,7 +706,7 @@ GameObject:
- component: {fileID: 7148892776856201653}
- component: {fileID: 6634393656915495675}
m_Layer: 5
m_Name: RegistartionUI
m_Name: RegistrationUI
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
Expand Down Expand Up @@ -776,7 +780,7 @@ MonoBehaviour:
m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96
m_DynamicPixelsPerUnit: 1
m_PresetInfoIsWorld: 0
m_PresetInfoIsWorld: 1
--- !u!114 &7148892776856201653
MonoBehaviour:
m_ObjectHideFlags: 0
Expand Down
File renamed without changes.
63 changes: 37 additions & 26 deletions Runtime/Scripts/RegistrationVrController.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
using System.Collections.Generic;
using System.Linq;
using UnityEngine;

/// <summary>
Expand All @@ -18,19 +17,24 @@ public class RegistrationVrController : MonoBehaviour
[SerializeField] private bool calibrateObject;
[HideInInspector] public GameObject controllerInUse;

private Calibrator _calibrator;
private Vector3 _tipPosition;
protected Calibrator _calibrator;
protected Vector3 _tipPosition;
private GameObject _demoObject;
private bool _isRecordingTipPosition;
private List<Vector3> _tipPositionsOverTime = new List<Vector3>();
private readonly List<Vector3> _tipPositionsOverTime = new List<Vector3>();
public readonly Vector3 PredefinedTipPosition = new Vector3(0.01211928f,-0.08250856f,-0.08393941f);

protected Handedness ControllerSelection => controllerSelection;
protected bool CalibrateObject => calibrateObject;
protected virtual float TipForwardOffset => 0.06f;

public enum Handedness
{
RightHanded,
LeftHanded
}

private void Awake()
protected virtual void Awake()
{
_calibrator = gameObject.AddComponent<Calibrator>();
SetupController();
Expand All @@ -41,7 +45,7 @@ private void Awake()
}


private void Start()
protected virtual void Start()
{
if (calibrateObject)
registration.SetState(Registration.State.Calibration);
Expand All @@ -50,7 +54,7 @@ private void Start()
_calibrator.SetRelativePostition(PredefinedTipPosition);
}

private void OnStateChanged()
protected virtual void OnStateChanged()
{
switch (registration.currentState)
{
Expand All @@ -66,18 +70,23 @@ private void OnStateChanged()
}
}

private void OnEnable()
protected virtual void OnEnable()
{
SetupController();
}

private void SetupController()
protected virtual void OnDisable()
{
}

protected virtual void SetupController()
{
controllerInUse = SearchForController(controllerSelection);
_calibrator.toCalibrate = controllerInUse;
if (_calibrator != null)
_calibrator.toCalibrate = controllerInUse;
}

private void Update()
protected virtual void Update()
{
if (registration.currentState == Registration.State.Inactive) return;
switch (registration.currentState)
Expand All @@ -94,7 +103,7 @@ private void Update()
}
}

private void CalibrationActions()
protected virtual void CalibrationActions()
{
UpdateTipPosition();
UpdateDemoObject();
Expand All @@ -110,7 +119,7 @@ private void CalibrationActions()

}

private void MarkerStateActions()
protected virtual void MarkerStateActions()
{
UpdateTipPosition();
UpdateDemoObject();
Expand All @@ -121,7 +130,7 @@ private void MarkerStateActions()
RightHandMarkerInteractions();
}

private void ConfirmationStateActions()
protected virtual void ConfirmationStateActions()
{
if (CommitButtonPressed())
{
Expand All @@ -135,37 +144,38 @@ private void ConfirmationStateActions()
}
}

private void UpdateTipPosition()
protected virtual void UpdateTipPosition()
{
if (calibrateObject)
_tipPosition = _calibrator.GetCalibratedCurrentPosition();
else if (controllerInUse != null)
_tipPosition = controllerInUse.transform.position + controllerInUse.transform.forward * 0.06f;
_tipPosition = controllerInUse.transform.position + controllerInUse.transform.forward * TipForwardOffset;
else
Debug.LogWarning("No Controller in Use!");
}

private void UpdateDemoObject()
protected virtual void UpdateDemoObject()
{
if (_demoObject == null) return;

_demoObject.transform.position = _tipPosition;
Helper.SetColor(_demoObject, Helper.GetColorForIndex(registration.markers.Count));
}

private void RightHandMarkerInteractions()
protected virtual void RightHandMarkerInteractions()
{
if (_isRecordingTipPosition && AnyTriggerUp()) EndRecordingTipPosition();
if (!_isRecordingTipPosition && AnyTriggerDown()) StartRecordingTipPosition();
if (CancelButtonPressed()) registration.ResetEverything();
}

private void StartRecordingTipPosition()
protected virtual void StartRecordingTipPosition()
{
_isRecordingTipPosition = true;
_tipPositionsOverTime.Clear();
}
private void EndRecordingTipPosition()

protected virtual void EndRecordingTipPosition()
{
if(_tipPositionsOverTime == null || _tipPositionsOverTime.Count < 1)return;
_isRecordingTipPosition = false;
Expand All @@ -175,39 +185,40 @@ private void EndRecordingTipPosition()
_tipPositionsOverTime.Clear();
registration.AddMarker(midPoint);
}
private GameObject SearchForController(Handedness handedness)

protected virtual GameObject SearchForController(Handedness handedness)
{
string controllerName =
handedness == Handedness.RightHanded ? "RightControllerAnchor" : "LeftControllerAnchor";
GameObject controllerToUse = GameObject.Find(controllerName);
return controllerToUse;
}

private void LeftHandMarkerInteractions()
protected virtual void LeftHandMarkerInteractions()
{
if (OVRInput.GetDown(OVRInput.Button.One, OVRInput.Controller.LTouch))
{
registration.RestoreLastPlacedAnchor();
}
}

private static bool CommitButtonPressed()
protected virtual bool CommitButtonPressed()
{
return OVRInput.GetDown(OVRInput.Button.One, OVRInput.Controller.RTouch);
}

private static bool CancelButtonPressed()
protected virtual bool CancelButtonPressed()
{
return OVRInput.GetDown(OVRInput.Button.Two, OVRInput.Controller.RTouch);
}

private static bool AnyTriggerDown()
protected virtual bool AnyTriggerDown()
{
return OVRInput.GetDown(OVRInput.Button.PrimaryHandTrigger, OVRInput.Controller.RTouch) ||
OVRInput.GetDown(OVRInput.Button.PrimaryIndexTrigger, OVRInput.Controller.RTouch);
}

private static bool AnyTriggerUp()
protected virtual bool AnyTriggerUp()
{
return OVRInput.GetUp(OVRInput.Button.PrimaryHandTrigger, OVRInput.Controller.RTouch) ||
OVRInput.GetUp(OVRInput.Button.PrimaryIndexTrigger, OVRInput.Controller.RTouch);
Expand Down