diff --git a/sandbox/embed_filehost.html b/sandbox/embed_filehost.html
new file mode 100644
index 00000000..26141fb4
--- /dev/null
+++ b/sandbox/embed_filehost.html
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+ Online 3D Viewer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/io/fileutils.js b/source/io/fileutils.js
index 3c48c60d..2abd5787 100644
--- a/source/io/fileutils.js
+++ b/source/io/fileutils.js
@@ -93,3 +93,26 @@ OV.ReadFile = function (file, format)
}
});
};
+
+OV.TransformFileHostUrls = function (urls)
+{
+ for (let i = 0; i < urls.length; i++) {
+ let url = urls[i];
+ if (url.search (/www\.dropbox\.com/u) !== -1) {
+ url = url.replace ('www.dropbox.com', 'dl.dropbox.com');
+ let separatorPos = url.indexOf ('?');
+ if (separatorPos !== -1) {
+ url = url.substr (0, separatorPos);
+ }
+ urls[i] = url;
+ } else if (url.search (/github\.com/u) !== -1) {
+ url = url.replace ('github.com', 'raw.githubusercontent.com');
+ url = url.replace ('/blob', '');
+ let separatorPos = url.indexOf ('?');
+ if (separatorPos !== -1) {
+ url = url.substr (0, separatorPos);
+ }
+ urls[i] = url;
+ }
+ }
+};
diff --git a/source/viewer/domviewer.js b/source/viewer/domviewer.js
index ae402b9a..4b88c730 100644
--- a/source/viewer/domviewer.js
+++ b/source/viewer/domviewer.js
@@ -14,11 +14,10 @@ OV.Init3DViewerElement = function (parentDiv, modelUrls, parameters)
let height = parentDiv.clientHeight;
viewer.Resize (width, height);
- let loader = new OV.ThreeModelLoader ();
-
if (modelUrls === null || modelUrls.length === 0) {
return null;
}
+ OV.TransformFileHostUrls (modelUrls);
if (parameters.backgroundColor) {
viewer.SetBackgroundColor (parameters.backgroundColor);
@@ -42,6 +41,7 @@ OV.Init3DViewerElement = function (parentDiv, modelUrls, parameters)
}
let progressDiv = null;
+ let loader = new OV.ThreeModelLoader ();
loader.LoadModel (modelUrls, OV.FileSource.Url, settings, {
onLoadStart : () => {
canvas.style.display = 'none';
diff --git a/website/o3dv/js/embed.js b/website/o3dv/js/embed.js
index a0793435..8d4ca007 100644
--- a/website/o3dv/js/embed.js
+++ b/website/o3dv/js/embed.js
@@ -19,6 +19,7 @@ OV.Embed = class
if (urls === null) {
return;
}
+ OV.TransformFileHostUrls (urls);
let background = this.hashHandler.GetBackgroundFromHash ();
if (background !== null) {
this.viewer.SetBackgroundColor (background);
diff --git a/website/o3dv/js/openurldialog.js b/website/o3dv/js/openurldialog.js
index 470a2748..754ab7cc 100644
--- a/website/o3dv/js/openurldialog.js
+++ b/website/o3dv/js/openurldialog.js
@@ -1,28 +1,5 @@
OV.ShowOpenUrlDialog = function (onOk)
{
- function CorrectFileHostUrls (urls)
- {
- for (let i = 0; i < urls.length; i++) {
- let url = urls[i];
- if (url.search (/www\.dropbox\.com/u) !== -1) {
- url = url.replace ('www.dropbox.com', 'dl.dropbox.com');
- let separatorPos = url.indexOf ('?');
- if (separatorPos !== -1) {
- url = url.substr (0, separatorPos);
- }
- urls[i] = url;
- } else if (url.search (/github\.com/u) !== -1) {
- url = url.replace ('github.com', 'raw.githubusercontent.com');
- url = url.replace ('/blob', '');
- let separatorPos = url.indexOf ('?');
- if (separatorPos !== -1) {
- url = url.substr (0, separatorPos);
- }
- urls[i] = url;
- }
- }
- }
-
let dialog = new OV.ButtonDialog ();
let urlsTextArea = OV.CreateDomElement ('textarea', 'ov_dialog_textarea');
let contentDiv = dialog.Init ('Open Model from Url', [
@@ -41,7 +18,6 @@ OV.ShowOpenUrlDialog = function (onOk)
urls.push (line);
});
dialog.Hide ();
- CorrectFileHostUrls (urls);
onOk (urls);
}
}
diff --git a/website/o3dv/js/website.js b/website/o3dv/js/website.js
index f6b986f6..0660d1ab 100644
--- a/website/o3dv/js/website.js
+++ b/website/o3dv/js/website.js
@@ -254,6 +254,7 @@ OV.Website = class
if (urls === null) {
return;
}
+ OV.TransformFileHostUrls (urls);
let importSettings = new OV.ImportSettings ();
importSettings.defaultColor = this.settings.defaultColor;
let defaultColor = this.hashHandler.GetDefaultColorFromHash ();