Space-Smash-Out/Assets/FishNet/Runtime/Object/TransformProperties.cs

138 lines
4.2 KiB
C#

using GameKit.Dependencies.Utilities;
using System.Runtime.CompilerServices;
using UnityEngine;
namespace FishNet.Object
{
[System.Serializable]
public class TransformPropertiesCls : IResettable
{
public Vector3 Position;
public Quaternion Rotation;
public Vector3 LocalScale;
public TransformPropertiesCls() { }
public TransformPropertiesCls(Vector3 position, Quaternion rotation, Vector3 localScale)
{
Position = position;
Rotation = rotation;
LocalScale = localScale;
}
public void InitializeState() { }
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void ResetState()
{
Update(Vector3.zero, Quaternion.identity, Vector3.zero);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void Update(Transform t)
{
Update(t.position, t.rotation, t.localScale);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void Update(TransformPropertiesCls tp)
{
Update(tp.Position, tp.Rotation, tp.LocalScale);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void Update(TransformProperties tp)
{
Update(tp.Position, tp.Rotation, tp.LocalScale);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void Update(Vector3 position, Quaternion rotation)
{
Update(position, rotation, LocalScale);
}
public void Update(Vector3 position, Quaternion rotation, Vector3 localScale)
{
Position = position;
Rotation = rotation;
LocalScale = localScale;
}
/// <summary>
/// Returns if this TransformProperties equals anothers values.
/// </summary>
public bool ValuesEquals(TransformPropertiesCls properties)
{
return (this.Position == properties.Position
&& this.Rotation == properties.Rotation
&& this.LocalScale == properties.LocalScale);
}
/// <summary>
/// Returns this classes values as the struct version of TransformProperties.
/// </summary>
/// <returns></returns>
public TransformProperties ToStruct()
{
TransformProperties result = new TransformProperties(Position, Rotation, LocalScale);
return result;
}
}
[System.Serializable]
public struct TransformProperties
{
public Vector3 Position;
public Quaternion Rotation;
public Vector3 LocalScale;
public TransformProperties(Vector3 position, Quaternion rotation, Vector3 localScale)
{
Position = position;
Rotation = rotation;
LocalScale = localScale;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void Reset()
{
Update(Vector3.zero, Quaternion.identity, Vector3.zero);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void Update(Transform t)
{
Update(t.position, t.rotation, t.localScale);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void Update(TransformProperties tp)
{
Update(tp.Position, tp.Rotation, tp.LocalScale);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void Update(Vector3 position, Quaternion rotation)
{
Update(position, rotation, LocalScale);
}
public void Update(Vector3 position, Quaternion rotation, Vector3 localScale)
{
Position = position;
Rotation = rotation;
LocalScale = localScale;
}
/// <summary>
/// Returns if this TransformProperties equals anothers values.
/// </summary>
public bool ValuesEquals(TransformProperties properties)
{
return (this.Position == properties.Position
&& this.Rotation == properties.Rotation
&& this.LocalScale == properties.LocalScale);
}
}
}