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"> <div id="main" class="main">
<h1>Init3DViewerElements</h1> <h1>Init3DViewerElements</h1>
<div class="function_container"> <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_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_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">Parameters</div> <div class="function_title">Returns</div>
<div class="parameter_header"> <div class="function_returns">
<span class="parameter_name">onReady</span> <span class="type parameter_type"><a href="Class_EmbeddedViewer.html" target="_self">EmbeddedViewer</a>[]</span>
<span class="type parameter_type">function</span> <span class="return_description">Array of the created <a href="Class_EmbeddedViewer.html" target="_self">EmbeddedViewer</a> objects.</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> </div>
</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> <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> <h2>0.8.21</h2>
<ul> <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> <li><b>environmentmapbg:</b> Boolean ("true" or "false") to set the environment map as background.</li>
</ul> </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', () => {
OV.SetExternalLibLocation ('libs'); // tell the engine where to find the libs folder
// init all viewers on the page OV.SetExternalLibLocation ('libs');
OV.Init3DViewerElements ();</code></pre> // init all viewers on the page
OV.Init3DViewerElements ();
});</code></pre>
<h2>Initialization from code</h2> <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> <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> <h2>0.8.21</h2>
<ul> <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> <li><b>environmentmapbg:</b> Boolean ("true" or "false") to set the environment map as background.</li>
</ul> </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', () => {
OV.SetExternalLibLocation ('libs'); // tell the engine where to find the libs folder
// init all viewers on the page OV.SetExternalLibLocation ('libs');
OV.Init3DViewerElements ();</code></pre> // init all viewers on the page
OV.Init3DViewerElements ();
});</code></pre>
<h2>Initialization from code</h2> <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" src="../build/o3dv.min-dev.js"></script>
<script type='text/javascript'> <script type='text/javascript'>
OV.Init3DViewerElements (); window.addEventListener ('load', () => {
OV.Init3DViewerElements ();
});
</script> </script>
<style> <style>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -10,7 +10,9 @@
<script type="text/javascript" src="../build/o3dv.min-dev.js"></script> <script type="text/javascript" src="../build/o3dv.min-dev.js"></script>
<script type='text/javascript'> <script type='text/javascript'>
OV.Init3DViewerElements (); window.addEventListener ('load', () => {
OV.Init3DViewerElements ();
});
</script> </script>
</head> </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 * 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. * class name, and loads the model according to the tag's parameters. It must be called after the
* @param {function} onReady Callback that called when all models are loaded. It has one parameter * document is loaded.
* that is an array of the created {@link EmbeddedViewer} objects. * @returns {EmbeddedViewer[]} Array of the created {@link EmbeddedViewer} objects.
*/ */
export function Init3DViewerElements (onReady) export function Init3DViewerElements (onReady)
{ {
@ -312,15 +312,11 @@ export function Init3DViewerElements (onReady)
} }
let viewerElements = []; let viewerElements = [];
window.addEventListener ('load', () => { let elements = document.getElementsByClassName ('online_3d_viewer');
let elements = document.getElementsByClassName ('online_3d_viewer'); for (let i = 0; i < elements.length; i++) {
for (let i = 0; i < elements.length; i++) { let element = elements[i];
let element = elements[i]; let viewerElement = LoadElement (element);
let viewerElement = LoadElement (element); viewerElements.push (viewerElement);
viewerElements.push (viewerElement); }
} return viewerElements;
if (onReady !== undefined && onReady !== null) {
onReady (viewerElements);
}
});
} }