diff options
Diffstat (limited to 'src/3d/visual_debug.cc')
| -rw-r--r-- | src/3d/visual_debug.cc | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/3d/visual_debug.cc b/src/3d/visual_debug.cc index 99d4b9f..c6c5c51 100644 --- a/src/3d/visual_debug.cc +++ b/src/3d/visual_debug.cc @@ -173,13 +173,17 @@ void VisualDebug::create_pipeline(WGPUTextureFormat format) { wgpuShaderModuleRelease(shader_module); } -void VisualDebug::add_box(const mat4& transform, const vec3& color) { - // 8 corners of unit cube [-1, 1] - vec4 p[] = { - transform * vec4(-1, -1, -1, 1), transform * vec4(1, -1, -1, 1), - transform * vec4(1, 1, -1, 1), transform * vec4(-1, 1, -1, 1), - transform * vec4(-1, -1, 1, 1), transform * vec4(1, -1, 1, 1), - transform * vec4(1, 1, 1, 1), transform * vec4(-1, 1, 1, 1)}; +void VisualDebug::add_box(const mat4& transform, const vec3& local_extent, + const vec3& color) { + float lx = local_extent.x; + float ly = local_extent.y; + float lz = local_extent.z; + + // 8 corners of transformed box + vec4 p[] = {transform * vec4(-lx, -ly, -lz, 1), transform * vec4(lx, -ly, -lz, 1), + transform * vec4(lx, ly, -lz, 1), transform * vec4(-lx, ly, -lz, 1), + transform * vec4(-lx, -ly, lz, 1), transform * vec4(lx, -ly, lz, 1), + transform * vec4(lx, ly, lz, 1), transform * vec4(-lx, ly, lz, 1)}; // 12 edges (each 2 vertices) DebugLine edges[] = { |
