summaryrefslogtreecommitdiff
path: root/VRCSDK3Avatars/Assets/Resources/GestureManager/Scripts/Extra/TransformData.cs
diff options
context:
space:
mode:
authorFreya Murphy <freya@freyacat.org>2024-12-27 00:56:58 -0500
committerFreya Murphy <freya@freyacat.org>2024-12-27 00:58:02 -0500
commit799e6680d40119dc9c2a9e0b320054a40324bebe (patch)
treedbcd308d59eb6e4f937a5547dd77d9f91d4fec20 /VRCSDK3Avatars/Assets/Resources/GestureManager/Scripts/Extra/TransformData.cs
parentmove to self host (diff)
downloadunityprojects-799e6680d40119dc9c2a9e0b320054a40324bebe.tar.gz
unityprojects-799e6680d40119dc9c2a9e0b320054a40324bebe.tar.bz2
unityprojects-799e6680d40119dc9c2a9e0b320054a40324bebe.zip
VRCSDK3Avatars found!
Diffstat (limited to 'VRCSDK3Avatars/Assets/Resources/GestureManager/Scripts/Extra/TransformData.cs')
-rw-r--r--VRCSDK3Avatars/Assets/Resources/GestureManager/Scripts/Extra/TransformData.cs41
1 files changed, 41 insertions, 0 deletions
diff --git a/VRCSDK3Avatars/Assets/Resources/GestureManager/Scripts/Extra/TransformData.cs b/VRCSDK3Avatars/Assets/Resources/GestureManager/Scripts/Extra/TransformData.cs
new file mode 100644
index 00000000..58d59bb8
--- /dev/null
+++ b/VRCSDK3Avatars/Assets/Resources/GestureManager/Scripts/Extra/TransformData.cs
@@ -0,0 +1,41 @@
+using UnityEngine;
+
+namespace GestureManager.Scripts.Extra
+{
+ public class TransformData
+ {
+ private readonly Vector3 _position;
+ private readonly Quaternion _rotation;
+ private readonly Vector3 _localScale;
+
+ private TransformData(Vector3 p, Quaternion r, Vector3 s)
+ {
+ _position = p;
+ _rotation = r;
+ _localScale = s;
+ }
+
+ public TransformData(Transform t) : this(t.position, t.rotation, t.localScale)
+ {
+ }
+
+ public void AddTo(Transform t)
+ {
+ t.position += _position;
+ t.rotation = _rotation * t.rotation;
+ t.localScale += _localScale;
+ }
+
+ public TransformData Difference(Transform t) => new TransformData(t.position - _position, t.rotation * Quaternion.Inverse(_rotation), t.localScale - _localScale);
+ }
+
+ public static class Extensions
+ {
+ public static void ApplyTo(this Transform s, Transform t)
+ {
+ t.position = s.position;
+ t.rotation = s.rotation;
+ t.localScale = s.lossyScale;
+ }
+ }
+} \ No newline at end of file