// --------------------------------------------------------------------------------------------------------------------
//
// Copyright (c) VRMADA, All rights reserved.
//
// --------------------------------------------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
using UnityEngine;
namespace UltimateXR.Avatar.Rig
{
///
/// Stores bone references of an Avatar's head.
///
[Serializable]
public class UxrAvatarHead
{
#region Inspector Properties/Serialized Fields
[SerializeField] private Transform _leftEye;
[SerializeField] private Transform _rightEye;
[SerializeField] private Transform _jaw;
[SerializeField] private Transform _head;
[SerializeField] private Transform _neck;
#endregion
#region Public Types & Data
///
/// Gets a sequence of all the non-null transforms in the head.
///
public IEnumerable Transforms
{
get
{
if (LeftEye != null)
{
yield return LeftEye;
}
if (RightEye != null)
{
yield return RightEye;
}
if (Jaw != null)
{
yield return Jaw;
}
if (Head != null)
{
yield return Head;
}
if (Neck != null)
{
yield return Neck;
}
}
}
///
/// Gets or sets the left eye transform.
///
public Transform LeftEye
{
get => _leftEye;
set => _leftEye = value;
}
///
/// Gets or sets the upper leg transform.
///
public Transform RightEye
{
get => _rightEye;
set => _rightEye = value;
}
///
/// Gets or sets the jaw transform.
///
public Transform Jaw
{
get => _jaw;
set => _jaw = value;
}
///
/// Gets or sets the head transform.
///
public Transform Head
{
get => _head;
set => _head = value;
}
///
/// Gets or sets the neck transform.
///
public Transform Neck
{
get => _neck;
set => _neck = value;
}
#endregion
}
}