Protfolio-Emanuel-Polsky / Assets / _Project / Code / PathFinding / Debug / DebugBox.cs
DebugBox.cs
Raw

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();
        }


    }
}