using Unity.Burst;
using Unity.Collections;
using Unity.Mathematics;
using UnityEngine;
namespace GarmentButton.PathFinding
{
[BurstCompile]
public struct DebugBox
{
[BurstCompile]
public void Draw(float3 position, float size, Color color)
{
var halfSize = size / 2;
var vertices = new NativeArray<float3>(8, Allocator.Temp);
vertices[0] = position + new float3(-halfSize, -halfSize, -halfSize);
vertices[1] = position + new float3(halfSize, -halfSize, -halfSize);
vertices[2] = position + new float3(halfSize, -halfSize, halfSize);
vertices[3] = position + new float3(-halfSize, -halfSize, halfSize);
vertices[4] = position + new float3(-halfSize, halfSize, -halfSize);
vertices[5] = position + new float3(halfSize, halfSize, -halfSize);
vertices[6] = position + new float3(halfSize, halfSize, halfSize);
vertices[7] = position + new float3(-halfSize, halfSize, halfSize);
// Draw bottom face
Debug.DrawLine(vertices[0], vertices[1], color);
Debug.DrawLine(vertices[1], vertices[2], color);
Debug.DrawLine(vertices[2], vertices[3], color);
Debug.DrawLine(vertices[3], vertices[0], color);
// Draw top face
Debug.DrawLine(vertices[4], vertices[5], color);
Debug.DrawLine(vertices[5], vertices[6], color);
Debug.DrawLine(vertices[6], vertices[7], color);
Debug.DrawLine(vertices[7], vertices[4], color);
// Draw vertical lines
Debug.DrawLine(vertices[0], vertices[4], color);
Debug.DrawLine(vertices[1], vertices[5], color);
Debug.DrawLine(vertices[2], vertices[6], color);
Debug.DrawLine(vertices[3], vertices[7], color);
vertices.Dispose();
}
[BurstCompile]
public void Draw(float3 position, float size, Color color, float time)
{
var halfSize = size / 2;
NativeArray<float3> vertices = new NativeArray<float3>(8, Allocator.Temp);
vertices[0] = position + new float3(-halfSize, -halfSize, -halfSize);
vertices[1] = position + new float3(halfSize, -halfSize, -halfSize);
vertices[2] = position + new float3(halfSize, -halfSize, halfSize);
vertices[3] = position + new float3(-halfSize, -halfSize, halfSize);
vertices[4] = position + new float3(-halfSize, halfSize, -halfSize);
vertices[5] = position + new float3(halfSize, halfSize, -halfSize);
vertices[6] = position + new float3(halfSize, halfSize, halfSize);
vertices[7] = position + new float3(-halfSize, halfSize, halfSize);
// Draw bottom face
Debug.DrawLine(vertices[0], vertices[1], color, time);
Debug.DrawLine(vertices[1], vertices[2], color, time);
Debug.DrawLine(vertices[2], vertices[3], color, time);
Debug.DrawLine(vertices[3], vertices[0], color, time);
// Draw top face
Debug.DrawLine(vertices[4], vertices[5], color, time);
Debug.DrawLine(vertices[5], vertices[6], color, time);
Debug.DrawLine(vertices[6], vertices[7], color, time);
Debug.DrawLine(vertices[7], vertices[4], color, time);
// Draw vertical lines
Debug.DrawLine(vertices[0], vertices[4], color, time);
Debug.DrawLine(vertices[1], vertices[5], color, time);
Debug.DrawLine(vertices[2], vertices[6], color, time);
Debug.DrawLine(vertices[3], vertices[7], color, time);
vertices.Dispose();
}
}
}