2023-08-24 10:54:59 +10:00
|
|
|
/* SPDX-FileCopyrightText: 2022 Blender Authors
|
|
|
|
|
*
|
|
|
|
|
* SPDX-License-Identifier: GPL-2.0-or-later */
|
2022-08-11 16:18:35 +02:00
|
|
|
|
2024-10-04 15:48:22 +02:00
|
|
|
#pragma once
|
|
|
|
|
|
2022-08-11 16:18:35 +02:00
|
|
|
/**
|
|
|
|
|
* Debug drawing of shapes.
|
|
|
|
|
*/
|
|
|
|
|
|
2024-10-04 15:48:22 +02:00
|
|
|
#include "common_debug_draw_lib.glsl"
|
|
|
|
|
#include "common_shape_lib.glsl"
|
2022-08-11 16:18:35 +02:00
|
|
|
|
|
|
|
|
void drw_debug(Box shape, vec4 color)
|
|
|
|
|
{
|
|
|
|
|
drw_debug_quad(shape.corners[0], shape.corners[1], shape.corners[2], shape.corners[3], color);
|
|
|
|
|
drw_debug_line(shape.corners[0], shape.corners[4], color);
|
|
|
|
|
drw_debug_line(shape.corners[1], shape.corners[5], color);
|
|
|
|
|
drw_debug_line(shape.corners[2], shape.corners[6], color);
|
|
|
|
|
drw_debug_line(shape.corners[3], shape.corners[7], color);
|
|
|
|
|
drw_debug_quad(shape.corners[4], shape.corners[5], shape.corners[6], shape.corners[7], color);
|
|
|
|
|
}
|
|
|
|
|
void drw_debug(Box shape)
|
|
|
|
|
{
|
|
|
|
|
drw_debug(shape, drw_debug_default_color);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void drw_debug(Frustum shape, vec4 color)
|
|
|
|
|
{
|
|
|
|
|
drw_debug_quad(shape.corners[0], shape.corners[1], shape.corners[2], shape.corners[3], color);
|
|
|
|
|
drw_debug_line(shape.corners[0], shape.corners[4], color);
|
|
|
|
|
drw_debug_line(shape.corners[1], shape.corners[5], color);
|
|
|
|
|
drw_debug_line(shape.corners[2], shape.corners[6], color);
|
|
|
|
|
drw_debug_line(shape.corners[3], shape.corners[7], color);
|
|
|
|
|
drw_debug_quad(shape.corners[4], shape.corners[5], shape.corners[6], shape.corners[7], color);
|
|
|
|
|
}
|
|
|
|
|
void drw_debug(Frustum shape)
|
|
|
|
|
{
|
|
|
|
|
drw_debug(shape, drw_debug_default_color);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void drw_debug(Pyramid shape, vec4 color)
|
|
|
|
|
{
|
|
|
|
|
drw_debug_line(shape.corners[0], shape.corners[1], color);
|
|
|
|
|
drw_debug_line(shape.corners[0], shape.corners[2], color);
|
|
|
|
|
drw_debug_line(shape.corners[0], shape.corners[3], color);
|
|
|
|
|
drw_debug_line(shape.corners[0], shape.corners[4], color);
|
|
|
|
|
drw_debug_quad(shape.corners[1], shape.corners[2], shape.corners[3], shape.corners[4], color);
|
|
|
|
|
}
|
|
|
|
|
void drw_debug(Pyramid shape)
|
|
|
|
|
{
|
|
|
|
|
drw_debug(shape, drw_debug_default_color);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void drw_debug(Sphere shape, vec4 color)
|
|
|
|
|
{
|
|
|
|
|
drw_debug_sphere(shape.center, shape.radius, color);
|
|
|
|
|
}
|
|
|
|
|
void drw_debug(Sphere shape)
|
|
|
|
|
{
|
|
|
|
|
drw_debug(shape, drw_debug_default_color);
|
|
|
|
|
}
|