using System; using UnityEngine; [Serializable] public struct ObiBrushMirrorSettings { [Flags] public enum MirrorAxis { None = 0x0, X = 0x1, Y = 0x2, Z = 0x4 } public enum MirrorSpace { World = 0, Camera = 1 } public MirrorAxis axis; public MirrorSpace space; public Vector3 ToAxis() { uint m = (uint)axis; bool xMirror = (m & (uint)MirrorAxis.X) > 0; bool yMirror = (m & (uint)MirrorAxis.Y) > 0; bool zMirror = (m & (uint)MirrorAxis.Z) > 0; if (axis < 0 || ((int)axis > (int)MirrorAxis.X + (int)MirrorAxis.Y + (int)MirrorAxis.Z)) { return Vector3.one; } Vector3 reflection = Vector3.one; if (xMirror) reflection.x = -1f; if (yMirror) reflection.y = -1f; if (zMirror) reflection.z = -1f; return reflection; } }