From a36b4e0631bb770eb5eb414ce5604035c0b82ce0 Mon Sep 17 00:00:00 2001 From: Vincent Lark Date: Mon, 4 Jan 2021 18:06:15 +0100 Subject: [PATCH] Add a 3D model viewer --- files/file.go | 3 + frontend/package-lock.json | 13 ++++ frontend/package.json | 1 + frontend/src/components/files/Preview.vue | 6 +- frontend/src/components/files/ThreeViewer.vue | 75 +++++++++++++++++++ 5 files changed, 97 insertions(+), 1 deletion(-) create mode 100644 frontend/src/components/files/ThreeViewer.vue diff --git a/files/file.go b/files/file.go index d58b2a34..047e8a57 100644 --- a/files/file.go +++ b/files/file.go @@ -175,6 +175,9 @@ func (i *FileInfo) detectType(modify, saveContent bool) error { case strings.HasPrefix(mimetype, "image"): i.Type = "image" return nil + case strings.HasPrefix(mimetype, "application/object"): + i.Type = "3dobject" + return nil case isBinary(buffer[:n], n) || i.Size > 10*1024*1024: // 10 MB i.Type = "blob" return nil diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 1c67b00b..d1bd6905 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -12399,6 +12399,11 @@ "neo-async": "^2.6.0" } }, + "three": { + "version": "0.118.3", + "resolved": "https://registry.npmjs.org/three/-/three-0.118.3.tgz", + "integrity": "sha512-ijECXrNzDkHieoeh2H69kgawTGH8DiamhR4uBN8jEM7VHSKvfTdEvOoHsA8Aq7dh7PHAxhlqBsN5arBI3KixSw==" + }, "through": { "version": "2.3.8", "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -12991,6 +12996,14 @@ "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.10.tgz", "integrity": "sha512-ImThpeNU9HbdZL3utgMCq0oiMzAkt1mcgy3/E6zWC/G6AaQoeuFdsl9nDhTDU3X1R6FK7nsIUuRACVcjI+A2GQ==" }, + "vue-3d-model": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/vue-3d-model/-/vue-3d-model-1.3.1.tgz", + "integrity": "sha512-md+ZgtcSa0NcwhEWYG/uWgmtQjkAaUb+9jaHmZYdsnaPEBlT9IW3ptVQJRiA7VOGvobXaHy72ASCFaQJf08/rA==", + "requires": { + "three": "^0.118.3" + } + }, "vue-eslint-parser": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.0.0.tgz", diff --git a/frontend/package.json b/frontend/package.json index 0aea1e0d..a9339f64 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -20,6 +20,7 @@ "noty": "^3.2.0-beta", "qrcode.vue": "^1.7.0", "vue": "^2.6.10", + "vue-3d-model": "^1.3.1", "vue-i18n": "^8.15.3", "vue-lazyload": "^1.3.3", "vue-router": "^3.1.3", diff --git a/frontend/src/components/files/Preview.vue b/frontend/src/components/files/Preview.vue index f72ad38b..4a49a2ff 100644 --- a/frontend/src/components/files/Preview.vue +++ b/frontend/src/components/files/Preview.vue @@ -38,6 +38,7 @@ +