From cd254f9c3642f335181d53555aa0e5508c0bf86f Mon Sep 17 00:00:00 2001 From: Jim Safley Date: Thu, 13 Jun 2024 13:23:16 -0400 Subject: [PATCH] Add a GLB (3D) file renderer --- application/config/module.config.php | 2 ++ .../src/Media/FileRenderer/GlbRenderer.php | 24 +++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 application/src/Media/FileRenderer/GlbRenderer.php diff --git a/application/config/module.config.php b/application/config/module.config.php index db1deac12..18a36d94a 100644 --- a/application/config/module.config.php +++ b/application/config/module.config.php @@ -830,6 +830,7 @@ 'thumbnail' => Media\FileRenderer\ThumbnailRenderer::class, 'audio' => Media\FileRenderer\AudioRenderer::class, 'video' => Media\FileRenderer\VideoRenderer::class, + 'glb' => Media\FileRenderer\GlbRenderer::class, ], 'aliases' => [ 'audio/ogg' => 'audio', @@ -845,6 +846,7 @@ 'video/ogg' => 'video', 'video/webm' => 'video', 'mp3' => 'audio', + 'model/gltf-binary' => 'glb', ], ], 'oembed' => [ diff --git a/application/src/Media/FileRenderer/GlbRenderer.php b/application/src/Media/FileRenderer/GlbRenderer.php new file mode 100644 index 000000000..b75e68555 --- /dev/null +++ b/application/src/Media/FileRenderer/GlbRenderer.php @@ -0,0 +1,24 @@ +headScript()->appendFile( + 'https://ajax.googleapis.com/ajax/libs/model-viewer/3.5.0/model-viewer.min.js', + 'module' + ); + $modelViewer = $view->htmlElement('model-viewer'); + $modelViewer->setAttributes([ + 'src' => $media->originalUrl(), + 'alt' => $media->altText(), + 'camera-controls' => true, + 'style' => 'width: 600px; height: 600px;', + ]); + return $modelViewer; + } +}