Pascal Serrarens 17741d862a First commit
2022-01-12 10:50:57 +01:00

89 lines
3.1 KiB
C#

using UnityEngine;
namespace Passer {
/// <summary>
/// The Cerebellum interface defines the interface to control
/// </summary>
public interface ICerebellum {
/// <summary>
/// Retrieve the target for the joint
/// </summary>
/// <param name="jointId">The identification of the joint</param>
/// <returns></returns>
ICerebellumTarget GetTarget(sbyte jointId);
/// <summary>
/// Retrieve the joint
/// </summary>
/// <param name="jointId">The identification of the joint</param>
/// <returns></returns>
ICerebellumJoint GetJoint(sbyte jointId);
}
/// <summary>
/// A joint target which is used to calculate how the joints need to move
/// </summary>
public interface ICerebellumTarget {
/// <summary>
/// The position of the target in world space
/// </summary>
/// The confidence will be set to 1 (maximum)
Vector3 position { get; set; }
/// <summary>
/// The position of the target in the local space of the parent joint
/// </summary>
/// The confidence will be set to 1 (maximum)
Vector3 localPosition { get; set; }
/// <summary>
/// The orientation of the target in world space
/// </summary>
/// The confidence will be set to 1 (maximum)
Quaternion orientation { get; set; }
/// <summary>
/// The orientation fo the target in the local space of the parent joint
/// </summary>
/// The confidence will be set to 1 (maximum)
Quaternion localOrientation { get; set; }
/// <summary>
/// Set the position of the target in world space with a confidence value
/// </summary>
/// <param name="position">The position of the target in world space</param>
/// <param name="confidence">The confidence of the position in the range 0..1</param>
void SetPosition(Vector3 position, float confidence);
/// <summary>
/// Set the orientation of the target in world space with a confidence value
/// </summary>
/// <param name="orientation">The orientation of the target in world space</param>
/// <param name="confidence">The confidence of the orientation in the range 0..1</param>
void SetOrientation(Quaternion orientation, float confidence);
}
/// <summary>
/// The joint itself
/// </summary>
public interface ICerebellumJoint {
/// <summary>
/// The position of the joint in world space
/// </summary>
Vector3 position { set; }
/// <summary>
/// The position of the joint in the local space of the parent joint
/// </summary>
Vector3 localPosition { get; }
/// <summary>
/// The orientation of the joint in world space
/// </summary>
Quaternion orientation { get; set; }
/// <summary>
/// The orientation of the joint in the local space of the parent joint
/// </summary>
Quaternion localOrientation { get; set; }
}
}