private static Vector3 Quantize(Vector3 v, float step) { Vector3 s = new Vector3(Mathf.Sign(v.x), Mathf.Sign(v.y), Mathf.Sign(v.z)); v += 0.125f * step * Vector3.one; v = VectorUtil.CompDiv(v, 0.25f * step * Vector3.one); v = VectorUtil.Abs(v); v = new Vector3(Mathf.Floor(v.x), Mathf.Floor(v.y), Mathf.Floor(v.z)); v = VectorUtil.CompMul(s, v); return(v); }
public void Transform(Transform transform) { Vector3 center = transform.TransformPoint(Center); Vector3 extent = VectorUtil.CompMul(Extent, transform.localScale); if (transform.parent != null) { extent = VectorUtil.CompMul(extent, transform.parent.lossyScale); } Min = -extent; Max = extent; Rotate(transform.rotation); Min += center; Max += center; }