35 lines
841 B
C#
35 lines
841 B
C#
using UnityEngine;
|
|
|
|
namespace Obi
|
|
{
|
|
public struct AffineTransform
|
|
{
|
|
public Vector4 translation;
|
|
public Vector4 scale;
|
|
public Quaternion rotation;
|
|
|
|
public AffineTransform(Vector4 translation, Quaternion rotation, Vector4 scale)
|
|
{
|
|
// make sure there are good values in the 4th component:
|
|
translation[3] = 0;
|
|
scale[3] = 1;
|
|
|
|
this.translation = translation;
|
|
this.rotation = rotation;
|
|
this.scale = scale;
|
|
}
|
|
|
|
public void FromTransform(Transform source, bool is2D = false)
|
|
{
|
|
translation = source.position;
|
|
rotation = source.rotation;
|
|
scale = source.lossyScale;
|
|
|
|
if (is2D)
|
|
{
|
|
translation[2] = 0;
|
|
}
|
|
}
|
|
}
|
|
}
|