17 public static class GeometryUtils {
22 public static Vector2 Square2Circle(
this Vector2 unitSquarePoint) {
23 var v = unitSquarePoint;
24 return v.Abs().CompMax() *
25 (v.CompMul(
Vector2.one * 2.0f + v.Abs())).normalized;
28 #region Runtime Gizmos
30 private static Drawer s_drawer;
37 public static void Render(
this Sphere sphere) {
39 if (TryGetDrawer(out drawer)) {
40 drawer.Sphere(sphere.center, sphere.radius);
44 public static void Render(
this Sphere sphere,
Color color) {
46 if (TryGetDrawer(out drawer)) {
48 drawer.Sphere(sphere.center, sphere.radius);
61 public static void Render(
this Point point,
Color? color,
float scale = 1f) {
63 if (TryGetDrawer(out drawer)) {
65 float finalScale = 0.01f * scale;
66 var pos = point.position;
69 drawer.color = color.GetValueOrDefault();
72 if (!color.HasValue) {
73 drawer.color =
Color.red;
75 drawer.Line(pos -
Vector3.right * finalScale,
76 pos +
Vector3.right * finalScale);
78 if (!color.HasValue) {
79 drawer.color =
Color.green;
81 drawer.Line(pos -
Vector3.up * finalScale,
84 if (!color.HasValue) {
85 drawer.color =
Color.blue;
87 drawer.Line(pos -
Vector3.forward * finalScale,
88 pos +
Vector3.forward * finalScale);
95 public static void RenderSphere(
this Point point,
Color? color,
float scale = 1f) {
97 if (TryGetDrawer(out drawer)) {
99 float finalScale = 0.01f * scale;
100 var pos = point.position;
102 if (color.HasValue) {
103 drawer.color = color.GetValueOrDefault();
106 drawer.Sphere(pos, finalScale);
116 private static bool TryGetDrawer(out Drawer drawer) {
117 drawer = Drawer.UnityDebugDrawer;