42 lines
1.3 KiB
C#

using UnityEngine;
namespace UniGLTF.Utils
{
public readonly struct TransformState
{
public Vector3 Position { get; }
public Vector3 LocalPosition { get; }
public Quaternion Rotation { get; }
public Quaternion LocalRotation { get; }
public Vector3 LocalScale { get; }
public TransformState(Vector3 position, Vector3 localPosition, Quaternion rotation, Quaternion localRotation, Vector3 localScale)
{
Position = position;
LocalPosition = localPosition;
Rotation = rotation;
LocalRotation = localRotation;
LocalScale = localScale;
}
public TransformState(Transform tf)
{
if (tf == null)
{
Position = Vector3.zero;
LocalPosition = Vector3.zero;
Rotation = Quaternion.identity;
LocalRotation = Quaternion.identity;
LocalScale = Vector3.one;
}
else
{
Position = tf.position;
LocalPosition = tf.localPosition;
Rotation = tf.rotation;
LocalRotation = tf.localRotation;
LocalScale = tf.localScale;
}
}
}
}