Update documentation

This commit is contained in:
Pascal Serrarens 2022-07-01 14:57:29 +02:00
parent 188342a40f
commit d11396b8bc
5 changed files with 76 additions and 30 deletions

View File

@ -341,8 +341,8 @@ namespace Passer.Humanoid {
if (handSkeleton == null) if (handSkeleton == null)
return; return;
Transform thisBoneTransform = handSkeleton.GetBone(finger, fingerBone); Transform thisBoneTransform = handSkeleton.GetBoneTransform(finger, fingerBone);
Transform nextBoneTransform = handSkeleton.GetBone(finger, fingerBone + 1); Transform nextBoneTransform = handSkeleton.GetBoneTransform(finger, fingerBone + 1);
if (thisBoneTransform == null || nextBoneTransform == null) if (thisBoneTransform == null || nextBoneTransform == null)
return; return;

View File

@ -3,46 +3,60 @@ using UnityEngine;
namespace Passer.Tracking { namespace Passer.Tracking {
public class BodySkeleton : TrackerComponent { /// <summary>
/// The representation of a tracked body
/// </summary>
/// The bone hierarchy will be created below this transform at runtime.
public abstract class BodySkeleton : TrackerComponent {
/// <summary>
/// Determines whether the skeleton should be rendered
/// </summary>
public bool show = false; public bool show = false;
/// <summary>
/// The list of tracked bones
/// </summary>
protected List<TrackedBone> bones; protected List<TrackedBone> bones;
//protected static Material boneWhite; //protected static Material boneWhite;
#region Start #region Start
protected virtual void InitializeSkeleton() { /// <summary>
/// This function is used to intialize the tracked bones.
/// </summary>
protected abstract void InitializeSkeleton();
} // protected TrackedBone AddBone(string name, Transform parent) {
// GameObject boneGO = new GameObject(name);
// boneGO.transform.SetParent(parent, false);
// protected TrackedBone AddBone(string name, Transform parent) { // AddBoneRenderer(boneGO);
// GameObject boneGO = new GameObject(name);
// boneGO.transform.SetParent(parent, false);
// AddBoneRenderer(boneGO); // TrackedBone bone = new TrackedBone() {
// transform = boneGO.transform
// };
// return bone;
// }
// TrackedBone bone = new TrackedBone() { // protected void AddBoneRenderer(GameObject boneGO) {
// transform = boneGO.transform // LineRenderer boneRenderer = boneGO.AddComponent<LineRenderer>();
// }; // boneRenderer.startWidth = 0.01F;
// return bone; // boneRenderer.endWidth = 0.01F;
// } // boneRenderer.useWorldSpace = false;
// boneRenderer.SetPosition(0, Vector3.zero);
// protected void AddBoneRenderer(GameObject boneGO) { // boneRenderer.SetPosition(1, Vector3.zero);
// LineRenderer boneRenderer = boneGO.AddComponent<LineRenderer>(); // boneRenderer.generateLightingData = true;
// boneRenderer.startWidth = 0.01F; // boneRenderer.material = boneWhite;
// boneRenderer.endWidth = 0.01F; // }
// boneRenderer.useWorldSpace = false;
// boneRenderer.SetPosition(0, Vector3.zero);
// boneRenderer.SetPosition(1, Vector3.zero);
// boneRenderer.generateLightingData = true;
// boneRenderer.material = boneWhite;
// }
#endregion #endregion
#region Update #region Update
/// <summary>
/// Updates the rendering of the bones
/// </summary>
protected void UpdateSkeletonRender() { protected void UpdateSkeletonRender() {
if (bones == null) if (bones == null)
return; return;
@ -89,6 +103,11 @@ namespace Passer.Tracking {
#endregion Update #endregion Update
/// <summary>
/// Gets the transform of the tracked bone
/// </summary>
/// <param name="boneId">The requested bone</param>
/// <returns>The tracked bone transform or *null* if it does not exist</returns>
public Transform GetBoneTransform(Humanoid.Tracking.Bone boneId) { public Transform GetBoneTransform(Humanoid.Tracking.Bone boneId) {
TrackedBone trackedBone = GetBone(boneId); TrackedBone trackedBone = GetBone(boneId);
if (trackedBone == null) if (trackedBone == null)
@ -96,6 +115,11 @@ namespace Passer.Tracking {
return trackedBone.transform; return trackedBone.transform;
} }
/// <summary>
/// Gets the tracked bone
/// </summary>
/// <param name="boneId">The requested bone</param>
/// <returns>The tracked bone or *null* if it does not exist</returns>
public TrackedBone GetBone(Humanoid.Tracking.Bone boneId) { public TrackedBone GetBone(Humanoid.Tracking.Bone boneId) {
if (bones == null) if (bones == null)
return null; return null;

View File

@ -5,14 +5,24 @@ namespace Passer.Tracking {
using Passer.Humanoid.Tracking; using Passer.Humanoid.Tracking;
/// <summary> /// <summary>
/// Hand tracking skeleton /// The representation of a tracked hand
/// </summary> /// </summary>
/// The bone hierarchy will be created below this transform at runtime
public class HandSkeleton : SensorComponent { public class HandSkeleton : SensorComponent {
/// <summary>
/// True: this is a left hand. Fale: this is a right hand
/// </summary>
public bool isLeft; public bool isLeft;
/// <summary>
/// Determines whether this skeleton should be rendered
/// </summary>
public new bool show = false; public new bool show = false;
/// <summary>
/// The list of tracked bones
/// </summary>
protected List<TrackedBone> bones; protected List<TrackedBone> bones;
//protected static Material boneWhite; //protected static Material boneWhite;
@ -50,6 +60,9 @@ namespace Passer.Tracking {
#region Start #region Start
/// <summary>
/// This function is used to initialize the tracked bones
/// </summary>
protected virtual void InitializeSkeleton() { protected virtual void InitializeSkeleton() {
bones = new List<TrackedBone>(new TrackedBone[(int)BoneId.Count]); bones = new List<TrackedBone>(new TrackedBone[(int)BoneId.Count]);
@ -104,6 +117,9 @@ namespace Passer.Tracking {
#region Update #region Update
/// <summary>
/// Updates the rendering of the bones
/// </summary>
protected void UpdateSkeletonRender() { protected void UpdateSkeletonRender() {
if (bones == null) if (bones == null)
return; return;
@ -158,7 +174,13 @@ namespace Passer.Tracking {
return this.transform; return this.transform;
} }
public virtual Transform GetBone(Finger finger, FingerBone fingerBone) { /// <summary>
/// Gets the transform of the tracked bone
/// </summary>
/// <param name="finger">The requested finger</param>
/// <param name="fingerBone">The requested bone in the finger</param>
/// <returns>The tracked bon transform of *null* if it does not exist</returns>
public virtual Transform GetBoneTransform(Finger finger, FingerBone fingerBone) {
if (bones == null) if (bones == null)
return null; return null;

View File

@ -190,12 +190,12 @@ namespace Passer.Humanoid {
if (handSkeleton == null) if (handSkeleton == null)
return; return;
Transform thisBoneTransform = handSkeleton.GetBone(finger, fingerBone); Transform thisBoneTransform = handSkeleton.GetBoneTransform(finger, fingerBone);
if (thisBoneTransform == null) { if (thisBoneTransform == null) {
Debug.Log(finger + " " + fingerBone + " " + thisBoneTransform); Debug.Log(finger + " " + fingerBone + " " + thisBoneTransform);
return; return;
} }
Transform nextBoneTransform = handSkeleton.GetBone(finger, fingerBone + 1); Transform nextBoneTransform = handSkeleton.GetBoneTransform(finger, fingerBone + 1);
if (thisBoneTransform == null || nextBoneTransform == null) if (thisBoneTransform == null || nextBoneTransform == null)
return; return;

View File

@ -17,7 +17,7 @@
/// * \ref UnityXRTracker "UnityXR" /// * \ref UnityXRTracker "UnityXR"
/// * \ref LeapTracker "Leap Motion" /// * \ref LeapTracker "Leap Motion"
/// * \ref ViveTrackerDoc "Vive Tracker" /// * \ref ViveTrackerDoc "Vive Tracker"
/// * \ref PerceptionNeuronTracker "Perception Neuron" /// * \ref NeuronTracker "Perception Neuron"
/// ///
/// Input /// Input
/// ----- /// -----