Do url transformations in the loading code instead of the dialog #188
This commit is contained in:
parent
4d8a459a86
commit
d5976ec8db
123
sandbox/embed_filehost.html
Normal file
123
sandbox/embed_filehost.html
Normal file
@ -0,0 +1,123 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html;charset=utf-8">
|
||||
<meta name="viewport" content="width=device-width, user-scalable=no">
|
||||
|
||||
<title>Online 3D Viewer</title>
|
||||
|
||||
<script type="text/javascript" src="../../libs/three.min.js"></script>
|
||||
|
||||
<!-- engine start -->
|
||||
<script type="text/javascript" src="../source/core/core.js"></script>
|
||||
<script type="text/javascript" src="../source/core/taskrunner.js"></script>
|
||||
<script type="text/javascript" src="../source/geometry/geometry.js"></script>
|
||||
<script type="text/javascript" src="../source/geometry/coord2d.js"></script>
|
||||
<script type="text/javascript" src="../source/geometry/coord3d.js"></script>
|
||||
<script type="text/javascript" src="../source/geometry/quaternion.js"></script>
|
||||
<script type="text/javascript" src="../source/geometry/box3d.js"></script>
|
||||
<script type="text/javascript" src="../source/geometry/octree.js"></script>
|
||||
<script type="text/javascript" src="../source/geometry/matrix.js"></script>
|
||||
<script type="text/javascript" src="../source/geometry/transformation.js"></script>
|
||||
<script type="text/javascript" src="../source/geometry/tween.js"></script>
|
||||
<script type="text/javascript" src="../source/io/binaryreader.js"></script>
|
||||
<script type="text/javascript" src="../source/io/binarywriter.js"></script>
|
||||
<script type="text/javascript" src="../source/io/textwriter.js"></script>
|
||||
<script type="text/javascript" src="../source/io/bufferutils.js"></script>
|
||||
<script type="text/javascript" src="../source/io/fileutils.js"></script>
|
||||
<script type="text/javascript" src="../source/io/externallibs.js"></script>
|
||||
<script type="text/javascript" src="../source/model/material.js"></script>
|
||||
<script type="text/javascript" src="../source/model/triangle.js"></script>
|
||||
<script type="text/javascript" src="../source/model/property.js"></script>
|
||||
<script type="text/javascript" src="../source/model/object.js"></script>
|
||||
<script type="text/javascript" src="../source/model/mesh.js"></script>
|
||||
<script type="text/javascript" src="../source/model/meshbuffer.js"></script>
|
||||
<script type="text/javascript" src="../source/model/node.js"></script>
|
||||
<script type="text/javascript" src="../source/model/meshinstance.js"></script>
|
||||
<script type="text/javascript" src="../source/model/model.js"></script>
|
||||
<script type="text/javascript" src="../source/model/topology.js"></script>
|
||||
<script type="text/javascript" src="../source/model/modelutils.js"></script>
|
||||
<script type="text/javascript" src="../source/model/modelfinalization.js"></script>
|
||||
<script type="text/javascript" src="../source/model/quantities.js"></script>
|
||||
<script type="text/javascript" src="../source/model/generator.js"></script>
|
||||
<script type="text/javascript" src="../source/import/importerutils.js"></script>
|
||||
<script type="text/javascript" src="../source/import/importerbase.js"></script>
|
||||
<script type="text/javascript" src="../source/import/importerobj.js"></script>
|
||||
<script type="text/javascript" src="../source/import/importerstl.js"></script>
|
||||
<script type="text/javascript" src="../source/import/importeroff.js"></script>
|
||||
<script type="text/javascript" src="../source/import/importerply.js"></script>
|
||||
<script type="text/javascript" src="../source/import/importer3ds.js"></script>
|
||||
<script type="text/javascript" src="../source/import/importergltf.js"></script>
|
||||
<script type="text/javascript" src="../source/import/importero3dv.js"></script>
|
||||
<script type="text/javascript" src="../source/import/importerthree.js"></script>
|
||||
<script type="text/javascript" src="../source/import/importersvg.js"></script>
|
||||
<script type="text/javascript" src="../source/import/importer3dm.js"></script>
|
||||
<script type="text/javascript" src="../source/import/importerifc.js"></script>
|
||||
<script type="text/javascript" src="../source/import/filelist.js"></script>
|
||||
<script type="text/javascript" src="../source/import/importer.js"></script>
|
||||
<script type="text/javascript" src="../source/export/exporterbase.js"></script>
|
||||
<script type="text/javascript" src="../source/export/exporterobj.js"></script>
|
||||
<script type="text/javascript" src="../source/export/exporterstl.js"></script>
|
||||
<script type="text/javascript" src="../source/export/exporterply.js"></script>
|
||||
<script type="text/javascript" src="../source/export/exporteroff.js"></script>
|
||||
<script type="text/javascript" src="../source/export/exportergltf.js"></script>
|
||||
<script type="text/javascript" src="../source/export/exporter3dm.js"></script>
|
||||
<script type="text/javascript" src="../source/export/exporter.js"></script>
|
||||
<script type="text/javascript" src="../source/threejs/threeutils.js"></script>
|
||||
<script type="text/javascript" src="../source/threejs/threeconverter.js"></script>
|
||||
<script type="text/javascript" src="../source/threejs/threemodelloader.js"></script>
|
||||
<script type="text/javascript" src="../source/parameters/parameterlist.js"></script>
|
||||
<script type="text/javascript" src="../source/viewer/domutils.js"></script>
|
||||
<script type="text/javascript" src="../source/viewer/navigation.js"></script>
|
||||
<script type="text/javascript" src="../source/viewer/viewer.js"></script>
|
||||
<script type="text/javascript" src="../source/viewer/measuretool.js"></script>
|
||||
<script type="text/javascript" src="../source/viewer/domviewer.js"></script>
|
||||
<!-- engine end -->
|
||||
|
||||
<script type='text/javascript'>
|
||||
OV.Init3DViewerElements ();
|
||||
</script>
|
||||
|
||||
<style>
|
||||
iframe, div.online_3d_viewer
|
||||
{
|
||||
float: left;
|
||||
border: 1px solid #eeeeee;
|
||||
margin: 0px 4px 4px 0px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<iframe
|
||||
src="../../website/embed.html#model=https://github.com/kovacsv/Online3DViewer/blob/master/test/testfiles/3ds/cube_four_instances.3ds,https://github.com/kovacsv/Online3DViewer/blob/master/test/testfiles/3ds/texture.png"
|
||||
width=360 height=240
|
||||
style="border:1px solid #eeeeee;">
|
||||
</iframe>
|
||||
<iframe
|
||||
src="../../website/embed.html#model=https://www.dropbox.com/s/wd6lt7h4xa8fuv0/cube_four_instances.3ds?dl=0,https://www.dropbox.com/s/6dfk1jveevbofxm/texture.png?dl=0"
|
||||
width=360 height=240
|
||||
style="border:1px solid #eeeeee;">
|
||||
</iframe>
|
||||
<iframe
|
||||
src="../../website/embed.html#model=https://raw.githubusercontent.com/kovacsv/Online3DViewer/master/test/testfiles/3ds/cube_four_instances.3ds,https://raw.githubusercontent.com/kovacsv/Online3DViewer/master/test/testfiles/3ds/texture.png"
|
||||
width=360 height=240
|
||||
style="border:1px solid #eeeeee;">
|
||||
</iframe>
|
||||
<iframe
|
||||
src="../../website/embed.html#model=https://dl.dropbox.com/s/wd6lt7h4xa8fuv0/cube_four_instances.3ds,https://dl.dropbox.com/s/6dfk1jveevbofxm/texture.png"
|
||||
width=360 height=240
|
||||
style="border:1px solid #eeeeee;">
|
||||
</iframe>
|
||||
<div class="online_3d_viewer"
|
||||
style="width: 360px; height: 240px;"
|
||||
model="https://github.com/kovacsv/Online3DViewer/blob/master/test/testfiles/3ds/cube_four_instances.3ds,https://github.com/kovacsv/Online3DViewer/blob/master/test/testfiles/3ds/texture.png">
|
||||
</div>
|
||||
<div class="online_3d_viewer"
|
||||
style="width: 360px; height: 240px;"
|
||||
model="https://www.dropbox.com/s/wd6lt7h4xa8fuv0/cube_four_instances.3ds?dl=0,https://www.dropbox.com/s/6dfk1jveevbofxm/texture.png?dl=0">
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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 ();
|
||||
|
||||
Loading…
Reference in New Issue
Block a user