You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
1.7 KiB
66 lines
1.7 KiB
using UnityEngine; |
|
|
|
|
|
namespace UnityEditor.Rendering.Universal |
|
{ |
|
internal static class FreeformPathPresets |
|
{ |
|
public static Vector3[] CreateSquare() |
|
{ |
|
Vector3[] returnPath = new Vector3[4] |
|
{ |
|
new Vector3(-0.5f, -0.5f), |
|
new Vector3(0.5f, -0.5f), |
|
new Vector3(0.5f, 0.5f), |
|
new Vector3(-0.5f, 0.5f) |
|
}; |
|
|
|
return returnPath; |
|
} |
|
|
|
public static Vector3[] CreateIsometricDiamond() |
|
{ |
|
Vector3[] returnPath = new Vector3[4] |
|
{ |
|
new Vector3(-0.5f, 0.0f), |
|
new Vector3(0.0f, -0.25f), |
|
new Vector3(0.5f, 0.0f), |
|
new Vector3(0.0f, 0.25f) |
|
}; |
|
|
|
return returnPath; |
|
} |
|
|
|
private static Vector3[] CreateShape(int vertices, float angleOffset) |
|
{ |
|
Vector3[] returnPath = new Vector3[vertices]; |
|
const float kRadius = 0.5f; |
|
|
|
for (int i = 0; i < vertices; i++) |
|
{ |
|
float angle = ((float)i * 2 * Mathf.PI / (float)vertices) + angleOffset; |
|
float x = kRadius * Mathf.Cos(angle); |
|
float y = kRadius * Mathf.Sin(angle); |
|
|
|
returnPath[i] = new Vector3(x, y); |
|
} |
|
|
|
return returnPath; |
|
} |
|
|
|
public static Vector3[] CreateCircle() |
|
{ |
|
return CreateShape(32, 0); |
|
} |
|
|
|
public static Vector3[] CreateHexagonFlatTop() |
|
{ |
|
return CreateShape(6, 0); |
|
} |
|
|
|
public static Vector3[] CreateHexagonPointedTop() |
|
{ |
|
return CreateShape(6, 0.5f * Mathf.PI); |
|
} |
|
} |
|
}
|
|
|