2024-08-12 15:11:25 +00:00
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
// debugdraw framework
|
|
|
|
// - rlyeh, public domain.
|
|
|
|
//
|
|
|
|
// Credits: Based on work by @glampert https://github.com/glampert/debug-draw (PD)
|
|
|
|
// [x] grid, axis, frustum, cube, sphere, triangle, square, pentagon, hexagon, circle, normal.
|
|
|
|
// [x] arrow, point, text, capsule, aabb, plane, flotilla-style locator, boid, bone, ring
|
|
|
|
// [x] line batching
|
|
|
|
// [*] line width and stipple
|
|
|
|
// [*] (proper) gizmo,
|
|
|
|
// [ ] camera, light bulb, light probe,
|
|
|
|
|
|
|
|
API void ddraw_line_width(float width);
|
|
|
|
API void ddraw_color(unsigned rgb);
|
|
|
|
API void ddraw_color_push(unsigned rgb);
|
|
|
|
API void ddraw_color_pop();
|
|
|
|
//
|
|
|
|
API void ddraw_ontop(int enabled);
|
|
|
|
API void ddraw_ontop_push(int enabled);
|
|
|
|
API void ddraw_ontop_pop();
|
|
|
|
//
|
|
|
|
API void ddraw_push_2d();
|
|
|
|
API void ddraw_pop_2d();
|
|
|
|
//
|
|
|
|
API void ddraw_aabb(vec3 minbb, vec3 maxbb);
|
|
|
|
API void ddraw_aabb_corners(vec3 minbb, vec3 maxbb);
|
|
|
|
API void ddraw_arrow(vec3 begin, vec3 end);
|
|
|
|
API void ddraw_axis(float units);
|
|
|
|
API void ddraw_boid(vec3 pos, vec3 dir);
|
|
|
|
API void ddraw_bone(vec3 center, vec3 end); // @todo: use me
|
|
|
|
API void ddraw_bounds(const vec3 points[8]);
|
|
|
|
API void ddraw_box(vec3 center, vec3 extents);
|
|
|
|
API void ddraw_capsule(vec3 from, vec3 to, float radius);
|
|
|
|
API void ddraw_circle(vec3 pos, vec3 n, float radius);
|
|
|
|
API void ddraw_ring(vec3 pos, vec3 n, float radius);
|
|
|
|
API void ddraw_cone(vec3 center, vec3 top, float radius);
|
|
|
|
API void ddraw_cube(vec3 center, float radius);
|
|
|
|
API void ddraw_cube33(vec3 center, vec3 radius, mat33 M);
|
|
|
|
API void ddraw_diamond(vec3 from, vec3 to, float size);
|
|
|
|
API void ddraw_frustum(float projview[16]);
|
|
|
|
API void ddraw_ground(float scale);
|
|
|
|
API void ddraw_grid(float scale);
|
|
|
|
API void ddraw_hexagon(vec3 pos, float radius);
|
|
|
|
API void ddraw_line(vec3 from, vec3 to);
|
|
|
|
API void ddraw_line_dashed(vec3 from, vec3 to);
|
|
|
|
API void ddraw_line_thin(vec3 from, vec3 to);
|
|
|
|
API void ddraw_normal(vec3 pos, vec3 n);
|
|
|
|
API void ddraw_pentagon(vec3 pos, float radius);
|
|
|
|
API void ddraw_plane(vec3 p, vec3 n, float scale);
|
|
|
|
API void ddraw_point(vec3 from);
|
|
|
|
API void ddraw_position(vec3 pos, float radius);
|
|
|
|
API void ddraw_position_dir(vec3 pos, vec3 dir, float radius);
|
|
|
|
API void ddraw_pyramid(vec3 center, float height, int segments);
|
|
|
|
API void ddraw_cylinder(vec3 center, float height, int segments);
|
|
|
|
API void ddraw_sphere(vec3 pos, float radius);
|
|
|
|
API void ddraw_square(vec3 pos, float radius);
|
|
|
|
API void ddraw_text(vec3 pos, float scale, const char *text);
|
|
|
|
API void ddraw_text2d(vec2 pos, const char *text);
|
|
|
|
API void ddraw_triangle(vec3 p1, vec3 p2, vec3 p3);
|
|
|
|
//
|
|
|
|
API void ddraw_prism(vec3 center, float radius, float height, vec3 normal, int segments);
|
|
|
|
//
|
|
|
|
API void ddraw_demo();
|
|
|
|
API void ddraw_flush();
|
|
|
|
API void ddraw_flush_projview(mat44 proj, mat44 view);
|
|
|
|
|
|
|
|
// transform gizmos
|
|
|
|
|
|
|
|
API int gizmo(vec3 *pos, vec3 *rot, vec3 *sca);
|
|
|
|
API bool gizmo_active();
|
|
|
|
API bool gizmo_hover();
|