Add file page model display
Signed-off-by: Justin Georgi <justin.georgi@gmail.com>
This commit is contained in:
@@ -26,6 +26,26 @@ class GlModelViewer extends ImageHandler {
|
||||
if ($file->getMimeType() !== 'model/gltf-binary') {
|
||||
return true;
|
||||
}
|
||||
$result = self::buildViewer($file,$frameParams);
|
||||
return false;
|
||||
}
|
||||
|
||||
public static function onImageOpenShowImageInlineBefore( $imagepage, $out ){
|
||||
$file = $imagepage->getFile();
|
||||
if ($file->getMimeType() !== 'model/gltf-binary') {
|
||||
return;
|
||||
}
|
||||
$out->addModules('ext.glmv');
|
||||
$viewer = self::buildViewer($file,['class' => 'view-default']);
|
||||
$out->addHtml(Html::rawElement('div',['id' => 'file', 'class' => 'fullModelView'],$viewer));
|
||||
#echo '<script>';
|
||||
#self::console_log($imagepage->getFile()->getFullUrl());
|
||||
#self::console_log($imagepage->getFile()->getDescriptionText());
|
||||
#self::console_log($out);
|
||||
#echo '</script>';
|
||||
}
|
||||
|
||||
private static function buildViewer($file, $frameParams) {
|
||||
preg_match('/<pre>([\S\s]*?)<\/pre>/',$file->getDescriptionText(),$modelDescript);
|
||||
$metadata = json_decode($modelDescript[1], true);
|
||||
if (isset($frameParams['class'])) {
|
||||
@@ -51,7 +71,7 @@ class GlModelViewer extends ImageHandler {
|
||||
}
|
||||
}
|
||||
$attrModelView = $metadata['viewerConfig'][$viewClass];
|
||||
$attrModelView = array_merge(['src' => $file->getFullUrl(), 'class' => 'mv-model'], $attrModelView);
|
||||
$attrModelView = array_merge(['src' => $file->getFullUrl(), 'class' => 'mv-model', 'interpolation-decay' => '100'], $attrModelView);
|
||||
$attrModelView['style'] = 'width: 100%; height: 100%; min-height: 400px;';
|
||||
$elModel = Html::rawElement('model-viewer', $attrModelView, implode($hotspots));
|
||||
$attrContainer = array(
|
||||
@@ -59,14 +79,7 @@ class GlModelViewer extends ImageHandler {
|
||||
'onmousedown' => 'clearAnnotations()',
|
||||
'ontouchstart' => 'clearAnnotations()'
|
||||
);
|
||||
$result = Html::rawElement('div', $attrContainer, $elModel);
|
||||
echo '<script>';
|
||||
#GlModelViewer::console_log($handlerParams);
|
||||
#GlModelViewer::console_log($frameParams['class']);
|
||||
#GlModelViewer::console_log($file->getDescriptionText());
|
||||
#GlModelViewer::console_log($metadata->viewerConfig->default);
|
||||
echo '</script>';
|
||||
return false;
|
||||
return Html::rawElement('div', $attrContainer, $elModel);
|
||||
}
|
||||
|
||||
public static function console_log($data, $add_script_tags = false) {
|
||||
|
||||
Reference in New Issue
Block a user