Enable calling Init3DViewerElements from everywhere #375

This commit is contained in:
kovacsv 2023-04-03 17:35:10 +02:00
parent 221869611a
commit a0594d5ee2
18 changed files with 83 additions and 48 deletions

View File

@ -61,16 +61,13 @@
<div id="main" class="main">
<h1>Init3DViewerElements</h1>
<div class="function_container">
<div id="Init3DViewerElements" class="function_signature">Init3DViewerElements (onReady)</div>
<div id="Init3DViewerElements" class="function_signature">Init3DViewerElements ()</div>
<div class="function_title">Description</div>
<div class="function_description">Loads all the models on the page. This function looks for all the elements with online_3d_viewer class name, and loads the model according to the tag&#x27;s parameters.</div>
<div class="function_title">Parameters</div>
<div class="parameter_header">
<span class="parameter_name">onReady</span>
<span class="type parameter_type">function</span>
</div>
<div class="parameter_main">
<div class="parameter_description">Callback that called when all models are loaded. It has one parameter that is an array of the created <a href="Class_EmbeddedViewer.html" target="_self">EmbeddedViewer</a> objects.</div>
<div class="function_description">Loads all the models on the page. This function looks for all the elements with online_3d_viewer class name, and loads the model according to the tag&#x27;s parameters. It must be called after the document is loaded.</div>
<div class="function_title">Returns</div>
<div class="function_returns">
<span class="type parameter_type"><a href="Class_EmbeddedViewer.html" target="_self">EmbeddedViewer</a>[]</span>
<span class="return_description">Array of the created <a href="Class_EmbeddedViewer.html" target="_self">EmbeddedViewer</a> objects.</span>
</div>
</div>

View File

@ -64,6 +64,13 @@
<p>This document lists changes in the engine to help you to migrate your code base.</p>
<h2>0.8.21</h2>
<ul>
<li><a href="Function_Init3DViewerElements.html" target="_self">Init3DViewerElements</a> must be called when the document is loaded and returns an array of the created <a href="Class_EmbeddedViewer.html" target="_self">EmbeddedViewer</a> objects. Earlier it registered a load event handler inside, now it's the responsibility of the caller.</li>
</ul>
<h2>0.8.21</h2>
<ul>

View File

@ -92,12 +92,14 @@ There are two ways to use the library:
<li><b>environmentmapbg:</b> Boolean ("true" or "false") to set the environment map as background.</li>
</ul>
<p>After placing the elements, call the <a href="Function_Init3DViewerElements.html" target="_self">Init3DViewerElements</a> function to initalize all the viewers. It must be called from the main JavaScript file outside of the onload event.</p>
<p>After placing the elements, call the <a href="Function_Init3DViewerElements.html" target="_self">Init3DViewerElements</a> function to initalize all the viewers. It must be called after the document is loaded.</p>
<pre><code class="language-js">// tell the engine where to find the libs folder
<pre><code class="language-js">window.addEventListener ('load', () => {
// tell the engine where to find the libs folder
OV.SetExternalLibLocation ('libs');
// init all viewers on the page
OV.Init3DViewerElements ();</code></pre>
OV.Init3DViewerElements ();
});</code></pre>
<h2>Initialization from code</h2>

View File

@ -2,6 +2,13 @@
<p>This document lists changes in the engine to help you to migrate your code base.</p>
<h2>0.8.21</h2>
<ul>
<li>{@link Init3DViewerElements} must be called when the document is loaded and returns an array of the created {@link EmbeddedViewer} objects. Earlier it registered a load event handler inside, now it's the responsibility of the caller.</li>
</ul>
<h2>0.8.21</h2>
<ul>

View File

@ -30,12 +30,14 @@ There are two ways to use the library:
<li><b>environmentmapbg:</b> Boolean ("true" or "false") to set the environment map as background.</li>
</ul>
<p>After placing the elements, call the {@link Init3DViewerElements} function to initalize all the viewers. It must be called from the main JavaScript file outside of the onload event.</p>
<p>After placing the elements, call the {@link Init3DViewerElements} function to initalize all the viewers. It must be called after the document is loaded.</p>
<pre><code class="language-js">// tell the engine where to find the libs folder
<pre><code class="language-js">window.addEventListener ('load', () => {
// tell the engine where to find the libs folder
OV.SetExternalLibLocation ('libs');
// init all viewers on the page
OV.Init3DViewerElements ();</code></pre>
OV.Init3DViewerElements ();
});</code></pre>
<h2>Initialization from code</h2>

View File

@ -10,7 +10,9 @@
<script type="text/javascript" src="../build/o3dv.min-dev.js"></script>
<script type='text/javascript'>
window.addEventListener ('load', () => {
OV.Init3DViewerElements ();
});
</script>
<style>

View File

@ -10,7 +10,10 @@
<script type="text/javascript" src="../build/o3dv.min-dev.js"></script>
<script type='text/javascript'>
window.addEventListener ('load', () => {
OV.Init3DViewerElements ();
});
</script>
<style>

View File

@ -10,7 +10,9 @@
<script type="text/javascript" src="../build/o3dv.min-dev.js"></script>
<script type='text/javascript'>
window.addEventListener ('load', () => {
OV.Init3DViewerElements ();
});
</script>
<style>

View File

@ -10,7 +10,9 @@
<script type="text/javascript" src="../build/o3dv.min-dev.js"></script>
<script type='text/javascript'>
window.addEventListener ('load', () => {
OV.Init3DViewerElements ();
});
</script>
<style>

View File

@ -10,8 +10,10 @@
<script type="text/javascript" src="../build/o3dv.min-dev.js"></script>
<script type='text/javascript'>
window.addEventListener ('load', () => {
OV.SetExternalLibLocation ('../../libs');
OV.Init3DViewerElements ();
});
</script>
<style>

View File

@ -10,7 +10,9 @@
<script type="text/javascript" src="../build/o3dv.min-dev.js"></script>
<script type='text/javascript'>
window.addEventListener ('load', () => {
OV.Init3DViewerElements ();
});
</script>
<style>

View File

@ -10,8 +10,10 @@
<script type="text/javascript" src="../build/o3dv.min-dev.js"></script>
<script type='text/javascript'>
window.addEventListener ('load', () => {
OV.SetExternalLibLocation ('../../libs');
OV.Init3DViewerElements ();
});
</script>
<style>

View File

@ -10,7 +10,9 @@
<script type="text/javascript" src="../build/o3dv.min-dev.js"></script>
<script type='text/javascript'>
window.addEventListener ('load', () => {
OV.Init3DViewerElements ();
});
</script>
<style>

View File

@ -10,7 +10,8 @@
<script type="text/javascript" src="../build/o3dv.min-dev.js"></script>
<script type='text/javascript'>
OV.Init3DViewerElements (function (viewers) {
window.addEventListener ('load', () => {
let viewers = OV.Init3DViewerElements ();
let firstViewer = viewers[0].viewer;
firstViewer.SetBackgroundColor (new OV.RGBAColor (34, 34, 34, 255));
});

View File

@ -10,7 +10,9 @@
<script type="text/javascript" src="../build/o3dv.min-dev.js"></script>
<script type='text/javascript'>
window.addEventListener ('load', () => {
OV.Init3DViewerElements ();
});
</script>
<style>

View File

@ -10,7 +10,9 @@
<script type="text/javascript" src="../build/o3dv.min-dev.js"></script>
<script type='text/javascript'>
window.addEventListener ('load', () => {
OV.Init3DViewerElements ();
});
</script>
</head>

View File

@ -10,7 +10,9 @@
<script type="text/javascript" src="../build/o3dv.min-dev.js"></script>
<script type='text/javascript'>
window.addEventListener ('load', () => {
OV.Init3DViewerElements ();
});
</script>
</head>

View File

@ -243,9 +243,9 @@ export function Init3DViewerFromFileList (parentElement, models, parameters)
/**
* Loads all the models on the page. This function looks for all the elements with online_3d_viewer
* class name, and loads the model according to the tag's parameters.
* @param {function} onReady Callback that called when all models are loaded. It has one parameter
* that is an array of the created {@link EmbeddedViewer} objects.
* class name, and loads the model according to the tag's parameters. It must be called after the
* document is loaded.
* @returns {EmbeddedViewer[]} Array of the created {@link EmbeddedViewer} objects.
*/
export function Init3DViewerElements (onReady)
{
@ -312,15 +312,11 @@ export function Init3DViewerElements (onReady)
}
let viewerElements = [];
window.addEventListener ('load', () => {
let elements = document.getElementsByClassName ('online_3d_viewer');
for (let i = 0; i < elements.length; i++) {
let element = elements[i];
let viewerElement = LoadElement (element);
viewerElements.push (viewerElement);
}
if (onReady !== undefined && onReady !== null) {
onReady (viewerElements);
}
});
return viewerElements;
}